Skip to main content
Glama

Update slide

update_slide
Destructive

Replace one stored slide with a complete validated SlideElement tree. Call get_slide first, copy its element, make the requested edits in that JSON, and send the whole result as slide. Do not invent roles, omit untouched branches, or change the root uid. Settings, free image/video/text elements, and existing item on-screen text may change. Existing title/list containers may be removed only when the user explicitly asks to convert an existing slide. Do not create a title or list slide and then remove its script-bound container to simulate a media-only slide; create it with add_slide sectionType blank instead. Adding or reordering script-bound containers, or adding, removing or reordering their items, is rejected because it cannot be mirrored safely into the narration script. For a video asset without an audio track, omit settings.audio entirely; do not add muted audio settings or re-encode the asset with a silent audio track. Element array order is the z-order of image, video and free-text elements. The server validates the complete tree and replaces it atomically. Use dryRun: true to validate and preview the normalized result before asking for approval. Concurrent writes use last-write-wins semantics.

Input Schema

NameRequiredDescriptionDefault
slideYes
dryRunNoWhen true, validate and normalize without writing anything.
projectUidYes

Output Schema

NameRequiredDescriptionDefault
elementYes
slideUidYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.8/5.0
Behavior5/5

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

Annotations only declare destructiveHint=true, idempotentHint=false, openWorldHint=false; the description goes far beyond by disclosing atomic whole-tree validation, last-write-wins concurrency semantics, which mutations are rejected (reordering/adding script-bound containers or their items), what is freely editable (settings, free image/video/text, existing item text), and z-order semantics of the element array. That is exactly the failure-mode detail a destructive mutation tool needs.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the core action and validation contract, then progresses to edit rules and narrow edge cases. It is long and a few clauses (muted-audio re-encoding, silent-audio re-encode warning) are niche, but each sentence encodes a distinct rejected mutation rather than restating structured data.

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 destructive, whole-tree replacement tool with a 10-branch recursive schema, the description supplies the missing behavioral layer: atomicity, conflict semantics, validation via dryRun, and the script-mirroring constraint that explains why certain structural edits fail. With an output schema present, return values need no explanation, so nothing essential 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 only 33% schema description coverage, the description carries most of the burden for `slide` and does so well: preserve the root uid, don't invent roles, don't omit untouched branches, element order equals z-order, and leave settings.audio off for silent video. It also extends `dryRun` beyond the schema's one-liner by framing it as validate-and-preview before approval. `projectUid` is never mentioned, which is the only gap.

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 verb ("Replace") and resource ("one stored slide") plus the exact shape expected ("a complete validated SlideElement tree"). It also names the sibling it routes to/from (get_slide first, add_slide for media-only slides), so an agent can distinguish it from add_slide, get_slide, and reuse_slide without opening schemas.

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 an explicit workflow (call get_slide, copy element, edit, send whole result) and explicit when-not rules for several tempting-but-wrong paths: don't strip title/list containers, don't simulate a media-only slide by deleting a script-bound container, use add_slide with sectionType blank instead. Also prescribes dryRun: true for preview before approval.

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