Reported issues for easy-notion
Pod holds 15 of 15 problems reported by people outside the maintainer team. Issues filed by the project's own owners, members and collaborators are excluded entirely — a maintainer's release checklist is not a warning to a prospective user.
Back to easy-notion.
Most discussed
feat: table-aware find_replace (two-pass) + new update_table_row tool
Two related additions that make find_replace work on Notion table content, which it currently
cannot reach, plus a new surgical tool for table cell edits.
Problem 1: find_replace silently fails on table cell content
find_replace uses notion.pages.retrieveMarkdown() for its preflight match count.
Notion's markdown API does not expose table cell content — table blocks are omitted from its
output entirely. Any find string that lives inside a table cell returns match_count: 0
and
Read the thread · 2026-06-19 · open · outside contributor · 4 comments
fix: null guards for countOccurrences, findSectionRange, markdownToBlocks, markdownToEnhanced, findToggle
Five related crash sites where undefined args cause unhandled TypeError exceptions. All five were
hit in production with real Notion pages. The fixes are minimal one-liners; no behaviour changes for
well-formed calls.
Crashes fixed
1. countOccurrences — text or find is undefined
find_replace on a page containing a divider block causes the Notion markdown API to return
undefined for current.markdown. countOccurrences(undefined, find) then throws
`TypeError: Cannot rea
Read the thread · 2026-06-19 · closed · outside contributor · 2 comments
easy-notion-mcp-http exits immediately when launched via npx/bunx bin
Describe the bug
easy-notion-mcp-http exits immediately when launched via the published package bin (bunx -p easy-notion-mcp easy-notion-mcp-http) instead of starting the HTTP server.
Expected: the HTTP server starts and keeps running, as described in the README for npx easy-notion-mcp-http.
Actual: the process exits
Read the thread · 2026-04-28 · closed · external user · 6 comments
find_replace times out on multi-paragraph swaps over ~63KB pages
What happens
find_replace calls that swap multi-paragraph text on a page past ~63KB time out. Single-line edits on the same page succeed.
Where we hit it
Kit's Scripts page in Notion — a long single page with many script toggles. As scripts accumulate, page size grows; once it crosses the threshold, multi-paragraph find_replace operations time out reliably.
Workaround
Splitting multi-paragraph swaps into per-line operations. Functional but slow and fragile.
Looking for
A f
Read the thread · 2026-04-28 · open · external user · 5 comments
Add toggle-as-first-class-anchor family of tools
Context
Our use case (Kit's TikTok scriptwriting workflow) treats Notion toggles on a single Scripts page as the primary script container — each script is a toggle, and the page contains the full set. This makes the toggle the natural unit of read/edit/search, but the current API treats blocks generically, requiring multi-step navigation to operate on a named toggle.
The result: simple operations ("read this script", "rewrite that script") require fetching the whole page, locating the t
Read the thread · 2026-04-28 · closed · external user · 3 comments
Add cli + skill to avoid context bloat of mcp
What problem does this solve?
Currently the MCP adds more weight to the context. if i want to add multiple notion integrations--like read-only access, read and write access, and maybe personal read-only access with multiple API keys--it would be better to have a skill handle for that.
Proposed solution
Exposing the CLI plus a lightweight skill would work wonders.
Alternatives considered
Would you like to submit a PR for this?
Yes
Read the thread · 2026-04-27 · closed · external user · 3 comments
Callout syntax: inline content renders as quote block, not callout
Description
The tool description for notion:create_page documents callout syntax as > [!NOTE] text on same line. When used this way, Notion renders the block as a plain quote block (grey left border), not a callout block (coloured background with emoji icon).
Steps to reproduce
notion:create_page(
title: "Callout Test",
markdown: "> [!NOTE] This is a note"
)
Expected
A Notion callout block with coloured background and emoji icon (💡).
Actual
A plain quote block with gre
Read the thread · 2026-04-02 · closed · external user · 4 comments
503 Service Unavailable even though it's running stio
Trying to connect using Dify, set URL to http://localhost:3333/mcp and 503s instantly. Running in Terminal successfully:
easy-notion-mcp server running on stdio
Read the thread · 2026-03-27 · closed · external user · 4 comments
Most recent
discussion: should database tools accept page_id as an alias for database_id?
Observed behaviour
Claude (and possibly other LLM clients) consistently sends page_id when calling database-related
tools, even when the tool schema specifies database_id. Affected tools:
get_databasequery_databaseadd_database_entryadd_database_entriesupdate_data_source
When page_id is sent instead of database_id, the tool either crashes or silently fails
depending on where it dereferences the arg.
Root cause
Claude's mental model treats all Notion ob
Read the thread · 2026-06-19 · closed · outside contributor · 2 comments
Feature request: Support for Notion mention-page blocks (@page mentions)
Hi! Found out that Easy Notion MCP does not handle writing mention-page links properly. I find them really useful when there are icons in my pages. I use icons as quick visual references for context. I asked Claude to write the full spec for this feature request. Hope this helps!
Add support for writing inline page mention blocks — the @page mention chip that Notion displays as a linked inline reference to another page.
Current behaviour
When writing page content via append_content
Read the thread · 2026-06-01 · closed · external user · 2 comments
Ability to read transcript summary blocks
What problem does this solve?
I want my agent to be able to read the Notion AI meeting summary so that I can pull relevant details and process them how I wish.
Proposed solution
easy-notion-mcp would present this block type as a ready only block
Alternatives considered
The official remote Notion MCP can do this, however, I don't want to use that because the OAuth token dies so quickly it's useless in a headless agent workflow.
Would you like to submit a PR for this?
I can see what
Read the thread · 2026-05-06 · closed · external user · 0 comments
Add targeted read tools to mirror existing targeted write tools
Summary
easy-notion-mcp has targeted write tools (update_section, update_block) but no matching targeted read tools. To read a single section or block, agents must call read_page and pull the entire page into context, even when only one section is needed.
Use case
Publishing one script from a multi-script page. Our setup has a single "Scripts" page in Notion with many script toggles (one per video). When an agent needs to publish just one script — e.g., serializing it to a
Read the thread · 2026-05-05 · closed · external user · 2 comments
Ergonomic polish: match counts, heading-preserving section updates, dry-run mode
Context
Three smaller improvements that meaningfully reduce friction in agent-driven workflows without rethinking the API.
Proposed changes
find_replacereturns match count — currently the response doesn't say how many matches were swapped. Important for agents that want to verify "exactly N edits happened" before declaring a step complete. Also helps debug "swapped too much" cases._Note: v0.5.0 (2026-04-23) reworked
query_database's response shape into `{ results, war
Read the thread · 2026-04-28 · closed · external user · 1 comment
update-a-block fails to update paragraph rich text — schema validation error
When calling update-a-block to modify the rich text content of a paragraph block, the API returns a 400 validation error regardless of how the type parameter is structured.
What I tried:
{"type": {"paragraph": {"rich_text": [...]}}}{"type": {"type": "paragraph", "paragraph": {"rich_text": [...]}}}{"type": "paragraph"}
All return: body.paragraph should be defined, instead was undefined. body.type should be not present.
The issue: The tool maps the type parameter to `b
Read the thread · 2026-04-18 · closed · external user · 2 comments
list_databases returns id field unusable with get_database — use url field instead
Description
The id field returned by notion:list_databases cannot be passed directly to notion:get_database — it returns a "could not find database" error. The correct ID to use is extracted from the url field.
Example
list_databases response:
{
"id": "2ca59ca9-71b3-81bc-9c80-000b801ab640", ← fails
"url": "https://www.notion.so/2ca59ca971b38194b072cfd5b3df0bf2"
}
get_database("2ca59ca9-71b3-81bc-9c80-000b801ab640")
→ "Could not find database"
get_database("2ca59ca971b38194b072
[Read the thread](https://github.com/Grey-Iris/easy-notion-mcp/issues/15) · 2026-04-02 · closed · external user · 1 comment
The remaining reports are on [the project's issue tracker](https://github.com/Grey-Iris/easy-notion-mcp/issues).