Skip to main content
Glama
awkoy

notion-mcp-server

by awkoy

Notion Read

notion_read
Read-onlyIdempotent

Run any read-only Notion operation by name—search pages, fetch pages, query databases, and more—without modifying data.

Instructions

Run one Notion read operation by name. Nothing is modified.

Call: { operation, payload } — payload carries that operation's fields. Common: search_pages { query }, get_page { page_id }, get_page_markdown { page_id }, query_database { database_id, where? }, get_block_children { block_id }.

Responses are slimmed; pass verbose:true in payload for the raw Notion object. Every id field (page_id, block_id, database_id, view_id, …) also accepts a Notion URL, as copied from Share → Copy link. A block link's #fragment is used for block_id fields and a database link's ?v= for view_id fields.

If the payload is malformed, the error response includes the schema + a working example so you can correct and retry in one round-trip. Call notion_describe(operation) ahead of time only for complex shapes (query_database filters).

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
payloadYesOperation parameters. Pass either single-op fields directly, or { items: [...], atomic?, idempotency_key?, concurrency? } for batch.
operationYesThe read operation to run. This list is the complete menu of read operations enabled on this server; notion_describe(operation) returns any operation's full schema.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv3.0.1

TDQS

A5/5.0
Behavior5/5

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

Annotations already indicate read-only, idempotent, and non-destructive behavior; the description adds valuable behavioral details: responses are slimmed, verbose:true returns raw Notion objects, id fields accept Notion URLs with fragment/v parameters, and malformed payloads return a schema plus working example for one-round-trip retry.

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?

Front-loaded with the core purpose, then the call shape, common operations, and edge-case behavior. Every sentence contributes actionable detail; no fluff or repetition of schema contents.

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

Completeness5/5

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

For a multi-operation read dispatcher with many enum values and no output schema, the description covers operation selection, payload examples, response verbosity, URL input flexibility, error recovery, and when to consult notion_describe. An agent has everything needed to call and recover from errors.

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

Parameters5/5

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

Although schema coverage is 100%, the description enriches parameter meaning substantially: it shows the { operation, payload } dispatch shape, gives per-operation example payloads, explains the verbose flag, and clarifies URL flexibility for every id field. This goes well beyond enum/property names in the schema.

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 action and scope: 'Run one Notion read operation by name.' Immediately clarifies that 'Nothing is modified,' and lists common operations, making it distinguishable from notion_describe (which only returns schemas) and notion_write (which modifies).

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 explicit routing guidance: 'Call notion_describe(operation) ahead of time only for complex shapes (query_database filters).' It also explains the call shape and provides concrete examples for common operations, so the agent knows how to select and invoke this tool.

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

Deploy Server

Other Tools