Notion MCP - AI Workspace Management for Agents
Pricing
Pay per event + usage
Notion MCP - AI Workspace Management for Agents
47 tools for AI agents that manage Notion workspaces. Wraps the Notion PP CLI as an MCP server with PPE billing.
Pricing
Pay per event + usage
Rating
0.0
(0)
Developer
AutomateLab
Maintained by CommunityActor stats
0
Bookmarked
1
Total users
0
Monthly active users
2 days ago
Last modified
Categories
Share
Notion MCP Actor
47 tools for AI agents that manage Notion workspaces. Wraps the notion-pp-mcp binary as an Apify Standby MCP actor with PPE billing.
What It Does
Notion MCP wraps the Notion Printing Press CLI as an MCP server, giving AI agents full access to:
- Pages - Create, read, update, move, archive pages; retrieve page properties
- Databases - Query and create databases, tables, and datasets
- Blocks - Manage block children, update, delete, append content
- Comments - Create, list, update, delete comments on pages and blocks
- Users - Get user info, workspace users, self info
- Views - Create and manage views, run view queries
- Search - Search pages and databases by title
- OAuth - Manage OAuth tokens for third-party integrations
- File Uploads - Upload and manage files in Notion
- Workflows - Archive pages and update workflow status
- Analytics - Analyze locally synced data with group-by and summary
- SQL - Query synced Notion data with SQL
Why Use It
- AI Agent Integration - Standard MCP protocol, works with any MCP client (Claude, Cursor, etc.)
- Offline SQLite Store - Syncs Notion data locally for fast querying without API rate limits
- PPE Billing - Per-tool pricing via Apify PPE; read ops $0.03, write ops $0.08
- 47 Tools - Full Notion API coverage via well-designed CLI interface
Quick Start
1. Get an Apify Actor
# Clone the actorapify clone notion-mcpcd notion-mcp# Or create a new oneapify create --template=ts-standby notion-mcp
2. Set Environment Variable
Set NOTION_API_TOKEN in your Apify actor settings or .env:
NOTION_API_TOKEN=secret_your_notion_integration_token
3. Configure MCP Client
Add to your MCP client config (Claude Code, Cursor, etc.):
{"mcpServers": {"notion": {"command": "curl","args": ["-N", "https://api.apify.com/v2/acts/wdwdwdwdwd~notion-mcp/runs?token=$APIFY_TOKEN"],"env": {"APIFY_TOKEN": "your_apify_api_token"}}}}
Or use the Apify MCP gateway:
{"mcpServers": {"notion": {"command": "npx","args": ["-y", "@apify/mcp-gateway", "notion-mcp", "--token", "$APIFY_TOKEN"]}}}
MCP Tools Reference
| Category | Tool | Description | PPE Price |
|---|---|---|---|
| Pages | pages_retrieve_a | Retrieve a page by ID | $0.03 |
pages_patch | Update page properties | $0.08 | |
pages_post | Create a new page | $0.08 | |
pages_move_page | Move a page to another parent | $0.08 | |
pages_markdown_retrieve_page | Get page as markdown | $0.03 | |
pages_markdown_update_page | Update page with markdown | $0.08 | |
pages_properties_retrieve_a_page_property | Get page property value | $0.03 | |
| Databases | databases_retrieve | Get database metadata | $0.03 |
databases_query | Query a database with filters | $0.03 | |
databases_create | Create a new database | $0.08 | |
databases_update | Update database schema | $0.08 | |
| Blocks | blocks_retrieve_a | Get a block by ID | $0.03 |
blocks_children_get_block | Get block children | $0.03 | |
blocks_update_a | Update a block | $0.08 | |
blocks_children_patch_block | Append block children | $0.08 | |
blocks_delete_a | Delete a block | $0.08 | |
| Comments | comments_list | List comments | $0.03 |
comments_retrieve | Get a comment | $0.03 | |
comments_create_a | Create a comment | $0.08 | |
comments_update_a | Update a comment | $0.08 | |
comments_delete_a | Delete a comment | $0.08 | |
| Users | users_get | Get user by ID | $0.03 |
users_get_self | Get current user | $0.03 | |
users_get_userid | Get user by ID (alternate) | $0.03 | |
| Search | search | Search pages and databases | $0.03 |
notion_search_post | Advanced search with filters | $0.03 | |
| Views | views_list | List views in a database | $0.03 |
views_retrieve_a | Get view by ID | $0.03 | |
views_queries_get_view_query_results | Execute a view query | $0.03 | |
views_create | Create a new view | $0.08 | |
views_update_a | Update a view | $0.08 | |
views_queries_create_view_query | Create a view query | $0.08 | |
views_queries_delete_view_query | Delete a view query | $0.08 | |
| Sync | sync | Sync data from Notion to local SQLite | $0.03 |
sync_pages | Sync pages to local store | $0.03 | |
changed | Get recently changed items | $0.03 | |
stale | Get stale synced items | $0.03 | |
| Analytics | analytics | Analyze synced data | $0.03 |
| SQL | sql | Query synced data with SQL | $0.03 |
| Data Sources | data_sources_query_post_database | Query a data source | $0.03 |
data_sources_retrieve_a | Get data source info | $0.03 | |
data_sources_create_a_database | Create a data source database | $0.08 | |
data_sources_update_a | Update a data source | $0.08 | |
| File Uploads | file_uploads_list | List file uploads | $0.03 |
file_uploads_retrieve | Get file upload info | $0.03 | |
file_uploads_create_file | Create a file upload | $0.08 | |
file_uploads_send_upload_file | Send file data | $0.08 | |
file_uploads_complete_file_upload | Complete a file upload | $0.08 | |
| OAuth | oauth_create_a_token | Create OAuth token | $0.08 |
oauth_introspect_token | Introspect OAuth token | $0.08 | |
oauth_revoke_token | Revoke OAuth token | $0.08 | |
| Workflows | workflow_archive | Archive a workflow | $0.08 |
workflow_status | Get workflow status | $0.08 | |
| Other | import | Import data into Notion | $0.08 |
custom_emojis_list | List custom emojis | $0.03 | |
blocks_query_meeting_notes | Query meeting notes blocks | $0.03 |
Direct API Invocation
You can also call tools directly via HTTP without MCP:
curl -X POST https://api.apify.com/v2/acts/wdwdwdwdwd~notion-mcp/runs \-H "Content-Type: application/json" \-d '{"token": "your_apify_token","input": {"tool": "pages_retrieve_a","args": { "page_id": "your_page_id" }}}'
Comparison: Notion MCP vs Native Notion API
| Aspect | Notion MCP | Native Notion API |
|---|---|---|
| Protocol | MCP (Model Context Protocol) | REST API |
| Tool count | 47 tools | 100+ endpoints |
| Offline storage | SQLite (via sync) | None |
| AI agent support | Native MCP integration | Manual HTTP code |
| SQL queries | Yes (via sql tool) | No |
| PPE pricing | $0.03-$0.08 per call | API usage limits |
| Rate limits | Cached via local sync | 3/sec, 60/sec burst |
Local Development
# Install dependenciesnpm install# Build TypeScriptnpm run build# Run locally (requires Apify SDK)node dist/main.js# Test with MCP protocolecho '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{}}' | notion-pp-mcp
GitHub Topics
notion mcp mcp-server notion-api ai-agents
Support
- Issues: https://github.com/red-cars-io/notion-mcp/issues
- Apify: https://apify.com/notion-mcp
- Notion PP CLI: https://github.com/mvanhorn/printing-press-library