Better Notion MCP server
Markdown-first MCP server for Notion API with 8 composite tools and 39 actions.
36 stars1.3k downloads/wk
Reviews
Write oneNobody has reviewed Better Notion yet.
If you have run it, two minutes of your experience saves the next person an afternoon.
Better Notion tools (11, 1 write)
write = sends, deletes, buys or postsRead from the package source without running it. The installed server may list more.
blocksRead and modify block-level content within pages. Actions (required params -> optional): - get (block_id): retrieve single block - children (block_id): list child blocks - append (block_id, content -> position, after_block_id): add markdown content at position - update (block_id, content): replace text block content - delete (block_id): remove block Use `pages` for page metadata/properties. Page I
commentsManage page comments. Actions (required params -> optional): - list (page_id): all comments on a page - get (comment_id): single comment - create (content -> page_id for new discussion, discussion_id for reply)
configManage server configuration and credential state. Actions: - status: current credential state, token source, setup URL - setup_status: credential/setup state only (alias-equivalent to status for notion; kept for cross-server parity) - setup_start (-> force): trigger relay setup to configure Notion token via browser - setup_reset: clear credentials and config, return to awaiting_setup - setup_compl
config__open_relayOpen the relay configuration form for better-notion-mcp in the user browser. Returns the relay URL, whether the browser launched, and the current credential state.
content_convertConvert between markdown and Notion block JSON. Directions: markdown-to-blocks (input: markdown string), blocks-to-markdown (input: JSON array of Notion blocks or JSON string). Most tools (pages, blocks) handle markdown automatically -- use this only for preview/validation. Supported markdown: headings, lists, to-do, code blocks, blockquotes, dividers, callouts (> [!NOTE]), toggles (<details>), ta
databasesDatabase schema, query, and bulk row operations. Actions (required params -> optional): - create (parent_id -> title, properties, is_inline, icon, cover) - get (database_id) - query (database_id -> filters, sorts, limit, search) - create_page (database_id, pages[{properties}]) - update_page (database_id, page_id, page_properties) - delete_page (database_id, page_ids) - create_data_source / update_
file_uploadswrite actionUpload files to Notion. Actions (required params -> optional): - create (filename -> content_type, mode="single"|"multi_part", number_of_parts) - send (file_upload_id, file_content -> part_number): base64-encoded content - complete (file_upload_id) - retrieve (file_upload_id) - list (-> limit) Max 20MB direct, multi-part for larger files.
helpGet full documentation for a tool. Use when compressed descriptions are insufficient.
pagesPage CRUD for individual pages and database rows. Actions (required params -> optional): - create (parent_id -> title, content, properties, icon, cover) - get (page_id -> content_limit, content_cursor): returns markdown content; bounded reads return content_truncated and next_cursor - get_property (page_id, property_id) - update (page_id -> title, content, append_content, properties, icon, cover,
usersGet user information. Actions (required params): - list: all workspace users (requires admin permissions) - get (user_id): single user info - me: current bot/integration user - from_workspace: extract users from accessible pages (use if list fails)
workspaceSearch workspace and get workspace info. Actions (required params -> optional): - info: workspace name, plan, and bot user - search (-> query, filter.object="page"|"data_source", sort, limit): find pages/databases shared with integration
Public scan report
scanner v0.1.8 · 2026-09-19 · same rubric, same numbers if you re-run it
- Code scan120 source files scanned25/25
- –Live reliabilityno gateway calls yet and no remote to proben/a
- –Tool poisoningtools not inspected (local package is not executed); not countedn/a
- Auth qualitystatic API keys via environment variables6/15
- Maintenancerepository archived0/15
- Maintainer identityregistry namespace matches repository owner; GitHub account older than a year8/10
Findings (1)
- highRepository is archived
maint.archived
Grade history
- 2026-09-19restoreD → Cscore 60: Repository is archived
Install directly
Runs npx -y @n24q02m/better-notion-mcp on your machine. Read the scan report first; the gateway never runs local packages.
claude mcp add better-notion-mcp -- npx -y @n24q02m/better-notion-mcp
Better Notion: common questions
- Is Better Notion MCP server safe?
- With care: it is graded C, so read the findings first (60/100). Read the Better Notion safety report
- How do I install Better Notion?
- It runs on your machine. Copy the Claude Code, Claude Desktop or Cursor config from the install section.
- Does Better Notion need an API key?
- Yes. The registry entry asks for
NOTION_TOKEN. - Is Better Notion maintained?
- The last commit was 7 days ago (2026-09-13). The latest release is v2.41.6.
- What can I use instead of Better Notion?
- Servers from other publishers that do the same job: loci MCP server, Exomem MCP server and OrchestKit Docs MCP server. Compare all Better Notion alternatives.
Alternatives to Better Notion
Same job from other publishers: the closest match first, then the best rated.
- lociCross-session memory and hybrid RAG over your notes and docs. Local-first, with cited answers.not reviewedEstablishedA
ExomemLocal Markdown/Obsidian knowledge substrate for MCP agents with governed memory and hybrid search.not reviewedEstablishedA- OrchestKit Docs MCPRead-only MCP server for the OrchestKit docs: full-text search + Markdown fetch. No auth.not reviewedEstablishedA
AI ContextLocal-first MCP server: version-correct library docs, code map, and offline drift for your repo.not reviewedGrowingB- CompendioIndexes your project's markdown docs and serves them to any agent via local hybrid search.not reviewedGrowingA