notion-bank-mcp
The notion-bank-mcp server allows AI agents (Cursor, Claude, Codex, etc.) to create, read, update, search, and sync Markdown implementation plans stored in Notion. It supports a structured hierarchy (Plans root → service page → plan page) and uses browser-based OAuth so no secrets are needed in config.
Key capabilities:
Authentication & Status: Check auth and workspace readiness (
plan_status); manage OAuth lifecycle (plan_oauth_login,plan_oauth_wait,plan_oauth_logout).Workspace Configuration: Set Plans root URL and service mappings (
plan_configure); ensure service pages exist (plan_ensure_service).Plan Management: Create/update plans from markdown strings (
plan_upsert) or local files (plan_migrate); retrieve plans with line numbers, TOC, and etag (plan_get); perform surgical line/section edits with concurrency control (plan_update_range); search across plans with line-level hits (plan_search); export plans to local markdown (plan_sync); create subpages (plan_create_child).Integration: Works with MCP hosts via stdio or HTTP, storing user config locally at
~/.config/notion-bank/.
Manages implementation plans in Notion with a structured hierarchy (Plans root → service page → plan page), providing tools for creating, reading, updating (including section-level edits with optimistic concurrency via etags), searching, and syncing plans as markdown.
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-bank-mcpGet the current status of my plan bank"
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-bank-mcp
Plan-bank MCP for AI agents — read and write Markdown implementation plans in Notion with line + section addressing, for Cursor, Claude, Codex, and other MCP hosts.
Auth: browser OAuth via mcp.notion.com. No CLIENT_ID / SECRET for end users. No integration token in mcp.json.
npx -y notion-bank-mcp@latest --versionWhy use notion-bank-mcp?
Generic Notion MCPs are great for browsing a workspace. notion-bank-mcp is optimized for one job: keep implementation plans in Notion in a shape agents can reliably create, revise, and ship — without throwaway scripts.
Advantage | What you get |
Plan-bank domain | First-class hierarchy: Plans root → service page → plan page. Agents follow one flow instead of inventing page structure every time. |
Surgical edits |
|
Markdown in / Markdown out | Upsert from file or string; |
No temp glue | Stop generating one-off Python/shell to patch Notion. The MCP is the stable API for plan migrate/sync. |
Zero secrets for end users | Install with |
Per-user workspace mapping | Each machine stores Plans root + service map under |
Agent-ready first steps |
|
Search with line hits |
|
Optional export |
|
When to prefer this over the official Notion MCP alone: you maintain a plan bank across services, you need section-level revisions with concurrency checks, and you want agents to do that in one tool surface instead of free-form page updates.
Related MCP server: tentra
Quick start
Add this to your MCP config (Cursor example — same shape works for Claude Desktop / Codex):
{
"mcpServers": {
"notion-bank": {
"command": "npx",
"args": ["-y", "notion-bank-mcp@latest"]
}
}
}Restart the host. Tools like
plan_statusandplan_upsertshould appear.On the first Notion action, a browser opens → sign in with Notion.
Tell the agent your Plans root Notion page URL once → it runs
plan_configure.
That is enough for most users.
Install options
Method | When to use |
| Recommended — always latest, no global install |
| Frequent local use |
Clone + | Developing the server itself |
Check / update the CLI:
notion-bank-mcp --version # or: notion-bank-mcp version
notion-bank-mcp update # checks npm only — does not auto-install
notion-bank-mcp --helpIf update reports a newer version:
npm i -g notion-bank-mcp@latest
# or keep using npx -y notion-bank-mcp@latestCLI
Command | Purpose |
| MCP over stdio (hosts) |
| Streamable HTTP (optional hosted URL) |
| Print package version |
| Compare local version to npm |
| Short usage |
Env (optional)
Env | Description |
| Override path to |
| Override path to OAuth credentials |
| In-process cache TTL (default |
| Cache LRU cap (default |
| Set |
| OAuth callback port (default |
HTTP-only (operators): NOTION_BANK_PUBLIC_URL, NOTION_BANK_HOST, NOTION_BANK_PORT, NOTION_BANK_HTTP_IDLE_MS. See docs/OPERATOR.md.
Local from source
make install && make check && make build
make stdio
# or: node dist/index.jsFrom a local clone before publishing:
{
"mcpServers": {
"notion-bank": {
"command": "node",
"args": ["/absolute/path/to/notion-bank-mcp/dist/index.js"]
}
}
}Host compatibility
Primary transport is stdio. Same command + args pattern as other MCP servers. No env tokens required.
Host | Config | Notes |
Cursor |
| See |
Claude Desktop |
| Same |
Claude Code | MCP settings | Stdio; optional skill under |
Codex | MCP / tools config | Same pattern |
Windsurf / OpenCode | MCP | Prefer stdio |
Agent flow
npx notion-bank-mcp@latest (host starts stdio)
│
▼
plan_status
│
├─ no auth → browser OAuth (localhost callback :8765)
│ tokens → ~/.config/notion-bank/credentials.json
│
└─ no root → ask Plans root URL → plan_configure
config → ~/.config/notion-bank/config.json
│
▼
plan_upsert / plan_get / plan_update_range / …Hierarchy:
Plans / Superpowers ← root (plan_configure)
└── <Service> ← plan_ensure_service
└── <Plan title> ← plan_upsert / plan_migrateTools
Tool | Purpose |
| Auth + workspace readiness |
| Browser OAuth lifecycle |
| Persist Plans root (+ optional service map) |
| Ensure service page under root |
| Create a subpage under any parent page id/URL |
| Create/update plan from markdown or file |
| Read with optional |
| Surgical edit by section / lines + |
| Search with line hits |
| Export Notion plan → local markdown |
Resources
notion-bank://docs/workflownotion-bank://docs/instructionsnotion-bank://config
Config (per user / machine)
Stored outside the git repo:
Path | Contents |
| Plans root + service map |
| OAuth access / refresh tokens |
| Short-lived login state (auto-cleared) |
Do not put Notion tokens or OAuth client secrets in the repo or in committed mcp.json. Access tokens expire (~8h); the server refreshes automatically when possible. If refresh fails, run plan_oauth_login again.
HTTP serve
Optional hosted URL mode for teams that want "url": "https://host/mcp" instead of stdio:
npm run serve
# or: notion-bank-mcp serveDetails: docs/OPERATOR.md. Not required for normal users.
Skills
MCP tools and skills are separate. The skill teaches the agent when/how to document in Notion; the server only registers tools.
Shipped skill: skills/notion-bank/SKILL.md
Slash name: /notion-bank
Copy into your host skills directory (with notion-bank MCP enabled):
Host | Typical path |
Cursor |
|
Claude Code |
|
Codex / agents |
|
The skill chains superpowers (brainstorming → writing-plans) and optimize-goal when applicable, uses an in-skill engineering checklist, and always returns the Notion URL.
Developers
make check # typecheck + biome + tests (coverage fail <75%, warn <90%)
make test-coverage
make release VERSION=1.5.0 # bump package.json, commit, create annotated tag v1.5.0
git push && git push origin v1.5.0 # triggers GitHub Actions → npm publishCoverage policy: CI fails below 75% (lines/statements/functions/branches). Below 90% emits a warning annotation only.
Release: git tag vX.Y.Z is the source of truth. The release workflow syncs package.json version from the tag, runs checks, then npm publish. Requires repo secret NPM_TOKEN.
Docs
License
MIT
Maintenance
Related MCP Servers
- AlicenseAqualityAmaintenanceMarkdown-first MCP server for Notion that provides 7 composite action-based tools consolidating 28+ REST API endpoints, enabling AI agents to efficiently manage pages, databases, blocks, and content with automatic pagination and bulk operations.1115136Apache 2.0
- AlicenseBqualityDmaintenanceMemory for AI coding agents. Persistent code graph + AI architecture diagrams. 32 MCP tools32415MIT
- Alicense-qualityBmaintenanceMulti-project execution, memory, and collaboration platform for humans and AI agents, providing MCP tools for agents to read and write project state.2MIT
- Alicense-qualityCmaintenanceAn MCP+HTTP control plane for routing work to multiple coding-agent CLIs through a normalized contract, enabling multi-agent coding pipelines with planning, implementation, review, and revision.MIT
Related MCP Connectors
User-owned memory for AI agents, Copilot, Claude, IDEs, CLIs, and chat apps over remote MCP.
Analytical memory for AI agents: a real Postgres queried in plain English over MCP. One command.
Control plane for autonomous software labor. Agents claim objectives over MCP with audit trail.
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/hinha/notion-bank-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server