Skip to main content
Glama

update_block

Update a single Notion block by ID preserving its identity and type. Use for surgical edits: fix a heading, toggle a checkbox, or rewrite one paragraph.

Instructions

Update a single block in place by ID. Preserves the block's identity (deep-link anchors and inline-comment threads attached to the block survive the edit). Use this for surgical edits: fixing a heading, toggling a checkbox, rewriting one paragraph. For multi-block edits, use append_content, replace_content, or update_section.

Type lock-in: the markdown must parse to the same block type as the existing block. update_block cannot change a block's type, because Notion's API forbids it. To change a block's type, use replace_content or delete + append.

Updatable types: paragraph, heading_1, heading_2, heading_3, toggle, bulleted_list_item, numbered_list_item, quote, callout, to_do, code, equation. Container blocks (toggle, callout) update first-level content only, and children stay untouched. Non-updatable types (divider, table, image, bookmark, etc.) accept only archived: true to delete the block. Page mentions: @Title.

To delete a block, pass archived: true instead of markdown. Exactly one of markdown or archived is required.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
checkedNoto_do only: explicit check-state override (otherwise inferred from `- [x]` / `- [ ]`).
dry_runNoPreview validation and planned effect without mutating Notion. Default false.
archivedNoSet true to delete the block (sends in_trash: true).
block_idYesBlock ID to update
markdownNoNew content for the block. Must parse to a single block of the same type as the existing block. For to_do blocks, `- [x]` / `- [ ]` syntax sets the checked state.
collapse_soft_wrapsNoCollapse single line breaks to spaces per CommonMark before writing. Default false (single line breaks are kept as they are today). Recommended when uploading hard-wrapped prose files (e.g. repo markdown wrapped at 78 columns). Do not use when re-uploading content read from Notion, or intentional line breaks will be lost. Blank lines and code blocks are unaffected. Note: replace_content renders an in-paragraph line break as a separate paragraph regardless of this option.
Install Server

TDQS

A5/5.0
Behavior5/5

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

With no annotations provided, the description carries the full disclosure burden and does so extensively: it reveals type lock-in, identity preservation, container-block depth limits, non-updatable type behavior, and deletion via archived. These are non-obvious behavioral traits an agent could not infer from the schema or tool name.

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?

The paragraphs are dense but each sentence adds a distinct constraint or usage rule; there is no filler. The core purpose is front-loaded, followed by when to use it, type restrictions, edge cases for containers and non-updatable types, and finally deletion semantics.

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 complex tool with six parameters and no output schema, the description covers the full decision space: valid types, invalid types, deletion, container behavior, and alternatives. No necessary calling condition or constraint appears to be missing, so an agent has enough information to invoke it correctly and predict side effects.

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 adds critical relational semantics: exactly one of markdown or archived is required, markdown must parse to a single block of the same type, and archived true means deletion. It also clarifies the checked parameter's relationship to to_do markdown syntax, going beyond individual field descriptions.

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?

The description opens with a specific verb and resource: 'Update a single block in place by ID,' and differentiates itself from multi-block tools by labeling these as surgical edits. It also clarifies what identity preservation means with concrete examples (deep-link anchors and inline-comment threads), leaving no ambiguity about scope.

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?

It explicitly states when to use the tool ('fixing a heading, toggling a checkbox, rewriting one paragraph') and names alternatives for multi-block edits (append_content, replace_content, update_section). It also gives exclusion criteria for type changes, directing to replace_content or delete + append, so an agent can route accurately.

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

Other Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Grey-Iris/easy-notion-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server