Notion MCP Server
Official local MCP server for the Notion API: search, read and edit pages as Markdown, and work with databases
Install
{
"mcpServers": {
"notionApi": {
"command": "npx",
"args": ["-y", "@notionhq/notion-mcp-server"],
"env": {
"NOTION_TOKEN": "ntn_****"
}
}
}
}The same snippet works in .cursor/mcp.json.
This is third-party code. Review the repository files before installing.
What it does
The server exposes the Notion API to the agent through an internal integration token. The agent can search pages and read and rewrite their content as Markdown, which saves tokens compared with block JSON. It can query data sources with filters and sorts, create and update data sources, use templates and move pages. Databases cannot be deleted through the server, and access can be narrowed to read-only in the integration settings.
Who it is for. For teams and individuals who keep docs, tasks and knowledge bases in Notion.
Good fit when
- You need to find and summarise information from a Notion knowledge base
- You need to update task statuses in a Notion database
- You need to generate a page from a template based on code or notes
Not a fit when
- You want a token-free setup: the remote Notion MCP with OAuth fits better
- The workspace holds data that must not be exposed to a model
Example request
Find the release plan page in Notion and append a section with today's meeting outcomesLimitations
Notion focuses on its remote MCP server, and this repository gets little maintenance and may be sunset. You need an internal integration token and must share pages with the integration. Version 2.0 replaced database tools with data source tools. Notion availability from Russia is limited, so API access without VPN is not guaranteed.
How to disable. Remove the notionApi block from your MCP config and revoke the integration token in Notion settings.
MCP
- Transport
- stdio, http
- Authentication
- API key
| Environment variables | |
|---|---|
| NOTION_TOKEN required, secret | Notion internal integration token |
| OPENAPI_MCP_HEADERS secret | JSON with Authorization and Notion-Version headers instead of NOTION_TOKEN |
Security check
- Modifies workspace pages and databases
- Exposes connected page content to the model
README in short
The README warns that Notion's focus moved to the remote OAuth server. It covers version 2.0 changes and Markdown tools, step-by-step integration and page access setup, and npx and Docker configs for Cursor, Claude Desktop, Zed and Copilot CLI. There is a Streamable HTTP mode with a required bearer token. MIT licensed.
FAQ
Why can't the agent see my pages?
Pages and databases must be connected to the integration in its Access tab or via the page menu.
Can I grant read-only access?
Yes, leave only the read content capability on the integration.
Related
A CLI for every Google Workspace API with JSON output and agent skills: Drive, Gmail, Calendar, Sheets and more
Local search over Markdown notes, docs and meeting transcripts: keywords, semantic search and reranking, with an MCP server
A task manager for AI-driven development: breaks a PRD into dependent tasks and guides the agent through them via MCP or CLI
Anthropic's official plugins for knowledge work roles: sales, support, product, marketing, legal, finance, data and enterprise search