Notion Private API MCP
@kirvigen
About Notion Private API MCP
Unofficial Notion MCP server built on Notion's private API (token_v2 cookie). Full read/write access to your entire Notion workspace — no integration token and no per-page sharing.
Config
Add this server to your MCP-compatible client using the configuration below.
{
"mcpServers": {
"notion-private": {
"command": "npx",
"args": [
"-y",
"notion-private-mcp"
],
"env": {
"NOTION_TOKEN_V2": "your_token_v2"
}
}
}
}Tools
11Read a page block and its metadata
Read a single block
Read the direct child blocks of a page or block
Catalog of supported block types & inline annotations (call before composing complex pages)
Preview how Markdown parses into the simplified block JSON
Create a child page under another page, from blocks or Markdown
Append blocks/Markdown to a page (at the end, or after a given block)
Replace the direct child blocks of a page
Replace the plain-text content of a block (e.g. a code block)
Remove (archive) direct child blocks from a page
Create or replace a page from a local Markdown file
Overview
What is Notion Private API MCP?
Notion Private API MCP is an unofficial MCP server that gives LLM agents full read and write access to your entire Notion workspace using Notion's private, undocumented internal API and your browser session cookie (token_v2). It is built for developers and power users who want personal automation without setting up official integrations or sharing pages one by one.
How to use Notion Private API MCP?
Clone the repository, install dependencies with npm install, set the NOTION_TOKEN_V2 environment variable to your Notion session cookie, and start the server with npm start. Then register the server in your MCP client (e.g., Claude Desktop or Claude Code) using the provided configuration examples.
Key features of Notion Private API MCP
- Authenticates with your browser session cookie — no integration token needed
- Accesses everything your account can see in the workspace
- Provides tools to read, create, edit, delete pages and blocks
- Supports writing content via simplified block JSON or Markdown
- Works with Claude Desktop, Claude Code, Cursor, and other MCP clients
- Uses stdio transport via the official MCP SDK
Use cases of Notion Private API MCP
- Search for any page in your workspace and have an agent summarize its content
- Create child pages with structured content (headings, to-do lists, code blocks)
- Append TODO lists or notes to an existing page automatically
- Sync a local Markdown file into a Notion page as block content
- Replace or delete blocks on a page programmatically
FAQ from Notion Private API MCP
Where do I get my token_v2?
Log into Notion in your browser, open DevTools (F12) → Application → Cookies → https://www.notion.so, and copy the value of the token_v2 cookie.
Why am I seeing "NOTION_TOKEN_V2 is required"?
The environment variable is not set in the process that launches the server. Ensure it is defined in your MCP client's env block or in the shell before starting the server.
My token stopped working — what happened?
Your token_v2 expires when your Notion session ends (logout, password change, long inactivity). Obtain a fresh cookie and update the environment variable.
What does MemcachedCrossCellError mean?
It is a transient Notion routing error on multi‑cell workspaces. The client already retries and falls back to loadPageChunk; simply retry the call if it appears.
Is using Notion's private API against the Terms of Service?
This server uses an undocumented internal API. Using it with your own account and data is at your own risk; Notion may change or break the API at any time, and use may be against their ToS.
Frequently asked questions
Where do I get my `token_v2`?
Log into Notion in your browser, open DevTools (F12) → Application → Cookies → `https://www.notion.so`, and copy the value of the `token_v2` cookie.
Why am I seeing "NOTION_TOKEN_V2 is required"?
The environment variable is not set in the process that launches the server. Ensure it is defined in your MCP client's `env` block or in the shell before starting the server.
My token stopped working — what happened?
Your `token_v2` expires when your Notion session ends (logout, password change, long inactivity). Obtain a fresh cookie and update the environment variable.
What does `MemcachedCrossCellError` mean?
It is a transient Notion routing error on multi‑cell workspaces. The client already retries and falls back to `loadPageChunk`; simply retry the call if it appears.
Is using Notion's private API against the Terms of Service?
This server uses an undocumented internal API. Using it with your own account and data is at your own risk; Notion may change or break the API at any time, and use may be against their ToS.
Basic information
More Memory & Knowledge MCP servers
Obsidian MCP Server
cyanheadsRead, write, search, and surgically edit Obsidian vault notes, tags, and frontmatter via MCP. STDIO or Streamable HTTP.
Anytype MCP Server
anyprotoAn MCP server enabling AI assistants to interact with Anytype - your encrypted, local and collaborative wiki - to organize objects, lists, and more through natural language.
Ultimate Google Docs & Drive MCP Server
a-bonusThe Ultimate Google Docs, Sheets, Drive, Gmail, & Google Calendar MCP Server. This MCP (primarily for use in Claude Desktop) gains full access to your google suite and lets claude do its thing.
Solomd
zhitongblogA markdown editor — and the bridge to your LLM. Local-first, MIT, ~15 MB. Bundled MCP server lets Claude Code / Codex / Cursor drive your vault directly. 14 AI providers BYOK.

Memory
modelcontextprotocolModel Context Protocol Servers
Comments