Skip to main content
Glama

update_block

Update a single Notion block by ID while preserving its identity and type. Use for surgical edits like fixing headings or toggling checkboxes.

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 — 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 — children stay untouched. Non-updatable types (divider, table, image, bookmark, etc.) accept only archived: true to delete the block.

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

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
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.
checkedNoto_do only: explicit check-state override (otherwise inferred from `- [x]` / `- [ ]`).
archivedNoSet true to delete the block (sends in_trash: true).
dry_runNoPreview validation and planned effect without mutating Notion. Default false.
Behavior5/5

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

The description discloses key behavioral traits: preserves block identity (deep-link anchors, inline-comment threads), type lock-in, list of updatable types, container block behavior (children untouched), and non-updatable types only accept archived. Since no annotations are provided, the description fully carries the burden of transparency and does so thoroughly.

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 description is appropriately sized for the tool's complexity. It is well-structured: first the main purpose, then usage guidelines, then constraints, then type lists, then edge cases. Every sentence adds value without redundancy or fluff.

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?

Given the complexity (5 parameters, update operation, many block types, constraints), the description is quite complete. It covers use cases, type restrictions, container behavior, deletion, and validation. While it doesn't explicitly describe the return value, the absence of an output schema makes this less critical. The description could mention that the updated block object is returned, but overall it is sufficient.

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 100% with all parameters described, so baseline is 3. The description adds significant value beyond schema: it explains that markdown must parse to same block type, clarifies the relationship between checked and markdown for to_do blocks, specifies that exactly one of markdown or archived is required, and explains dry_run behavior. This operational context earns a 4.

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 clearly states 'Update a single block in place by ID' and distinguishes it from sibling tools like append_content and replace_content by specifying surgical edits. It provides concrete examples (fixing heading, toggling checkbox), making the purpose unambiguous.

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?

The description explicitly states when to use this tool (surgical edits) and when to use alternatives ('For multi-block edits, use append_content, replace_content, or update_section'). It also clarifies that block type cannot be changed and mentions how to delete via archived. This provides clear guidance on tool selection.

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

Install Server

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