Skip to main content
The notion MCP adapter uses the Notion API to search workspaces, update database rows, append page content, and manage comments. Ideal for run logs, CRM-style databases, and agent-generated documentation.

Prerequisites

  • A Notion workspace where you can create integrations
  • An internal integration with token (secret_...)
  • Target pages and databases shared with the integration (⋯ → Connect to → your integration)
  • For comments: enable Read comments and Insert comments on the integration
  • project_contributor access

Connect in AgentRuntime

1

Create a Notion integration

Go to notion.so/my-integrations, create an integration, and copy the Internal Integration Token.
2

Share pages with the integration

Open each database or parent page → Connect to → select your integration.
3

Create a connection

Go to Connections, click New custom connection, and paste the integration token as an API key connection.
4

Add notion MCP instance

Go to MCP, click Add instance for notion, wire your connection on Instance config, set the profile active, and save.
5

Discover IDs

Run mcp_callnotion_search to list accessible databases and pages before hard-coding IDs in workflows.
Tool arguments accept bare UUIDs, 32-character hex IDs, or pasted Notion URLs (query strings are stripped automatically).

What you can build

  • Run log database — On workflow complete: notion_create_database_item with run ID, status, duration, and link to Command Center.
  • Content pipeline — LLM draft → notion_create_page under a parent → human_task review → notion_append_to_page with approved blocks.
  • Ticket sync — GitHub create_issuenotion_create_database_item with issue URL and assignee property.
  • Knowledge lookupnotion_find_database_item with filter JSON → pass rows to LLM for grounded answers in Chat Autopilot.

Tools

ToolDescription
notion_searchList shared pages and databases
notion_retrieve_databaseGet database schema
notion_find_database_itemQuery database with Notion filter JSON
notion_create_database_itemCreate a row in a database
notion_update_database_itemUpdate database row properties
notion_archive_database_itemArchive a page (row)
notion_restore_database_itemUnarchive a page
notion_find_pageSearch pages by title
notion_create_pageCreate a sub-page
notion_append_to_pageAppend blocks to a page
notion_get_page_or_block_childrenList block children
notion_add_commentAdd a comment to a page
notion_get_page_commentsList page comments
notion_custom_api_callRaw REST call

Example

Create a row when a workflow run finishes:
{
  "id": "log-run",
  "type": "mcp_call",
  "name": "Log run in Notion",
  "tool_name": "notion_create_database_item",
  "tool_args": {
    "database_id": "your-database-uuid",
    "properties_json": "{\"Name\":{\"title\":[{\"text\":{\"content\":\"Run {{input.run_id}}\"}}]},\"Status\":{\"select\":{\"name\":\"Complete\"}}}"
  },
  "timeout_s": 30
}

Configuration

KeyRequiredDescription
notion_access_tokenYesInternal integration token
notion_api_baseNoAPI base (default https://api.notion.com/v1)
notion_notion_versionNoNotion-Version header (default 2022-02-22)

Troubleshooting

IssueFix
object_not_foundPage or database not shared with the integration
Invalid property JSONMatch property names and types from notion_retrieve_database
Search returns emptyIntegration only sees explicitly connected pages