
<aside> âšī¸
đ Markdown in. Notion out. 87% fewer tokens. This page was built entirely by an AI agent using easy-notion-mcp â every block, image, database, and comment created through MCP tool calls.
</aside>
fewer tokens on page reads
6,536 â 291 tokens
fewer tokens on DB queries
2,983 â 347 tokens
fewer tokens on search
1,824 â 298 tokens
Markdown supports bold, italic, strikethrough, inline code, and hyperlinks. You can also nest them freely: bold italic, bold with code inside, and strikethrough with *italic*.
Bullet & Numbered
Task Lists
// One tool call. That's it.
const page = await notion.create_page({
title: "Sprint Review",
markdown: `
## Decisions
- Ship v2 by Friday
- Defer mobile to Q3
> [!WARNING]
> Deploy window is Saturday 2-4am only
`
});
# Smart text search â auto-searches all text fields
results = notion.query_database(
database_id="abc",
text="urgent" # No filter objects needed
)
# Schema inspection â know before you write
schema = notion.get_database(database_id="abc")
# â { properties: [{ name: "Status", type: "select", options: ["Todo", "Done"] }] }
| Operation | Other MCPs | easy-notion-mcp | Savings |
|---|---|---|---|
| đ Page read | ~6,536 tokens | ~291 tokens | 93% |
| đī¸ Database query | ~2,983 tokens | ~347 tokens | 87% |
| đ Search | ~1,824 tokens | ~298 tokens | 76% |
| đ¤ File uploads | Not supported | Via file:// | New |

<aside> đĄ
Agents write markdown. The server handles the Notion API.
</aside>
<aside> đ
Call get_database before writing entries to see the schema.
</aside>
<aside> â ī¸
Use update_section for surgical edits instead of replace_content.
</aside>
<aside> đ´
Round-trip fidelity is a design guarantee, not a happy accident.
</aside>
<aside> âšī¸
87% fewer tokens compared to MCPs that return raw Notion JSON.
</aside>
<aside> â
26 tools, 25 block types, SDK v5.13, API 2025-09-03.
</aside>
<aside> â
Property 'Stauts' not found. Did you mean 'Status'?
</aside>
