Skip to main content
Glama

Set a step’s choices (branching)

set_choices
Destructive

Turns a tooltip or card of a guided demo into a fork: 2–4 buttons ("I'm in finance" → step X, "Book a call" → a link, "Skip" → end). A card shows them instead of its single button; a tooltip shows them as buttons (clicking its spot still follows the default path). Each choice goes to a step id, the end of the demo, or a URL; leave goTo out to link it later (viewers then continue on the default path). Pass an empty list to remove the choices. To make a path skip ahead or rejoin, set "next" on its last step with update_step, e.g. { "next": { "type": "step", "stepId": "st_…" } } or { "next": { "type": "end" } }. The result lists the paths and anything to fix (unreachable steps, paths that never end).

Requires: demos:read, demos:write.

Input Schema

NameRequiredDescriptionDefault
demoIdYesDemo id (from list_demos), e.g. "d_Ab12Cd34Ef56Gh78".
stepIdYesThe tooltip or card that asks the question.
choicesYes

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 it discloses required scopes (demos:read, demos:write), that an empty list deletes existing choices (consistent with destructiveHint=true), how rendering differs between cards and tooltips, and that the response reports resulting paths plus problems such as unreachable steps or paths that never end. No contradiction with readOnlyHint=false or openWorldHint=false.

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 fork concept lands in the first sentence with examples, then removal, then the update_step alternative, then the result shape — a sensible front-loaded order. Parentheticals about card vs. tooltip rendering are dense but each carries real behavioral information.

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 three-parameter mutation with no output schema, the description covers what the tool does, the meaning of the ambiguous `goTo`, the deletion case, the relevant sibling call, the permissions needed, and what comes back in the result. Nothing an agent needs before calling 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?

Schema coverage is 67%, and the description goes beyond the schema on the key semantic point: an omitted `goTo` means the choice is unlinked and viewers fall through to the default path, which no schema field states. It does not add anything for `label` or the choice `id` beyond what the schema already documents, which keeps it below the top mark.

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 names a specific verb and resource — turning a tooltip or card step into a branching fork with 2–4 choice buttons — and concretely illustrates each choice target (step, end, URL). It is clearly distinguishable from update_step, which is instead invoked for the `next` pointer that rejoins or skips paths.

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 the operational cases directly: omit `goTo` to link a choice later, pass an empty list to remove choices, and use update_step with `next` when the goal is to skip ahead or rejoin rather than fork. That routes the agent to the right sibling for the adjacent task, though it never states a condition under which this tool should not be used at all.

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.