Skip to main content
Glama
PedroRF-tension

ask-user-rich

Ask the user a structured interview

ask_user_rich
Read-only

Collect answers to many structured questions at once in a rich browser form, with recommendations, ranking, previews, and deferrals, returning each answer's status.

Instructions

Ask the user any number of questions at once in a rich browser form and wait for their answers. Use it instead of AskUserQuestion for grilling rounds, design reviews and any decision set with more than 4 questions or 4 options, long headers, markdown context, code/layout previews, or recommendations you want to argue for.

Each question has an id, a header, a markdown body, options (id, label, markdown description, optional markdown/code preview), an optional recommended option id plus rationale, multiSelect, allowOther (free text, default true) and dependsOn (earlier question ids, display only). Set kind: "rank" to have the user order every option by priority instead of picking (returns ranked; recommended is then the full recommended order). The user can also defer a question, mark it as needing more info, and leave notes.

Blocks until the user submits (it may take minutes; in Claude Code a long call continues as a background task). Returns summary (one line per question) plus, for each question, its status (answered | deferred | needs-info | unanswered), selected option ids and labels, ranked ids and labels (rank questions), other text, notes, and whether the recommendation was followed. Act on deferred and needs-info items instead of assuming answers. If the browser cannot be opened, returns the URL and a sessionId: show the URL, then call await_user_answers.

Ids (question and option) are ASCII only, [A-Za-z0-9_.:-]: secao-tabs, never seção-tabs. recommended takes option ids, not labels. dependsOn may only name earlier questions.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
introNoMarkdown introduction: the context the user needs before answering.
titleYesInterview title, shown as the page heading.
deliveryNobrowser (default): open the form in the user's browser and wait for the submit. link: do not open anything; return the URL immediately so you can show it, then call await_user_answers. elicitation: small flat interviews only, asked through the client's native form dialog; no notes, defer or previews. Falls back to browser when the client cannot elicit.browser
questionsYesAll questions, shown one per screen in this order (a stepper ending in a review screen). No upper bound.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.3.0

TDQS

A4.8/5.0
Behavior5/5

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

Annotations only cover readOnlyHint/openWorldHint, but the description far exceeds that: it discloses that the call blocks for potentially minutes, that Claude Code continues it as a background task, the delivery modes, the fallback elicitation behavior, and that deferred/needs-info statuses must be acted on rather than assumed answered.

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?

Dense but front-loaded: purpose, routing, and per-question model come first, then return shape and id rules. The length is justified by the compound nested schema and absence of an output schema, though some schema details (allowOther default, preview) are echoed rather than newly informative.

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 complex nested interview tool with no output schema, the description fully documents the return contract (summary, per-question status, selected/ranked ids, other text, notes, recommendation-followed) plus the failure path. Nothing needed to call or interpret 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?

Schema coverage is 100%, so 3 is the baseline, but the description adds genuine meaning beyond the schema: ASCII-only id rules with a concrete example, 'recommended takes option ids, not labels', and 'dependsOn may only name earlier questions' (display-only, no hiding). It adds the rank/quota semantics too, though it largely restates some schema wording.

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 opening sentence names a specific verb (ask), resource (a structured interview / questions in a rich browser form), and behavior (wait for answers). It explicitly contrasts itself with the sibling-style alternative AskUserQuestion and lists the conditions that select it, so an agent can route 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 Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives explicit when-to-use criteria ('more than 4 questions or 4 options, long headers, markdown context, code/layout previews, or recommendations you want to argue for') and names the alternative it replaces. It also handles the degraded path: if the browser cannot open, show the URL then call await_user_answers — a named sibling.

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

Deploy Server

Other Tools