notion-bank-mcp
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 and Notion.
Agents read and write Markdown implementation plans with line + section addressing — no ad-hoc temp scripts.
OAuth via mcp.notion.com (browser) · zero CLIENT_ID / SECRET for end users · stdio install like other MCP servers
npx -y notion-bank-mcpContents: Why · Compare · Setup · Flow · Tools · Config · Security · Operator · FAQ
Why 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: Better Notion MCP
How does notion-bank-mcp compare?
Feature | notion-bank-mcp | Hosted Notion MCP ( |
Focus | Plan bank: hierarchy, migrate, surgical section edits | General workspace tools |
Best for | Implementation plans agents create & revise repeatedly | Browse / edit any Notion content |
Content format | Markdown + line numbers / TOC / etag | Enhanced markdown tools |
Install for users |
| MCP |
User secrets in mcp.json | ❌ None | ❌ None (host OAuth) |
Plans → service → plan hierarchy | ✅ | ❌ DIY with generic tools |
| ✅ | ❌ (generic update tools) |
Local markdown sync | ✅ | Partial / manual |
How do I set up notion-bank-mcp?
Cursor / Claude / Windsurf / Codex
Add to your MCP config (no env tokens required):
{
"mcpServers": {
"notion-bank": {
"command": "npx",
"args": ["-y", "notion-bank-mcp"]
}
}
}Cursor: .cursor/mcp.json or Settings → MCP
Claude Desktop: claude_desktop_config.json
Windsurf: MCP config JSON
From a local clone (before publishing to npm):
{
"mcpServers": {
"notion-bank": {
"command": "npx",
"args": [
"-y",
"--package=/absolute/path/to/notion-bank-mcp",
"notion-bank-mcp"
]
}
}
}Or:
{
"mcpServers": {
"notion-bank": {
"command": "node",
"args": ["/absolute/path/to/notion-bank-mcp/dist/index.js"]
}
}
}(npm install && npm run build first for the node dist form.)
First-time use
Enable the MCP in your client
On the first Notion action, a browser opens → sign in with Notion (
mcp.notion.com)Tell the agent your Plans root Notion page URL once → it runs
plan_configureUse
plan_upsert/plan_get/plan_update_rangeas usual
What does the agent flow look like?
npx notion-bank-mcp (Cursor 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 / …Suggested hierarchy:
Plans / Superpowers ← root (plan_configure)
└── <Service> ← plan_ensure_service
└── <Plan title> ← plan_upsert / plan_migrateWhat tools are available?
Tool | Purpose |
| Auth + workspace readiness |
| Browser OAuth lifecycle |
| Persist Plans root (+ optional service map) |
| Ensure service page under root |
| Create/update plan from markdown or file |
| Read with optional |
| Surgical edit by section / lines + |
| Search with line hits |
| Export Notion plan → local markdown |
Where is configuration stored?
All of this is outside the git repo (per user / machine):
Path | Contents |
| Plans root + service map |
| OAuth access / refresh tokens |
| Short-lived login state (auto-cleared) |
Overrides (optional): NOTION_BANK_CONFIG_PATH, NOTION_BANK_CREDENTIALS_PATH, XDG_CONFIG_HOME.
What about secrets and security?
Do not put Notion tokens, OAuth client secrets, or PATs in this repository or in committed
mcp.json.End-user auth is browser OAuth against Notion’s hosted MCP (
mcp.notion.com) using Dynamic Client Registration — noCLIENT_ID/CLIENT_SECRETin user config.Tokens live only under
~/.config/notion-bank/with restrictive file modes where possible..envis gitignored;.env.exampledocuments optional non-secret host knobs only.Prefer OS credential helpers /
gh auth loginfor GitHub — avoid embedding tokens ingit remoteURLs.
Optional hosted URL
For teams that want "url": "https://host/mcp" instead of stdio, operators can run npm run serve. Details: docs/OPERATOR.md. Not required for normal users.
Development
git clone https://github.com/hinha/notion-bank-mcp.git
cd notion-bank-mcp
npm install
npm run build
npm test
npm run stdio # or: node dist/index.jsFAQ
Do I need a Notion internal integration token?
No for the default path. Browser OAuth is enough.
Why did 127.0.0.1 refuse the connection during login?
Some MCP hosts restart the stdio process right after a tool returns. This server persists pending OAuth to disk and re-binds the callback on process start. Retry plan_oauth_login if needed and keep the client open until you see “notion-bank connected”.
Can I share one config across machines via git?
No — keep ~/.config/notion-bank/ private. Each user (or machine) runs OAuth + plan_configure once.
License
MIT — see LICENSE.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
- 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