The full upstream README, mirrored here for reference. Install config, tool schemas, adoption signals, and an original overview live on the Notion MCP listing page.
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.
npx @shck-dev/notion-mcp init: paste a browser "Copy as cURL" and it extracts + saves your credentialsnotion_setup prompt and a notion://guide resource for in-client onboarding| Tool | Description |
|---|---|
notion_search | Full-text search across all pages in your workspace |
notion_export_page | Export any Notion page as markdown; image links resolve to viewable CDN URLs (pass image_dir to download images locally instead) |
notion_import_page | Write markdown to a Notion page — replaces all existing content |
notion_import_page_from_file | Write a local .md file to a page — replaces all content |
notion_append_to_page | Append markdown to the end of a page (non-destructive) |
notion_append_to_page_from_file | Append a local .md file to the end of a page (non-destructive) |
notion_create_page | Create a new sub-page, optionally prefilled with markdown |
notion_create_page_from_file | Create a new sub-page from a local .md file |
notion_add_image | Append an image to the end of a page — local file is uploaded to Notion, http(s) URL is referenced as-is |
notion_list_comments | List open discussion threads on a page |
notion_add_comment | Start a new discussion — inline (anchored to text) or block-level |
notion_reply_comment | Reply to an existing discussion thread |
notion_init | Paste a browser "Copy as cURL" to extract & save credentials |
| 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 (token_v2) | OAuth / integration token |
Trade-off: The internal API is undocumented and may change. Token expires periodically (re-grab from browser).
Open 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:
Prefer to set the three values by hand? Steps below.
www.notion.sotoken_v2 cookie value → NOTION_TOKENapi/v3/*, click itx-notion-active-user-header → NOTION_USER_IDspaceId → NOTION_SPACE_IDAdd to your MCP config (claude_desktop_config.json, .cursor/mcp.json, etc.):
npx) — or Bun. The published server is compiled to node-compatible JS, so Bun is no longer required to run it.token_v2 expires periodically; re-grab from browser when auth failsnotion_add_image (or embedded in markdown) are referenced as-is and not re-uploaded to NotionMIT