Easy Notion MCP Server

1

Add it to Claude Code

Run this in a terminal.

Run in terminal
claude mcp add easy-notion-mcp -- npx -y easy-notion-mcp
README.md

Markdown-first MCP server that connects AI agents to Notion.

Easy Notion MCP

Markdown-first MCP server that connects AI agents to Notion. Agents write markdown — easy-notion-mcp converts it to Notion's block API and back again.

26 tools · 25 block types · 92% fewer tokens vs official Notion MCP · Full round-trip fidelity

npx easy-notion-mcp

See it in action → Live Notion page created and managed entirely through easy-notion-mcp.

Raw JSON chaos vs clean markdown


Contents: Comparison · Setup · Why markdown · How it works · Tools · Block types · Round-trip · Databases · Config · Security · FAQ

How does easy-notion-mcp compare to other Notion MCP servers?

Feature easy-notion-mcp Official Notion MCP (npm) better-notion-mcp
Content format ✅ Standard GFM markdown ❌ Raw Notion API JSON ⚠️ Markdown (limited block types)
Block types ✅ 25 (toggles, columns, callouts, equations, embeds, tables, file uploads, task lists) ⚠️ All (as raw JSON) ⚠️ ~7 (headings, paragraphs, lists, code, quotes, dividers)
Round-trip fidelity ✅ Full — read markdown, modify, write back ❌ Raw JSON requires block reconstruction ⚠️ Unsupported blocks silently dropped
Tools 26 individually-named tools 18 auto-generated from OpenAPI 9 composite tools (39 actions)
File uploads file:///path in markdown Open feature request ✅ 5-step lifecycle
Prompt injection defense ✅ Content notice prefix + URL sanitization
Database entry format Simple {"Status": "Done"} key-value pairs Simplified key-value pairs Simplified key-value pairs
Auth options API token or OAuth API token or OAuth API token or OAuth

How many tokens does easy-notion-mcp save?

Operation easy-notion-mcp better-notion-mcp Official Notion MCP Savings vs Official
Page read 291 tokens ⚠️ 236 tokens 6,536 tokens 95.5%
DB query (5 rows) 347 tokens 704 tokens 2,983 tokens 88.4%
Search (3 results) 298 tokens 347 tokens 1,824 tokens 83.7%

⚠️ better-notion-mcp page reads appear smaller because they silently drop 11 block types (callouts, toggles, tables, task lists, equations, bookmarks, embeds). On equal content coverage, easy-notion-mcp is more efficient.

Measured by running all three MCP servers against the same Notion content and counting tokens with tiktoken cl100k_base. Raw responses saved for verification.

How do I set up easy-notion-mcp?

With OAuth (recommended)

Run the HTTP server, then connect with any MCP client. OAuth handles authentication — no token to copy-paste.

Start the server:

npx easy-notion-mcp-http

Requires NOTION_OAUTH_CLIENT_ID and NOTION_OAUTH_CLIENT_SECRET env vars. See OAuth setup below.

Claude Code:

claude mcp add notion --transport http http://localhost:3333/mcp

OpenClaw:

openclaw config set mcpServers.notion.transport "http"
openclaw config set mcpServers.notion.url "http://localhost:3333/mcp"

Claude Desktop:

Go to Settings → Connectors → Add custom connector, enter http://localhost:3333/mcp.

Your browser will open to Notion's authorization page. Pick the pages to share, click Allow, done.

With API token

Create a Notion integration, copy the token, share your pages with it.

Claude Code:

claude mcp add notion -- npx -y easy-notion-mcp

Set the env var: export NOTION_TOKEN=ntn_your_integration_token

OpenClaw:

openclaw config set mcpServers.notion.command "npx"
openclaw config set mcpServers.notion.args '["easy-notion-mcp"]'

Set the env var: export NOTION_TOKEN=ntn_your_integration_token

Claude Desktop / Cursor / Windsurf — add to your MCP config file:

{
  "mcpServers": {
    "notion": {
      "command": "npx",
      "args": ["-y", "easy-notion-mcp"],
      "env": {
        "NOTION_TOKEN": "ntn_your_integration_token"
      }
    }
  }
}

Config file locations: Cl

Tools (3)

read_pageReads a Notion page and returns its content as markdown.
write_pageWrites markdown content to a Notion page.
query_databaseQueries a Notion database and returns results.

Environment Variables

NOTION_TOKENThe integration token for Notion API access.
NOTION_OAUTH_CLIENT_IDClient ID for OAuth authentication.
NOTION_OAUTH_CLIENT_SECRETClient secret for OAuth authentication.

Configuration

claude_desktop_config.json
{"mcpServers": {"notion": {"command": "npx", "args": ["-y", "easy-notion-mcp"], "env": {"NOTION_TOKEN": "ntn_your_integration_token"}}}}

Try it

Read the content of my 'Project Roadmap' page in Notion and summarize the next steps.
Update my 'Daily Standup' page with the following markdown content: [insert markdown].
Query my 'Tasks' database for all items with status 'In Progress' and list them.
Create a new page in my 'Notes' database titled 'Meeting Minutes' with the provided summary.

Frequently Asked Questions

What are the key features of Easy Notion MCP?

Converts Notion blocks to standard GFM markdown for AI agents. Supports 25 block types including toggles, columns, callouts, and equations. Achieves 92% fewer tokens compared to the official Notion MCP server. Provides full round-trip fidelity for reading and rewriting pages. Includes built-in prompt injection defense and URL sanitization.

What can I use Easy Notion MCP for?

Automating documentation updates by having AI agents write directly to Notion pages. Summarizing complex Notion databases into concise markdown reports. Syncing project management tasks between local markdown files and Notion databases. Managing Notion content via CLI or AI-powered IDEs without manual formatting.

How do I install Easy Notion MCP?

Install Easy Notion MCP by running: npx -y easy-notion-mcp

What MCP clients work with Easy Notion MCP?

Easy Notion MCP works with any MCP-compatible client including Claude Desktop, Claude Code, Cursor, and other editors with MCP support.

Turn this server into reusable context

Keep Easy Notion MCP docs, env vars, and workflow notes in Conare so your agent carries them across sessions.

Need the old visual installer? Open Conare IDE.
Open Conare