MCP.so
Sign In

Easy Notion Mcp

@Grey-Iris

About Easy Notion Mcp

Markdown-first Notion MCP server — 26 tools, 92% fewer tokens, full round-trip fidelity

Basic information

Config

Add this server to your MCP-compatible client using the configuration below.

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

Tools

26

Create a new Notion page from markdown content. Supported markdown syntax: - Headings: # H1, ## H2, ### H3 - Inline: **bold**, *italic*, ~~strikethrough~~, `code`, [links](url) - Images: ![alt](url) - Lists: - bullet, 1. numbered, - [ ] task, - [x] checked task - Tables: | col | col | with header row and --- separator - Code blocks: triple backtick with optional language - Blockquotes: > text - Callouts: > [!NOTE], > [!TIP], > [!WARNING], > [!IMPORTANT], > [!INFO], > [!SUCCESS], > [!ERROR] → styled callout blocks with emoji - Dividers: --- - Toggle blocks: +++ Title\ncontent\n+++ (collapsible sections) - Column layouts: ::: columns\n::: column\nleft\n:::\n::: column\nright\n:::\n::: - Bookmarks: bare URL on its own line (not wrapped in []()) → rich preview card - Equations: $$expression$$ or multi-line $$\nexpression\n$$ → equation block - Table of contents: [toc] → table of contents block - Embeds: [embed](url) → embed block - File uploads: ![alt](file:///path/to/image.png) → uploads and creates image block Link syntax: [name](file:///path/to/file.pdf) → uploads and creates file/audio/video block (by extension) Max 20 MB per file.

Append markdown content to an existing page. Supports the same markdown syntax as create_page (headings, tables, callouts, toggles, columns, bookmarks, etc.).

Replace all page content with the provided markdown. Deletes existing blocks and writes new ones. Supports the same markdown syntax as create_page (headings, tables, callouts, toggles, columns, bookmarks, etc.).

Update a section of a page by heading name. Finds the heading, replaces everything from that heading to the next section boundary. For H1 headings, the section extends to the next heading of any level. For H2/H3 headings, it extends to the next heading of the same or higher level. Include the heading itself in the markdown. More efficient than replace_content for editing one section of a large page.

Find and replace text on a page. Preserves uploaded files and blocks that aren't touched. More efficient than replace_content for targeted text changes like fixing typos, updating URLs, or renaming terms.

Read a page and return its metadata plus markdown content. Recursively fetches nested blocks. Output uses the same conventions as input: toggles as +++ blocks, columns as ::: blocks, callouts as > [!NOTE], tables as | pipes |. The markdown round-trips cleanly — read a page, modify the markdown, replace_content to update.

Duplicate a page. Reads all blocks from the source and creates a new page with the same content.

Update page title, icon, or cover. Cover accepts an image URL or a file:// path (which will be uploaded to Notion).

Archive a page in Notion.

Search Notion pages or databases. Use filter: 'databases' to find databases by name, then get_database for schema details.

List child pages under a parent page.

Return the page URL that can be shared from Notion.

Create a database under a parent page. Supported property types: title, text, number, select, multi_select, date, checkbox, url, email, phone, status.

Get a database's schema — property names, types, and select/status options. Call this before query_database or add_database_entry to know the exact property names and valid values.

List all databases the integration can access. Returns database names and IDs — use get_database on any result to see its schema.

Query a database with optional filters, sorts, or text search. Use text for simple keyword search across all text fields. For advanced filtering, use the filter parameter with Notion filter syntax: - Text contains: { "property": "Name", "title": { "contains": "keyword" } } - Select equals: { "property": "Status", "status": { "equals": "Done" } } - Checkbox: { "property": "Urgent", "checkbox": { "equals": true } } - Date after: { "property": "Due", "date": { "after": "2025-01-01" } } - Combine: { "and": [...] } or { "or": [...] } Call get_database first to see available properties and valid options.

Create a new entry in a database. Pass properties as simple key-value pairs — the server converts using the database schema. Example: { "Name": "Buy groceries", "Status": "Todo", "Priority": "High", "Due": "2025-03-20", "Tags": ["Personal"] }. Call get_database to see available property names and valid select/status options.

Create multiple entries in a database in one call. Each entry uses the same simple key-value format as add_database_entry. Returns per-entry results — partial failures don't block the batch.

Update an existing database entry. Pass only the properties you want to change — omitted properties are left unchanged. Uses the same simple key-value format as add_database_entry. Call get_database to see valid property names and options.

List comments on a page.

Add a comment to a page.

Move a page to a new parent page.

Restore an archived page.

Delete (archive) a database entry.

List workspace users.

Get the current bot user.

Overview

What is Easy Notion Mcp?

Easy Notion Mcp is a markdown-first MCP server that connects AI agents to Notion. It converts standard GFM markdown to Notion's block API and back, supporting 26 tools and 25 block types with full round-trip fidelity.

How to use Easy Notion Mcp?

Install via npx easy-notion-mcp. Use OAuth (HTTP server with npx easy-notion-mcp-http) or an API token (NOTION_TOKEN). Configure with any MCP client (Claude Code, Claude Desktop, OpenClaw, Cursor, VS Code Copilot, Windsurf). The server runs on stdio (API token) or HTTP (OAuth).

Key features of Easy Notion Mcp

  • 26 individually-named tools across 5 categories.
  • 25 block types using standard markdown extended syntax.
  • 92% fewer tokens vs official Notion MCP server.
  • Full round-trip fidelity – read, modify, write without loss.
  • Simple key-value pairs for database entries.
  • Built-in prompt injection defense and URL sanitization.

Use cases of Easy Notion Mcp

  • Create and edit Notion pages using plain markdown text.
  • Manage databases with automatic schema conversion.
  • Search, duplicate, move, and archive pages.
  • Add comments and list workspace users.
  • Upload files via file:///path in markdown.

FAQ from Easy Notion Mcp

How does Easy Notion Mcp compare to other Notion MCP servers?

Easy Notion Mcp uses standard GFM markdown, supports 25 block types, offers 26 tools, and achieves full round-trip fidelity – unlike the official server (raw JSON) or better-notion-mcp (limited block types, dropped content).

How do I set up Easy Notion Mcp?

Two options: OAuth (recommended) – run the HTTP server and connect with any MCP client; API token – create a Notion integration, set NOTION_TOKEN, and share pages with it. Configuration examples for Claude Desktop, Cursor, VS Code, Windsurf, and OpenClaw are provided.

How does Easy Notion Mcp handle databases?

It fetches the database schema at runtime and converts simple key-value pairs (e.g., {"Status": "Done"}) to Notion's property format automatically. Schema is cached for 5 minutes. Tools include create, query, add, update, and delete entries.

What about security and prompt injection?

Easy Notion Mcp adds a content notice prefix to read responses and sanitizes URLs to help defend against prompt injection attacks.

Can I read and rewrite pages without losing formatting?

Yes. All 25 supported block types (including toggles, columns, callouts, equations, tables, task lists) round-trip cleanly. Read a page as markdown, modify the string, then write it back – nothing is lost.

Comments

More Memory & Knowledge MCP servers