Notion Mcp Server
Pricing
Pay per usage
Notion Mcp Server
MCP Server for Notion API. AI agents can search, create, and manage pages, databases, blocks, and comments. 20 operations with full CRUD. Supports pagination and batch queries.
Pricing
Pay per usage
Rating
0.0
(0)
Developer
Quadruped
Actor stats
0
Bookmarked
2
Total users
1
Monthly active users
4 days ago
Last modified
Categories
Share
Connect AI agents (Claude, GPT, etc.) to your Notion workspace. Search, create, and manage pages, databases, blocks, and comments through 20 API operations.
Quick Start
Try it now (no setup required)
{"operation": "demo"}
This runs a demo to verify the actor works and shows available operations.
Use with your Notion workspace
{"notionToken": "ntn_your_token_here","operation": "search","query": "Meeting Notes"}
What is this?
MCP (Model Context Protocol) is a standard for connecting AI assistants to external tools and data. This actor wraps the Notion API as an MCP-compatible server, allowing AI agents to:
- Search your Notion workspace
- Read and create pages
- Query and update databases
- Add comments and blocks
Setup (5 minutes)
Step 1: Create a Notion Integration
- Go to notion.so/profile/integrations
- Click "New integration"
- Name it (e.g., "Apify MCP")
- Copy the Internal Integration Token (starts with
ntn_)
Step 2: Share Pages with Your Integration
For each page/database you want to access:
- Open the page in Notion
- Click "..." menu → "Connections"
- Select your integration
Step 3: Run the Actor
{"notionToken": "ntn_your_token","operation": "search","query": "your search term"}
Operations
| Operation | What it does | Required inputs |
|---|---|---|
demo | Test without token | none |
search | Find pages/databases | query |
get_page | Get page details | pageId |
create_page | Create new page | parentPageId or parentDatabaseId, title |
update_page | Update page | pageId |
archive_page | Archive page | pageId |
get_database | Get database schema | databaseId |
query_database | Query database rows | databaseId |
create_database | Create database | parentPageId, title |
get_block | Get block content | blockId |
get_block_children | Get child blocks | blockId |
append_block_children | Add blocks | blockId, children |
get_comments | Get comments | blockId |
create_comment | Add comment | pageId, richText |
list_users | List workspace users | none |
get_bot_user | Get integration info | none |
Examples
Search for pages
{"notionToken": "ntn_xxx","operation": "search","query": "Project Plan"}
Get a specific page
{"notionToken": "ntn_xxx","operation": "get_page","pageId": "https://notion.so/My-Page-abc123def456..."}
You can use the full Notion URL or just the page ID.
Query a database
{"notionToken": "ntn_xxx","operation": "query_database","databaseId": "abc123...","filter": "{\"property\":\"Status\",\"select\":{\"equals\":\"Done\"}}"}
Create a page with content
{"notionToken": "ntn_xxx","operation": "create_page","parentPageId": "parent-id","title": "New Page","children": "[{\"object\":\"block\",\"type\":\"paragraph\",\"paragraph\":{\"rich_text\":[{\"type\":\"text\",\"text\":{\"content\":\"Hello world!\"}}]}}]"}
Output Format
All operations return:
{"operation": "search","success": true,"objectType": "search_results","content": [...],"resultCount": 10,"processedAt": "2024-12-21T..."}
Errors return:
{"operation": "get_page","success": false,"error": "[object_not_found] Could not find page","errorCode": "object_not_found"}
Common Issues
"API token is invalid"
- Check your token starts with
ntn_orsecret_ - Regenerate the token at notion.so/profile/integrations
"Could not find object"
- The integration doesn't have access to that page
- Go to the page → "..." → "Connections" → Add your integration
Rate limiting
- Notion allows 3 requests/second
- Use pagination for large datasets