Skip to main content
Glama

update_toggle

Replace the body of a Notion toggle by title using markdown. The toggle container stays, while existing child blocks are deleted and replaced with native Notion blocks converted from your markdown.

Instructions

DESTRUCTIVE, no rollback: this tool preserves the matched toggle container block ID, then deletes its body children and appends replacement body blocks. Child block IDs inside the body change, and if the write fails mid-call the toggle can be left partially or fully emptied. For irreplaceable content, duplicate_page the target first so you have a restore point.

Update the body of one toggle by title from a page. Searches recursively and matches plain toggle blocks plus toggleable heading_1, heading_2, and heading_3 blocks using case-insensitive trimmed text. The markdown is replacement body content, not a wrapper that renames the toggle, and the server converts it into native Notion blocks, not flat/plain text. The server automatically handles Notion API limits: batches more than 100 child blocks, splits rich text over 2000 characters, and writes deeply nested blocks in additional passes, so callers can send a full multi-section toggle tree in one call with no need to pre-chunk or pre-split. If the markdown parses as one matching top-level toggle or toggleable heading wrapper, that wrapper is ignored and only its children are used as the replacement body. For supported markdown syntax, read resource easy-notion://docs/markdown. Page mentions: @Title. Returns: { success: true, block_id, type, deleted, appended }, where deleted and appended are counts, plus deleted_blocks for the deleted top-level body blocks when present and block_map for the top-level appended body blocks when present. A dry run instead returns { success: true, dry_run: true, operation, page_id, title, block_id, type, deleted, appended, would_delete_block_ids, append_parent_id }.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
titleYesToggle title to find (case-insensitive)
dry_runNoPreview validation and planned effect without mutating Notion. Default false.
page_idYesPage ID
markdownYesReplacement markdown for the toggle body
return_block_mapNoInclude block_map in the response. Default true. Set false to skip the per-block id list when you do not plan to edit individual blocks.
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

A4.7/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 burden of behavioral disclosure, and it excels. It openly states the destructive nature, no rollback, that child block IDs change, and the risk of partial emptying on mid-call failure. It explains server-side handling of API limits (batching, splitting, nested passes) and clarifies that markdown becomes native blocks, not plain text. It also details the dry-run behavior and return structure. This is far beyond minimal transparency.

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 lengthy but every sentence earns its place given the tool's complexity. It opens with the critical destructive warning, then states the core purpose, then details behavior, limits, and response. It is well-organized, flows logically, and avoids redundancy. The density of information is appropriate for a tool with this many nuances, and there is no fluff.

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?

Given the tool's destructive nature, API limit handling, markdown-to-native-block conversion, and multiple return scenarios (including dry run), the description covers all essential aspects. It explains what changes, how failures affect state, how to create a restore point, what the server does automatically, and the exact response shape. No output schema exists, so the description's detailed return documentation is crucial, and it provides it comprehensively.

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?

The input schema provides complete descriptions for all six parameters (coverage 100%), so the baseline is 3. The description adds extra meaning primarily for the 'markdown' parameter—clarifying it is replacement body content, not a wrapper, and that the server converts it to native Notion blocks. It also clarifies the effect of 'collapse_soft_wraps' under specific scenarios. This goes beyond the schema's short descriptions and justifies 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 states a specific verb and resource: 'Update the body of one toggle by title from a page.' It clearly delineates scope by specifying it matches plain toggle blocks and toggleable heading_1/2/3 blocks, and distinguishes itself from siblings like replace_content by clarifying it updates a toggle's body, not renaming it or acting as a wrapper. The wording is unambiguous and directly relatable to the tool's name.

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

Usage Guidelines4/5

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

While the description does not explicitly name alternative tools like replace_content or update_section, it provides rich context on when to use it: it targets a specific toggle by title, handles nested structures, and automates API limit batching. The warning about destructiveness and the recommendation to duplicate_page for irreplaceable content implicitly conveys when caution is needed. It lacks explicit 'when not to use' exclusions, but the context is strong enough for an agent to infer appropriate usage.

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