Skip to main content
Glama

notion_read_page_markdown

Read a Notion page's content directly as Notion-flavored markdown. Returns complete markdown with special tags for databases, files, and embeds using a direct API endpoint.

Instructions

Read a Notion page's content as native Notion-flavored markdown.

Uses the direct markdown API endpoint — faster than block-by-block fetching and returns Notion's own markdown representation including special tags for databases, files, and embeds.

For block-level editing (update/delete individual blocks), use notion_read_page with include_block_ids=True instead.

page_id: Notion page ID. markdown_version: "v2" returns Notion-flavored Markdown (a preview syntax); default is the stable syntax.

Input Schema

NameRequiredDescriptionDefault
page_idYes
markdown_versionNo

Output Schema

NameRequiredDescriptionDefault
resultYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changedv0.2.2
    • addedInput schema / properties / markdown_version
      Added value: +{
      +  "default": "",
      +  "title": "Markdown Version",
      +  "type": "string"
      +}
  2. First observedv0.1.0

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the burden, and it does disclose the performance trait (direct markdown endpoint vs block-by-block), the content of the return (special tags for databases, files, embeds), and the preview status of v2 syntax. It omits permission/auth requirements and any size or truncation limits for large pages, which keeps it short of a 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Purpose and performance rationale are front-loaded, the sibling routing comes next, parameter notes last. Every sentence adds information; nothing restates the title or the schema.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists so return values need not be explained, and the description covers the format, the alternative tool, and versioning. For a read-only two-parameter tool the remaining gap is minor: nothing about access requirements or behavior on very large pages.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so the description must compensate; it does for markdown_version by explaining that "v2" yields the preview Notion-flavored syntax and the default is the stable syntax, which is real meaning beyond the bare enum-less string field. page_id gets only a one-line gloss, leaving the accepted ID format (UUID vs URL) unstated.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource (read a page), plus the exact output representation (native Notion-flavored markdown). It explicitly positions itself against the sibling notion_read_page, so an agent can separate them without opening either schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives an explicit alternative with a condition: use notion_read_page with include_block_ids=True for block-level editing. It also states when to prefer this tool (faster than block-by-block fetching), so both the use case and the exclusion are covered.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.