Vibeleaderboard
Index / tool
Visit github.com
Category
Developer Tools
Rank
No. 397Tools index
Pricing
Open Source
Platform
cli
Type
TOOL
Builder
makenotion
Latest release
v2.1.0
Added
Jul 2, 2026

About

An official Model Context Protocol (MCP) server for the Notion API, enabling AI agents and tools like Claude and Cursor to read, create, and edit Notion pages and databases. It supports both a local npm/Docker setup and a newer remote OAuth-based server, with optimized Markdown-based page editing for token efficiency.

What it does

This TypeScript service turns operations from Notion’s OpenAPI description into agent-facing tools, then forwards requests to the underlying API. It builds input schemas automatically, manages endpoint-specific API headers, supports file uploads, and returns responses as MCP text content. Clients can connect through standard input and output or authenticated HTTP.

Why it's ranked here

The OpenAPI-driven design gives broad API coverage without hand-building every tool, while automatic discovery reduces client migration work. Markdown page operations cut context usage for reading and targeted editing. The main reservation is strategic: active support has moved to the hosted service, and this local repository may eventually be retired.

What's good

It handles several practical integration failures explicitly. Nested parameters accidentally serialized as JSON strings are normalized before forwarding. Read operations receive read-only hints, while writes receive destructive hints. HTTP mode requires bearer authentication unless an explicit unsafe option disables it. Per-operation API versions let newer Markdown endpoints coexist with the rest of the API.

Tradeoffs

Local setup still requires an integration token, selected workspace access, and careful capability scoping. Exposing workspace content to language models carries acknowledged data risk. The repository’s issues and pull requests are not actively monitored, and its local server may be sunset. Hardcoded prompts can also break when API migrations rename tools or replace database identifiers with data-source identifiers.

How to use it well

Choose it when an MCP client needs structured Notion automation through a locally controlled process or HTTP service. Grant only the pages and capabilities the workflow requires, preferably read-only access for retrieval tasks. Use Markdown operations for full-page reading or focused text replacement. It does not provide the supported hosted OAuth experience, and it intentionally excludes some dangerous API actions such as database deletion.

Technical notes+

src/init-server.ts loads the OpenAPI document and constructs MCPProxy. In src/openapi-mcp-server/openapi/parser.ts, OpenAPIToMCPConverter maps operations and schemas into MCP tool definitions, skips header parameters, handles references, and translates binary fields for local file paths. src/openapi-mcp-server/mcp/proxy.ts registers list and call handlers, truncates tool names to 64 characters, annotates GET operations as read-only, recursively unwraps structured JSON strings up to three times, and converts API failures into structured text responses. src/openapi-mcp-server/client/http-client.ts separates URL and body parameters, prepares multipart uploads, and applies OpenAPI header defaults per operation unless global headers override them. src/openapi-mcp-server/mcp/token.ts supports bounded token-shape checks, per-request token resolution, and redacted logging. scripts/build-cli.js bundles the TypeScript entry point into an executable Node 18 ESM CLI. vitest.config.ts configures Vitest, while package.json exposes build, development, test, watch, and coverage scripts.

Observed

License
MIT
Primary language
TypeScript
Package
Published as the npm package @notionhq/notion-mcp-server with an executable CLI
Container installation
Official Docker Hub image and local Docker Compose build are documented
Interface
MCP server with standard input/output and Streamable HTTP transports
HTTP security
Streamable HTTP requires bearer authentication unless explicitly disabled with an unsafe flag
Runtime target
The bundled executable targets Node.js 18
Testing
Vitest scripts cover normal runs, watch mode, and coverage

Read from README.md, package.json, src/init-server.ts, src/openapi-mcp-server/index.ts, src/openapi-mcp-server/mcp/proxy.ts, src/openapi-mcp-server/mcp/token.ts, src/openapi-mcp-server/auth/index.ts, src/openapi-mcp-server/auth/types.ts, src/openapi-mcp-server/auth/template.ts, src/openapi-mcp-server/openapi/parser.ts, src/openapi-mcp-server/client/http-client.ts, src/openapi-mcp-server/openapi/file-upload.ts, src/openapi-mcp-server/client/polyfill-headers.ts, vitest.config.ts, scripts/build-cli.js.

What it can do

  • Search Notion pages and databases by keyword

    Search query stringList of matching Notion pages and databases with metadata

  • Create a new Notion page

    Page title, content, and target parent page or databaseNewly created Notion page with URL and ID

  • Edit existing Notion page content

    Page ID and updated Markdown-formatted contentUpdated Notion page with revised content blocks

  • Read Notion page content

    Notion page ID or URLPage content rendered as Markdown text

  • Query a Notion database

    Database ID with optional filters and sort parametersFiltered and sorted list of database entries

  • Create a new entry in a Notion database

    Database ID and property values for the new rowNewly created database entry with assigned ID and properties

  • Update properties of a Notion database entry

    Page/entry ID and new property valuesUpdated database entry reflecting the changed properties

Tags

notionmcpai-agentsapillmclaudecursorproductivityintegration

Tech Stack

Node.jsDockerTypeScript

Comments (0)

No comments yet

Indexed by a proprietary survey. Corrections welcome.