notion-mcp
Mirrors a Notion workspace to local Markdown files and provides tools to read from the local mirror.
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-mcpsearch my Notion mirror for meeting notes from last week"
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
A self-hosted Streamable HTTP MCP server that mirrors a Notion workspace to local Markdown files. MCP tools read the local mirror only; they never make a Notion API request.
Docker deployment
Prerequisites: Docker with the Compose plugin, and a Notion internal integration token that has been connected to the pages and data sources to mirror.
Create a private Docker network shared with MCP clients:
docker network create notion-mcp-clientCopy
.env.exampleto.envand setNOTION_TOKEN. SetMCP_AUTH_TOKENto protect/mcpand/statuswith a bearer token.Start the server:
docker compose up -d --build
The Compose service has no published host ports. It is reachable only by
containers on notion-mcp-client, using http://notion-mcp:3000. Set
MCP_NETWORK before docker compose up to use a differently named existing
network.
The named notion-mcp-data volume persists the Markdown mirror and FTS index.
Restarting the service retains them, so unchanged pages are not downloaded
again.
The Linux x64 image measured 297 MiB in verification. The runtime stage
contains only node:22-slim, production dependencies (including the native
FTS binding), and compiled application output; compiler packages and
development dependencies remain in the discarded build stage.
Related MCP server: Notion MCP Server
Client integration
Connect an MCP client container to the shared network. For example:
docker run --rm --network notion-mcp-client curlimages/curl \
http://notion-mcp:3000/healthConfigure a Streamable HTTP MCP client with URL
http://notion-mcp:3000/mcp. When MCP_AUTH_TOKEN is set, send
Authorization: Bearer <MCP_AUTH_TOKEN>. /health is intentionally public on
the private Docker network; /mcp and /status always pass through the auth
middleware.
Environment
Variable | Default | Description |
| required | Notion internal integration token. |
| unset | Optional bearer token for |
|
| Markdown mirror root. |
|
| SQLite FTS index location. |
|
| HTTP listen port. |
|
| HTTP listen address. |
|
| Incremental sync interval. |
|
| Overlap behind the derived watermark. |
|
| Full-reconcile cadence. |
|
| Notion request budget. |
|
| Retry limit for retryable Notion failures. |
|
| Also mirror non-Notion asset URLs. |
|
| Run a sync when the service starts. |
|
| Pino log level. |
Runbook
View service state and logs:
docker compose ps
docker compose logs -f notion-mcpCheck health from a sibling container:
docker run --rm --network notion-mcp-client curlimages/curl \
http://notion-mcp:3000/healthStop gracefully with docker compose stop. The process handles SIGTERM,
stops scheduling new syncs, closes HTTP connections, and Compose allows up to
30 seconds before forceful termination. Do not remove notion-mcp-data unless
you intend to discard the mirror and force a full sync on the next start.
To update, run docker compose up -d --build. To intentionally reset all
local mirror and search data, run docker compose down -v.
Development
cp .env.example .env
pnpm install
pnpm build
pnpm startThis server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- Alicense-qualityDmaintenanceA Model Context Protocol server that synchronizes Markdown files with Notion pages without using LLM tokens, enabling direct interaction with Notion databases and pages through API calls.Last updated49MIT
- -license-quality-maintenanceAn MCP server that enables natural language interaction with the Notion API, allowing users to search, comment, create pages, and access content within their Notion workspace.Last updated223,993
- AlicenseCqualityDmaintenanceAn MCP server that converts Markdown content to Notion API-compatible formats, suitable for content management and development integration.Last updated11Apache 2.0
- AlicenseAqualityCmaintenanceA lightweight Notion MCP server that minimizes token usage by returning Markdown instead of raw JSON, enabling efficient read/write operations on Notion pages.Last updated9MIT
Related MCP Connectors
Markdown-first MCP server for Notion API with 8 composite tools and 39 actions.
MCP-native open-source Notion alternative: read & write pages, databases and kanban boards.
A MCP server built for developers enabling Git based project management with project and personal…
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/janstuemmel/notion-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server