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
npm installBuild
npm run buildRun
npm startDocker (optional)
If you use Docker locally:
docker build -t notion-mcp-server .
docker run -p 8080:8080 --env-file .env notion-mcp-server⚙️ 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:
{
"mcpServers": {
"notion": {
"command": "node",
"args": ["/ABSOLUTE/PATH/TO/dist/start-apify.js"],
"env": {
"NOTION_TOKEN": "YOUR_NOTION_TOKEN",
"SECRET_TOKEN": "YOUR_SECRET_TOKEN"
}
}
}
}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!
This server cannot be installed
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.