Skip to main content
Glama

Update Template Block

meisa_update_template_block
Idempotent

Edit a single block in a template without touching the rest of the email. Pass the block_id from meisa_get_template_blocks (position-based, e.g. blk-0), plus the content and/or settings to change. settings are merged shallowly over the block's existing settings, so you only need to send the keys you want to change (e.g. {"color": "#ff0000"} on a heading). The block's HTML is re-serialized and the template's plain-text body is regenerated automatically. Block ids are position-based (blk-0, blk-1, ...) and stable while order is unchanged; re-read after any insert/delete/move.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
contentNoNew content for the block. Meaning depends on block type: the text/heading/quote string, newline-separated items for a list, double-newline-separated paragraphs for callout/conditional, or raw HTML for an html block. Image/button/divider/spacer carry their data in settings, not content.
block_idYesThe id of the block to update, from meisa_get_template_blocks (position-based, e.g. blk-0).
settingsNoBlock settings to merge in (only the keys you pass are changed). Examples: heading {"level": "h1", "align": "center", "color": "#111"}; button {"text": "Buy", "link": "https://...", "backgroundColor": "#1789FC"}; image {"src": "https://...", "alt": "...", "width": "80%", "link": "https://..."}.
template_idYesThe UUID of the email template to edit.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.7/5.0
Behavior5/5

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

Beyond the annotations (readOnlyHint=false, idempotentHint=true, destructiveHint=false), the description discloses non-obvious behavior: settings are merged shallowly so only passed keys change, the block HTML is re-serialized, and the template plain-text body is regenerated as a side effect. It also warns that ids are position-based and only stable while order is unchanged. This is exactly the kind of consequence disclosure that annotations cannot convey.

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?

Four densely packed sentences, front-loaded with purpose and behavior, and each one earns its place: the acquisition route, the merge rule, the side effects, and the id-stability caveat. No restatement of the tool name or filler.

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 mutating block-edit tool with no output schema, the description covers what is needed to call it correctly: required inputs, how to obtain the id, merge behavior, regeneration side effects, and id invalidation. Nothing a caller would need before invoking it is missing.

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?

With schema coverage at 100%, the schema already carries the per-parameter detail, so the baseline is 3. The description adds real value on top by explaining the merge semantics of settings (only passed keys change) and giving a concrete example payload, which clarifies intended usage of the nested object beyond the schema text.

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+resource and an explicit scope ('Edit a single block in a template without touching the rest of the email'), which cleanly separates it from meisa_update_template, meisa_insert_template_block, meisa_delete_template_block and meisa_move_template_block. It also names the source of the required identifier, meisa_get_template_blocks, so the agent knows how to obtain a valid input.

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?

It states where the block_id comes from and gives a clear operational rule ('re-read after any insert/delete/move'), which is genuine when-to-use guidance for a position-based id scheme. It stops short of an explicit exclusion such as 'to change template-level metadata use meisa_update_template instead', leaving that routing to inference.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources