
www.notion.com
Notion Developer Platform 3.5 — May 13, 2026
External Agents API (Alpha), Workers, Webhooks, CLI, and Markdown API — the full release notes for Notion's new developer platform.

Notion's External Agents API (Alpha/waitlist, May 2026) lets Claude Code, Cursor, and Codex join your workspace as OAuth participants — but the waitlist blocks you today. This tip covers what the API actually is, how it differs from Workers and Custom Agents, and walks through the working MCP bridge workaround in 5 steps (~45 min).

Research Brief
databases.query, pages.create, etc.)page.created, database_item.updated, etc.) and react in real time| External Agents API | Workers | Custom Agents | |
|---|---|---|---|
| Where code runs | Outside Notion (agent's own infra) | Notion's runtime (serverless TypeScript) | Notion's runtime |
| Auth model | OAuth, page-scoped | Internal integration token | Internal integration token |
| Who builds the agent | You or a partner (Claude, Cursor…) | You | You |
| Trigger model | Agent-initiated or webhook | HTTP request, schedule, or Custom Agent tool call | User message in Notion chat |
| Current status | Alpha / waitlist | Beta (free through Aug 11) | Generally available |

| Requirement | Details | Where to get it |
|---|---|---|
| Notion plan | Any plan (API is free for all tiers) | notion.com/pricing |
| Internal Integration token | Authenticates MCP server to your workspace | app.notion.com/developers → Create integration |
| Integration capabilities | Read Content + Update Content (minimum) | Capabilities tab in integration settings |
Notion CLI (ntn) | Scaffolds and deploys Workers | curl -fsSL https://ntn.dev | bash |
| Node.js 18+ | Required to run the MCP server | nodejs.org or nvm install 18 |
| Target pages/databases shared with integration | Without this, every call returns empty or 403 | Database → ··· → Connections → select integration |
claude-agent). Copy the ntn_... token — you'll need it in the next step.npx @notionhq/notion-mcp-servernotion_search, notion_create_page, notion_query_database, and related tools as named, callable functions — no raw REST calls required. 2~/Library/Application Support/Claude/claude_desktop_config.json (macOS) and add:{
"mcpServers": {
"notionApi": {
"command": "npx",
"args": ["-y", "@notionhq/notion-mcp-server"],
"env": {
"OPENAPI_MCP_HEADERS": "{\"Authorization\": \"Bearer ntn_YOUR_TOKEN_HERE\", \"Notion-Version\": \"2022-06-28\"}"
}
}
}
}ntn_YOUR_TOKEN_HERE with the token from Step 1. Restart Claude Desktop — the Notion tools appear in the tool picker.notion_query_database returns empty results and notion_create_page returns a 403 — no error message explains why.page.created, page.updated, database_item.created, database_item.updated, comment.created.database_item.created → your agent fetches background context and writes it into the new row's Background field — no manual trigger.
developers.notion.com. OAuth flow specs, scope definitions, and agent registration instructions aren't published. 1 Watch @NotionDevs for GA announcements.npx @notionhq/notion-mcp-server setup gives a local AI assistant tool access via an internal token — the agent isn't a workspace member, it's a credentialed script. When External Agents API ships, OAuth agents get granular page-level trust and their actions appear in the workspace audit log under a distinct identity. The MCP workaround doesn't provide that identity separation. 2notion_query_database calls in sequence (e.g., looking up five roadmap items at once), you'll hit HTTP 429 quickly. Add retry logic with exponential backoff and handle the Retry-After header.start_cursor. The MCP server handles this internally, but Workers that call the REST API directly must implement the loop.ntn workers runs list now to project your post-August usage.
External Agents API (Alpha), Workers, Webhooks, CLI, and Markdown API — the full release notes for Notion's new developer platform.
Add more perspectives or context around this Drop.