Skip to content

notion-fetch does not expose block IDs — no way to build anchor links to a section #26

Description

@belaytzev

Problem

There is no way to get a block ID out of the remote MCP, so an agent cannot build an anchor link to a specific section of a page. Only whole-page links are possible.

Notion supports block links natively (https://www.notion.so/<page-id>#<block-id-without-dashes>, right-click → Copy link to block). None of the MCP tools expose the IDs needed to construct one.

Repro

All three surfaces on mcp.notion.com, as of 2026-07-31:

Surface Result
notion-fetch enhanced Markdown, zero block identifiers — a page with six ## headings comes back with no way to address any of them
notion-search scoped to one page (page_url) results[].id is the page ID, never the matched block
notion://docs/enhanced-markdown-spec no id/url attribute for ordinary blocks; attribute lists support only color and toggle

Use case

Alert rules linking to the matching runbook section. Each alert definition wants a URL pointing at its own ## AlertName heading in a shared runbook page. With page-level links only, whoever gets paged lands at the top of a long document and scrolls.

These URLs are hand-copied from the UI and go stale on every restructure — the one thing an agent should be able to regenerate, it can't.

Proposal

Add block IDs to notion-fetch output using the attribute-list syntax the format already has:

## AlertName {block_id="3221ca43-55c3-80cf-84cc-f204f1af3c1d"}

Opt-in via include_block_ids: true keeps the default token cost unchanged.

This is consistent with block-scoped URLs the format already emits: <synced_block url="{{URL}}"> in the spec, and discussion:// markers under include_discussions: true.

Alternative: a tool returning block IDs for a page, equivalent to GET /v1/blocks/{block_id}/children. The local server already exposes this as get-block-children; the remote MCP has no equivalent.

Related

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions