Skip to main content
Glama

ask_user

Pose a visual multiple-choice question by placing clickable cards on a canvas, then wait for the user to click one or time out. Use it to choose layouts, copy options, or which bug to fix first.

Instructions

Ask the human a visual question: places clickable choice cards on the canvas and BLOCKS until they click one (or the timeout passes). Use it for decisions that are easier to make by looking: layouts, copy options, which bug to fix first. Returns {answered, choice:{id,label}} or {answered:false, reason}.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
detailNoOptional context shown under the question.
choicesYes
questionYes
timeoutSecondsNoHow long to wait, default 180, max 900.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations, the description carries the full behavioral burden and does well on the most non-obvious trait: it BLOCKS until a click or timeout, and it discloses the return shape including the {answered:false, reason} unanswerable case. It omits failure/error semantics and any timeout-visibility caveats, but the blocking disclosure is the crucial one and it is front-loaded.

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?

Three dense sentences with zero waste; the blocking behavior and return format are front-loaded where an agent needs them before committing to a call. No filler or restatement of the name.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a blocking interactive tool with no annotations and no output schema, the description supplies the essentials: what happens on the canvas, that the call blocks, and the exact return shape. It could say more about timeout expiry consequences, but nothing critical for correct invocation is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 50% (question and the choices container lack descriptions). The description adds conceptual meaning (cards are clickable, choices yield {id,label}) but does not document the choices min/max constraints, the id/label contract, or the timeout default beyond what the schema already states. Baseline 3 is appropriate at partial coverage.

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+resource ('Ask the human a visual question') and describes the mechanism (clickable choice cards on the canvas). It is clearly distinguishable from canvas-manipulation siblings like place_widget or read_canvas, since it is a blocking human-in-the-loop prompt rather than a widget operation.

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?

Explicitly gives when-to-use context: 'decisions that are easier to make by looking: layouts, copy options, which bug to fix first.' This is clear situational guidance, but it does not name alternatives or state when NOT to use it (e.g., when a plain text question would suffice).

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