
Better Notion Mcp
io.github.n24q02mPublished by GitHub account n24q02mv2.42.0Updated Oct 29, 2026
Markdown-first Notion for AI agents -- pages, databases, blocks, and comments in one call.
The publisher's own server: Notion
Overview
Markdown-first Notion server that lets an assistant create, read, update and organize pages, databases, blocks, comments and file uploads in one call.
- What you can do
- Create, read, update, move, archive, restore and duplicate pages
- Query and manage databases, including pages and data sources inside them
- Read, append, update and delete block content
- List users and workspace info, and search across the workspace
- List and create page comments
- Convert between Markdown and Notion blocks, and upload files in single or multi-part form
- When to use it
- Useful when an assistant should work with a Notion workspace in readable Markdown rather than raw JSON blocks, for example drafting or reorganizing pages, querying databases, or adding comments and attachments.
- Requirements
- Runs locally over stdio via npx (Node.js 24 or newer) or the published Docker image. Requires a Notion integration token in NOTION_TOKEN, created in Notion's integrations settings, and the integration must be shared with the target pages. An optional self-hosted HTTP mode uses bearer-token auth.
Installation
In SourceWeft
- Open Better Notion Mcp in the dashboard and add it to a workspace.
- Enable the server for the chats that should use its tools.
Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.
Other MCP clients
Follow the launch instructions in the repository.
README
notion
mcp-name: io.github.n24q02m/better-notion-mcp
Markdown-first Notion for AI agents -- pages, databases, blocks, and comments in one call.
[Mode] [CI] [codecov] [npm] [Docker] [License: Apache-2.0]
[TypeScript] [Node.js] [Notion] [semantic-release] [Renovate]
Sister projects from n24q02m (click to expand)
Table of contents
- Features
- Install
- CLI
- Remote (HTTP mode)
- Smithery
- Status
- Documentation
- Tools
- Configuration
- Comparison
- Security
- Build from Source
- Trust Model
- License
Features
- Markdown in, Markdown out -- human-readable content instead of raw JSON blocks
- 8 composite tools, 39 actions -- one call instead of chaining 2+ atomic Notion endpoints (plus
configandhelp) - Auto-pagination and bulk operations -- no manual cursor handling or looping
- Tiered token optimization -- ~77% reduction via compressed descriptions + on-demand
helptool - Dual transport -- local stdio (integration token) or remote HTTP (per-user or shared bearer token)
Install
Run with npx (Node.js >= 24) and a Notion integration token from https://www.notion.so/my-integrations (starts with ntn_):
The package is @n24q02m/notion (formerly @n24q02m/better-notion-mcp;
old package receives one final release then freezes). The MCP Registry id stays
io.github.n24q02m/better-notion-mcp, and the legacy better-notion-mcp
command is kept as an alias of notion.
Or run the published Docker image (stdio):
Install matrix
Full per-client walkthroughs: docs.n24q02m.com/servers/notion/setup/. See the Documentation section for per-client setup (Claude Code, Codex, Gemini CLI, Cursor, Windsurf) and HTTP mode.
CLI
Installing the package exposes a notion binary (plus the legacy better-notion-mcp alias; run it with npx or after a global install). With no arguments it starts the MCP server and speaks the protocol over stdin/stdout, so it is normally launched by an MCP client rather than by hand. Subcommands: auth stores the Notion integration token; config, status, logout, doctor, and token come from the shared hull CLI.
See Configuration for the full environment-variable reference.
Remote (HTTP mode)
Deployed with the HTTP transport, the server is a remote endpoint gated by bearer-token auth -- no integration token in the server config. Point an MCP client that supports remote HTTP servers at the host you deployed it on:
In multi mode (default) each user is listed in the users file (MCP_USERS_FILE, default ~/.hull/users.toml) and gets their own token and credential namespace. In token mode every client shares one token whose scrypt hash is set in MCP_AUTH_TOKEN_HASH. To stand up such an instance, see Self-Hosting (Remote Mode).
Smithery
The repo ships a smithery.yaml config for Smithery. Smithery launches the server over stdio (npx -y @n24q02m/notion) and requires no install-time config -- provide your Notion credentials at runtime through NOTION_TOKEN or the config tool (see Configuration).
Status
2026-05-02 -- Architecture stabilization update
Past months saw significant churn around credential handling and the daemon-bridge auto-spawn pattern. This caused multi-process races, browser tab spam, and inconsistent setup UX across plugins. The architecture is now stable: 2 clean modes (stdio + HTTP), no daemon-bridge layer, no auto-spawn from stdio.
Apologies for the instability period. If you encountered issues with prior versions, please update to the latest release and follow the current Setup guide -- most prior workarounds are no longer needed.
Related plugins from the same author:
- wet -- Web search + content extraction
- mnemo -- Persistent AI memory
- imagine-mcp -- Image/video understanding + generation
- email -- Email management
- telegram -- Telegram
- better-godot-mcp -- Godot Engine
- crg -- Code review knowledge graph
All plugins share the same architecture -- install once, learn pattern transfers.
Documentation
Full docs at docs.n24q02m.com/servers/notion/:
- Setup -- install methods for Claude Code, Codex, Gemini CLI, Cursor, Windsurf, mcp.json
Install with AI agent -- paste this to your AI coding agent:
Install MCP server
notionfollowing the steps at https://raw.githubusercontent.com/n24q02m/claude-plugins/main/plugins/better-notion-mcp/setup-with-agent.md
Tools
Eight composite Notion tools (39 actions) plus two infrastructure tools (config, help):
MCP Resources
Configuration
Self-Hosting (Remote Mode)
Run the HTTP server on your own host and choose an auth mode with MCP_AUTH_MODE:
multi(default): list each user inMCP_USERS_FILE; each user's Notion token is stored in their own namespace (~/.better-notion/subs/<ns>/config.json).token: one shared bearer token. Mint the hash withtoken hashand pass it asMCP_AUTH_TOKEN_HASH.no-auth: no bearer check. Use only on a trusted local network.
Docker Compose (loopback)
docker-compose.http.yml builds the http image target and publishes it on the host loopback interface only (127.0.0.1:8081), so the server is never reachable from other machines directly:
The server listens on http://localhost:8081/mcp. To expose it, put your own TLS reverse proxy in front of the loopback port.
Release images are published multi-arch (amd64 + arm64) to Docker Hub (n24q02m/notion) and GHCR (ghcr.io/n24q02m/notion). There is no n24q02m-hosted HTTP endpoint.
Comparison
How notion stacks up against direct competitors in each pillar:
Security
- Bearer token auth -- per-user tokens (
multi) or one scrypt-hashed shared token (token) - Rate limiting -- 120 req/min/IP on HTTP transport
- Session owner binding -- IP check + TTL for pending token binds
- Null safety -- Handles Notion API quirks (comments.list 404, undefined rich_text)
Build from Source
Trust Model
Credentials are never sent to n24q02m: there is no hosted endpoint.
License
Apache-2.0 -- See LICENSE.
Source: README.md at commit a8bcdf3
Tools
0Version history
2- v2.42.0LatestOct 29, 2026
- v2.41.6Sep 16, 2026
Score
50% of the applicable checks met
How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.
- Reached in the last 30 days25 pts
Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.
- Auth declared10 pts
Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.
- Tools listed15 pts
Answer tools/list without a credential, or ship a package that starts in a sandbox without one.
- DescriptionRequired15 pts
- Logo10 pts
- Documentation15 pts
- License10 pts
Other Notion integrations
Notion
com.notionOfficial publisher
Notion's hosted MCP server, published by notion.com; credential required; Streamable HTTP.

Notion Large File Upload
Published by GitHub account shoubhiksaha
Local MCP server that uploads large files from disk (up to 5 GB) to Notion and attaches them to pages or blocks.
Notion
com.foreverworks
Local MCP server that lets an assistant search, read and write several Notion workspaces, with pages as Markdown and typed database queries.

Notion MCP by InsightfulPipe
com.insightfulpipe
Hosted Notion MCP server that lets an AI assistant search, read and, with write scopes, create or update Notion pages, databases, data sources and blocks.

Notion Arena
Published by GitHub account imgul
Local MCP server for the Notion Arena component registry, letting an assistant search, inspect and plan installation of Notion widgets and recipes.