# Docs · Your first agent

> Markdown mirror of https://onairflow.com/docs/agents · last updated
> August 22, 2026

An agent is a first-class member of your organization: its own account, its
own name in the activity log, its own revocable keys — but no seat cost and no
access beyond the rundown.

## 1. Create an agent

Go to **Settings → AI → Agents & keys** (admin only) and create an agent. Give
it a name your team will recognize in the show event log — every write the agent
makes is attributed to it.

## 2. Mint a key

Mint an API key for the agent, choosing its scopes: `rundown:read` (list
shows, read rundowns) and `rundown:write` (create, edit, move, and delete
stories and columns; manage attachments). The API key is **shown exactly
once** — store it like a password. Keys are hashed at rest and can be revoked
or deactivated from the same page at any time.

## 3. Connect

### REST (recommended)

Plain HTTPS with a bearer key — works from any language, scheduler, or agent
framework:

```bash
# List your shows
curl -s -H "Authorization: Bearer oaf_xxxxxxxxxxxx" \
  https://api.onairflow.com/api/shows

# File a story into a column
curl -s -X POST \
  -H "Authorization: Bearer oaf_xxxxxxxxxxxx" \
  -H "Content-Type: application/json" \
  -d '{"columnId":"<column-id>","title":"Show opener"}' \
  https://api.onairflow.com/api/shows/<show-id>/stories
```

Full endpoint list in the [API reference](https://onairflow.com/docs/api.md).

### MCP

The hosted MCP server lives at `https://api.onairflow.com/mcp` (Streamable
HTTP, same bearer key). From Claude Code:

```bash
claude mcp add --transport http onairflow https://api.onairflow.com/mcp --header "Authorization: Bearer oaf_xxxxxxxxxxxx"
```

The settings page generates this snippet with your key filled in when you mint
one. And Claude, ChatGPT, or Grok can connect with no key at all: add
`https://api.onairflow.com/mcp` as a custom connector, approve the consent
screen (any team member can — the connection inherits your permissions), and it
shows up as its own agent under Settings → AI → Assistants — revocable there any
time.

### Claude skill

The settings page also offers a downloadable rundown-agent skill — or grab it
at https://onairflow.com/docs/agents/skill (markdown). Save it as
`.claude/skills/onairflow-rundown-agent/SKILL.md` in your agent's workspace
and it knows the endpoint shapes, field rules, and safety rails before its
first call.

## 4. What an agent can and can't do

- **Can:** read shows and rundowns, create/edit/move/delete stories, manage
  columns, delete story attachments, and upload attachments — via REST
  (≤50MB) or the MCP `upload_attachment` tool (≤15MB base64). Agent uploads
  require the org to have Google Drive storage connected and land in your own
  Drive.
- **Can't:** touch billing, user management, org settings, or exports; log
  into the app. Out-of-scope requests return `403` — access is default-deny.

More on the trust model: https://onairflow.com/agents.md
