Notion MCP Server
by Ewa9731
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| HOST | No | HTTP-transport variable for the host/interface to bind (see the Remote / HTTP transport documentation). | |
| PORT | No | HTTP-transport variable for the port to listen on (see the Remote / HTTP transport documentation). | |
| 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 `http_proxy` 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 `https_proxy` also accepted). | |
| NOTION_TOKEN | Yes | PAT (`ntn_…`, recommended) or Internal Integration secret (`secret_…` / `ntn_…`). Required — without it the server starts and then fails every call with an auth error. | |
| MCP_TRANSPORT | No | HTTP-transport variable selecting the transport (see the Remote / HTTP transport documentation). | |
| MCP_AUTH_TOKEN | No | HTTP-transport variable for authenticating remote clients (see the Remote / HTTP transport documentation). | |
| NOTION_PAGE_ID | No | Default parent for `create_page` / `create_database` when no `parent` is passed (page → 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. | 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). Needed for clients such as Claude Code that otherwise speak the 2025-era protocol over stdio. The server serves both. | |
| NOTION_DAILY_LOG_PAGE_ID | No | Only 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`). 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 (same vocabulary as `NOTION_ALLOWED_OPERATIONS`); wins over the allowlist. | |
| NOTION_CONFIRM_DESTRUCTIVE | No | `true`/`1` keeps destructive operations enabled but asks you first, through MCP elicitation. Requires a client that supports elicitation; otherwise the call returns `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