Notion MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| HOST | No | Host binding for the remote/HTTP transport. | |
| PORT | No | Port for the remote/HTTP transport. | |
| HTTP_PROXY | No | Route all outbound traffic — Notion API calls and the downloads in `get_image` and `upload_file`'s `url` source — through an HTTP(S) proxy (standard env var, lowercase also accepted). | |
| HTTPS_PROXY | No | Route all outbound traffic — Notion API calls and the downloads in `get_image` and `upload_file`'s `url` source — through an HTTP(S) proxy (standard env var, lowercase also accepted). | |
| NOTION_TOKEN | Yes | Notion auth token: either a Personal Access Token (`ntn_…`, recommended) or an Internal Integration secret (`secret_…` / `ntn_…`). Create a PAT at app.notion.com/developers/tokens, or an Internal Integration at app.notion.com/developers/connections (and Connect it to each page it should access). | |
| MCP_TRANSPORT | No | Selects the transport for remote/HTTP usage (stdio by default). | |
| MCP_AUTH_TOKEN | No | Auth token for the remote/HTTP transport. | |
| NOTION_PAGE_ID | No | Default parent for `create_page` / `create_database` when no `parent` is passed. Get it from a page's Share → Copy link; the whole URL or the bare 32-char id both work. | |
| NOTION_FILE_URLS | No | `ref` replaces Notion's signed file URLs (~1,650 chars, valid for an hour) in slim responses with short `notion-file:` refs. Default is `full`. | full |
| NOTION_READ_ONLY | No | `true`/`1`/`yes` disables every write operation in one switch. | |
| NOTION_RATE_LIMIT | No | Requests/second for the shared limiter (Notion's documented per-integration limit). | 3 |
| NOTION_UPLOAD_ROOT | No | Confine `upload_file`'s `path` source to one directory. | |
| MCP_PROTOCOL_NEGOTIATION | No | Set to `auto` to probe for MCP 2026-07-28 (stateless requests, cache hints on every list). The server serves both 2025-era and 2026-era protocols. | |
| NOTION_DAILY_LOG_PAGE_ID | No | Page id used by the daily-log MCP prompt. | |
| NOTION_ALLOWED_OPERATIONS | No | Comma-separated allowlist of operations or group presets (e.g. `read`, `write`, `destructive`, `pages`, `blocks`, `databases`, `data_sources`, `views`, `comments`, `users`, `files`, or exact operation names). Names are case-insensitive; unknown tokens are ignored with a warning; an allowlist that resolves to zero operations disables everything (fail-closed). | |
| NOTION_BLOCKED_OPERATIONS | No | Comma-separated blocklist using the same vocabulary as NOTION_ALLOWED_OPERATIONS. Wins over the allowlist. | |
| NOTION_CONFIRM_DESTRUCTIVE | No | `true`/`1` keeps destructive operations enabled but asks you first via MCP elicitation. Declining returns `confirmation_declined`; clients without elicitation support get `confirmation_unavailable`. |
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
Server capabilities have not been inspected yet.
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
No tools | |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
This server cannot be deployed
Maintenance
ActivityActive
ResponsivenessResponsive