Notion MCP Server
Reads and edits a Notion workspace with a token, so it can run unattended in CI and agents
Lets an assistant search, read and edit Notion pages, blocks, databases and comments through the Notion API.
Official · Notion TypeScript Local · stdio ProductivityKnowledge and memory
104 popularity score ★ 4.7k ↓ 322k/wk
Opens the app, which asks before it adds the server. Then replace each <NAME> in its settings with your value.
It needs NOTION_TOKEN. Replace each <NAME> with your value.
claude mcp add notion -e NOTION_TOKEN=<NOTION_TOKEN> -- npx -y @notionhq/notion-mcp-server{
"mcpServers": {
"notion": {
"command": "npx",
"args": [
"-y",
"@notionhq/notion-mcp-server"
],
"env": {
"NOTION_TOKEN": "<NOTION_TOKEN>"
}
}
}
}{
"mcpServers": {
"notion": {
"command": "npx",
"args": [
"-y",
"@notionhq/notion-mcp-server"
],
"env": {
"NOTION_TOKEN": "<NOTION_TOKEN>"
}
}
}
}{
"servers": {
"notion": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@notionhq/notion-mcp-server"
],
"env": {
"NOTION_TOKEN": "<NOTION_TOKEN>"
}
}
}
}[mcp_servers.notion]
command = "npx"
args = ["-y", "@notionhq/notion-mcp-server"]
[mcp_servers.notion.env]
NOTION_TOKEN = "<NOTION_TOKEN>"gemini mcp add --scope user -e NOTION_TOKEN=<NOTION_TOKEN> notion npx -- -y @notionhq/notion-mcp-serverNOTION_TOKEN |
Required: Notion internal integration token (ntn_...). |
|---|---|
OPENAPI_MCP_HEADERS |
Optional: JSON of headers for the Notion API (Authorization, Notion-Version), an advanced alternative to NOTION_TOKEN. |
AUTH_TOKEN |
Optional: Bearer token for the Streamable HTTP transport. |
ENABLE_TOKEN_PASSTHROUGH |
Optional: Set to true so each HTTP client supplies its own Notion token. |
Notion's open-source MCP server exposes the Notion API to MCP clients. An assistant can search pages and data sources by title, read and update pages and their properties, read and edit page content as Markdown, append, update and delete blocks, query, create and update data sources (databases) with filters and sorts, move pages, read and add comments, and look up users.
It runs locally with npx -y @notionhq/notion-mcp-server or the Docker image mcp/notion, and uses an internal Notion integration token (NOTION_TOKEN). Only the pages and databases you connect to that integration are reachable, and the integration's capabilities can be limited, for example to read-only. It can also serve Streamable HTTP with a bearer token, including a mode where each client passes its own Notion token.
Notion's README says this self-hosted server is no longer actively maintained or supported and may be sunset, and recommends its hosted Remote Notion MCP instead, which uses OAuth, semantic search and Markdown-native tools.
get-userget-usersget-selfpost-searchget-block-childrenpatch-block-childrenretrieve-a-blockupdate-a-blockdelete-a-blockretrieve-a-pagepatch-pagepost-pageretrieve-a-page-propertyretrieve-a-commentcreate-a-commentquery-data-sourceretrieve-a-data-sourceupdate-a-data-sourcecreate-a-data-sourcelist-data-source-templatesretrieve-a-databasemove-pageretrieve-page-markdownupdate-page-markdown