notion-bank-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| XDG_CONFIG_HOME | No | XDG base directory for config (default ~/.config) | |
| NOTION_BANK_CONFIG_PATH | No | Override path for config file (default ~/.config/notion-bank/config.json) | |
| NOTION_BANK_CREDENTIALS_PATH | No | Override path for credentials file (default ~/.config/notion-bank/credentials.json) |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| prompts | {
"listChanged": true
} |
| resources | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| plan_statusA | Show auth + workspace status. Call first. End users need no CLIENT_ID — browser OAuth opens automatically. |
| plan_oauth_loginA | Open browser for Notion login (mcp.notion.com). Auto-runs on first Notion tool if not logged in. No CLIENT_ID/SECRET. |
| plan_oauth_waitB | Finish a pending plan_oauth_login(wait=false) after the user approves in the browser. |
| plan_oauth_logoutA | Clear saved OAuth credentials for this user (credentials.json). Does not revoke at Notion end. |
| plan_configureA | Persist per-user workspace settings (NOT in repo .env). Pass the user's Plans root Notion URL or UUID. Optional services map slug→page_id. Merges services by default. Call after plan_status when root_page_id missing. Ask the user for their root page — never invent IDs. |
| plan_ensure_serviceA | Ensure a service page exists under the configured Plans root. Creates if missing. Requires plan_configure + NOTION_TOKEN. |
| plan_migrateB | Migrate a local markdown file into Notion plan bank (upsert under service → title). Requires plan_configure + NOTION_TOKEN. Chunking handled inside MCP. |
| plan_upsertB | Create or update a plan from a markdown string. Upserts by exact title under the service page. Requires plan_configure + NOTION_TOKEN. |
| plan_getA | Fetch a plan as addressable markdown with L00N| line numbers, TOC, and etag. Always call before plan_update_range. Requires plan_configure + NOTION_TOKEN. |
| plan_searchB | Search configured plan bank. Hits include service, title, url, line, snippet (lines match plan_get). Requires plan_configure + NOTION_TOKEN. |
| plan_update_rangeB | Surgical update by section (preferred) or start_line/end_line. Pass expected_etag from plan_get. Errors if neither section nor lines given (no silent full replace). Requires plan_configure + NOTION_TOKEN. |
| plan_syncB | Export a Notion plan (canonical) to a local markdown file. Requires plan_configure + NOTION_TOKEN. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| save-plan | Guided flow: ensure configured, then upsert a plan under a service |
| revise-section | Guided flow: plan_get then plan_update_range with etag |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| workflow | How agents should set up and use notion-bank tools across Cursor/Claude/Codex/OpenCode |
| instructions | Same text sent on MCP initialize |
| config | Per-user workspace config + status (no secrets). Path from plan_status. |
TDQS
Scored across 12 tools
Each tool has a clearly distinct purpose: configure, ensure_service, get, migrate, OAuth login/logout/wait, search, status, sync, update_range, upsert. No overlap.
All tools follow consistent 'plan_' prefix with verb_noun pattern in snake_case (e.g., plan_ensure_service, plan_update_range). No mixing of conventions.
12 tools is well within the ideal 3-15 range, covering auth, CRUD, search, sync, and migration without unnecessary bloat.
Covers configuration, service management, plan retrieval, updates, upserts, search, sync, and OAuth flow. Minor gap: no explicit deletion tool, but upsert can override and sync handles export. Still quite complete.