notion-mcp
Provides tools for searching, exporting, importing, appending, and creating Notion pages as markdown, managing comments, and uploading images, using Notion's internal API.
Click on "Deploy 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 workspace for meeting notes"
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.
@shck-dev/notion-mcp
Notion MCP Server — search, export, and import pages as markdown
No workspace admin. No OAuth. No page sharing.
Just paste 3 values from your browser and go.
Features
Search — full-text search across your entire workspace
Export — download any page as clean markdown (headings, lists, to-do, code blocks, tables, links, images with viewable URLs)
Import — write markdown back to Notion pages (replaces content), from a string or local file
Append — add markdown to the end of a page without touching existing content
Create — spin up new child pages, optionally prefilled from a markdown string or file
Images — upload a local image to a page, or reference an external URL
Comments — list open discussions, add new comments, reply to threads
One-command setup —
npx @shck-dev/notion-mcp init: paste a browser "Copy as cURL" and it extracts + saves your credentialsPrompts & resources — a
notion_setupprompt and anotion://guideresource for in-client onboardingZero setup friction — uses the same internal API as the Notion web app; if you can see it in your browser, this server can access it
Related MCP server: Markdown-To-Notion
Tools
Tool | Description |
| Full-text search across all pages in your workspace |
| Export any Notion page as markdown; image links resolve to viewable CDN URLs (pass |
| Write markdown to a Notion page — replaces all existing content |
| Write a local |
| Append markdown to the end of a page (non-destructive) |
| Append a local |
| Create a new sub-page, optionally prefilled with markdown |
| Create a new sub-page from a local |
| Append an image to the end of a page — local file is uploaded to Notion, http(s) URL is referenced as-is |
| List open discussion threads on a page |
| Start a new discussion — inline (anchored to text) or block-level |
| Reply to an existing discussion thread |
| Paste a browser "Copy as cURL" to extract & save credentials |
Why not the official Notion API?
This MCP server | Official Notion API | |
Setup | Paste 3 values from DevTools | Create integration, get admin approval, share pages |
Page access | Everything you can see | Only explicitly shared pages |
Markdown | Bidirectional (export + import) | Read-only blocks API |
Auth | Cookie ( | OAuth / integration token |
Trade-off: The internal API is undocumented and may change. Token expires periodically (re-grab from browser).
Quick start
Easiest: interactive setup
npx @shck-dev/notion-mcp initOpen Notion in Chrome → DevTools (F12) → Network → click any request to notion.so/api/v3/… → right-click → Copy as cURL, then paste it and press Ctrl-D. Your token, user id, and workspace id are extracted and saved to ~/.notion-mcp/config.json. Then register the server — no env block needed:
claude mcp add notion -- npx @shck-dev/notion-mcpPrefer to set the three values by hand? Steps below.
1. Get credentials from your browser
Open notion.so in Chrome
Press F12 → Application → Cookies →
www.notion.soCopy the
token_v2cookie value →NOTION_TOKENPress F12 → Network tab, do any action in Notion
Find a POST request to
api/v3/*, click itFrom Request Headers: copy
x-notion-active-user-header→NOTION_USER_IDFrom Request Body (Payload): find
spaceId→NOTION_SPACE_ID
2. Configure your MCP client
Claude Code
claude mcp add notion -- env NOTION_TOKEN=your_token NOTION_USER_ID=your_user_id NOTION_SPACE_ID=your_space_id npx @shck-dev/notion-mcpClaude Desktop / Cursor / any MCP client
Add to your MCP config (claude_desktop_config.json, .cursor/mcp.json, etc.):
{
"mcpServers": {
"notion": {
"command": "npx",
"args": ["@shck-dev/notion-mcp"],
"env": {
"NOTION_TOKEN": "your_token_v2_value",
"NOTION_USER_ID": "your_user_id",
"NOTION_SPACE_ID": "your_space_id"
}
}
}
}Requirements
Node.js ≥ 18 (for
npx) — or Bun. The published server is compiled to node-compatible JS, so Bun is no longer required to run it.
Limitations
Internal API — undocumented, may break with Notion updates
Token expiry —
token_v2expires periodically; re-grab from browser when auth failsDatabases — database/collection pages don't export rows yet; sub-pages render as links and such pages return an explanatory note instead of empty output
Block granularity — import replaces all content, append adds to the end (no in-place editing of individual blocks)
Lossy markdown — some complex formatting may simplify during conversion (e.g. nested lists flatten on import)
External images — http(s) image URLs added via
notion_add_image(or embedded in markdown) are referenced as-is and not re-uploaded to Notion
License
MIT
This server cannot be deployed
Maintenance
Related MCP Connectors
MCP-native open-source Notion alternative: read & write pages, databases and kanban boards.
An MCP server that provides read access to your cloud storage providers, bank accounts and more.
Markdown-based note-taking with a hosted MCP server. Your notes serve you and your AI.
An MCP server that used to create notes
Related MCP Servers
- -licenseNot gradedqualityNot gradedmaintenanceAn 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.128,047 npm-
- AlicenseCqualityDmaintenanceAn MCP server that converts Markdown content to Notion API-compatible formats, suitable for content management and development integration.11Apache 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.9MIT
- AlicenseNot gradedqualityAmaintenanceA lightweight, read-only MCP server for Notion that enables searching, reading pages, and querying databases with token-efficient output and smart caching.18 npm5MIT