Provides CRUD operations for Notion API access, enabling management of Notion workspaces, databases, and pages through OpenAPI tools.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Notion MCP Servercreate a new page in my Projects database with title 'Q4 Planning'"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Notion MCP Server
Connect Claude Desktop (and other MCP clients) directly to Notion using a real MCP server with SSE support.
No flaky local scripts. No tokens in URLs. Run it securely in the cloud.
🚀 Quick Start (Recommended)
The easiest way to run this securely 24/7 is on Apify.
Connect your MCP client
Base URL (Apify Container URL):
https://<run-id>.runs.apify.netSSE endpoint:
GET /sseClient-to-server messages:
POST /message?sessionId=...
Authentication is done via:
Authorization header:
Authorization: Bearer <SECRET_TOKEN>
✨ Features
MCP Protocol with SSE
Secure Bearer Authentication
Notion API access (CRUD via OpenAPI tools)
Rate-limiting & basic DDoS protection (
express-rate-limit)Security headers (
helmet)
💻 Local Development (For Geeks)
Install
Build
Run
Docker (optional)
If you use Docker locally:
⚙️ Configuration
This project is designed to read configuration from environment variables (and Apify Actor input).
Required ENV variables
NOTION_TOKENYour Notion integration token.
SECRET_TOKENBearer token required to access
/sseand/message.
Optional (advanced):
NOTION_API_VERSION(default:2022-06-28)OPENAPI_MCP_HEADERS(JSON string of headers; overridesNOTION_TOKENwhen present)BASE_URL(override OpenAPI server base URL)
Claude Desktop configuration
Add (or merge) something like this into claude_desktop_config.json:
On Apify, you typically configure secrets via Actor input / secrets and use the Container URL as the server endpoint.
Security Notes
Never commit
.envfiles or Apifystorage/directories.Use a strong
SECRET_TOKENand rotate it if it leaks.
Contributing
PRs are welcome!