Skip to main content
Glama

Edit a step

update_step
DestructiveIdempotent

Changes fields of one step of a guided demo, e.g. { "title": "…", "body": "…" }, a tooltip’s "spot" or "place", a card’s "cta" and "ctaUrl", "next" (where the default path goes after it). Fields you leave out stay as they are; null removes an optional field: { "next": null } goes back to the following step, { "choices": null } removes the choices, and the same for "notes", "camera", "cursor" and "spotlight" ("ctaUrl": null just removes the link). id and kind can’t change. Text can use {{variables}} (see get_demo). Saved to the draft (revision history keeps the old version).

Requires: demos:read, demos:write.

Input Schema

NameRequiredDescriptionDefault
demoIdYesDemo id (from list_demos), e.g. "d_Ab12Cd34Ef56Gh78".
stepIdYesStep id (get_demo → content.steps[].id).
changesYesFields to set on the step.

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?

Goes well beyond the annotations: it discloses merge semantics for omitted fields, precise null-removal behavior per field (including the 'ctaUrl': null nuance), immutability of `id` and `kind`, variable interpolation in text, and that writes land in the draft with revision history preserving the old version. It also names the required scopes (demos:read, demos:write), which annotations do not carry. The removal semantics are consistent with destructiveHint=true, so there is no contradiction.

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 verb and resource, and every clause carries real information (patch semantics, null behavior, immutable fields, scopes). It is a dense run-on paragraph with many inline examples, which costs some scannability, but nothing is wasted.

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 mutation tool with a nested free-form object and no output schema, the description covers everything an agent needs to call it correctly: what is mergeable, what null does, what cannot change, where the write lands, and what permissions are required. Return values are not required here since no output schema exists.

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 top-level schema coverage is 100%, the critical `changes` parameter is a free-form object with additionalProperties: {}, so the schema provides essentially no structure for it. The description compensates by enumerating editable field families (title, body, spot/place, cta/ctaUrl, next, choices, notes, camera, cursor, spotlight) and defining null semantics per field, which the schema cannot express.

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 and resource — changing fields of one step of a guided demo — and scopes it to a single existing step, which cleanly separates it from add_step, update_scene, move_step, and set_choices. An agent can identify the target entity without opening the schema.

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?

The description makes clear this is a patch-style edit of an existing step ('Fields you leave out stay as they are') and that null is the removal path, which implicitly routes removal of choices/notes/camera/etc. here rather than to add/delete siblings. It never explicitly names an alternative (e.g. when to use set_choices instead) or states a prerequisite beyond the scope requirement, so it stops short of full routing guidance.

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.