Labsco
MCP SERVER

Better Notion MCP

by n24q02m

Work with Notion in Markdown — pages, databases, blocks and comments — with one call where the API would need several.

Team Wikis & Documentation PlatformsVerified
Summary
Two design decisions aimed at the same problem — Notion work eats context: composite tools, and descriptions that expand only when asked.

Grouping operations under an action parameter means the tool list stays short while the coverage stays wide, and the help tool hands back the full documentation for the one tool being used instead of loading all of it every turn. The Markdown conversion is the other practical piece: models write Markdown, Notion stores blocks, and this translates in both directions rather than making you build block JSON by hand.

What it is

A Notion server built around composite tools: each one takes an action parameter covering a family of operations, so a page create-with-content is a single call rather than a chain.

What you get
  • Pages created, read, updated and archived, covering both standalone pages and database rows, with title, content and properties set in the same call
  • Databases handled end to end: schema creation, querying, and bulk row operations
  • Block-level editing inside a page — read a block, walk its children, and modify content in place
  • Markdown in both directions, converting Markdown to Notion blocks and Notion blocks back to Markdown
  • Workspace search with the workspace's own name, plan and bot user, and user lookup across the workspace
  • Comments on a page listed, read and created
  • File uploads, including multi-part for larger files
  • Compressed tool descriptions with a help tool that returns the full documentation on demand, which keeps the always-loaded definitions small
  • Two transports: local stdio with an integration token, or a remote HTTP deployment gated by OAuth 2.1 where users never paste a token
Requirements

A Notion integration token from notion.so/my-integrations, set as NOTION_TOKEN, and the pages or databases shared with that integration. Published on npm as @n24q02m/better-notion-mcp and run with npx on Node.js 24 or newer, with a Docker image as an alternative. Deployed in HTTP mode instead, it is a remote endpoint using OAuth 2.1 and per-user access tokens, with a Cloudflare deployment path documented.

Setup effort

One command plus a key — npx --yes @n24q02m/better-notion-mcp@latest, then supply credentials