Skip to main content
Glama

Ask the User a Question

request_input
Idempotent

Register a question only the user can answer, and keep your place on the task while it is open. Use it ONLY for what is irreversible (money, publishing outward, production, anything legal) or a real fork with no reasonable default — never for 'may I continue?'. Give options whenever the answer is a choice: a question with alternatives gets read, a yes/no gets rubber-stamped. By default the answer is YOURS TO COLLECT: the call returns at once and tells you to put the question to the user the way your own client does it best, then call submit_answer with what they said. If you have no user in front of you, do not invent one — say nothing more and stop: your claim is KEPT, the question waits in their queue, and the answer reaches you at your next start_task or get_my_work. If the user says they answered in the Weft app or asks you to wait while they do, calling this again with the SAME arguments turns it into a wait: each repeat holds ~20 seconds and returns their answer the moment it lands, with fresh credentials to continue — but do not poll on your own initiative. Pass channel:'form' instead to have Weft show a form itself and wait inside this call. Each question spends the user's attention: it counts against the same limit that stops you claiming new work.

Input Schema

NameRequiredDescriptionDefault
idYesTask ID
runIdYesFrom start_task
channelNo'ask' (default) — you put the question to the user yourself and call submit_answer. 'form' — Weft shows a form in your client and waits inside this call.
optionsNoThe alternatives, when there are any. Strongly preferred over yes/no.
urgencyNoDefault 'blocking'
questionYesWhat you need to know, in one sentence a person can answer
leaseTokenYesFrom start_task
holdSecondsNoHow long to wait in-call: for channel:'form' before parking (default 120); for a repeated ask-poll per call (default 20, max 30).

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • removedInput schema / $schema
      Removed value: -"https://json-schema.org/draft/2020-12/schema"
  2. Changed1 schema field changed
    • changedInput schema / $schema
      Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
  3. 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 the safety profile (readOnlyHint=false, idempotentHint=true, non-destructive); the description goes well beyond, disclosing that the default call returns immediately rather than blocking, that repeating with identical arguments converts the call into a ~20s wait, that unanswered questions persist in the user's queue, and that each question consumes the user's attention against the same limit that blocks claiming new work. That is exactly the behavioral context annotations cannot carry.

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?

It is long, but densely informative and front-loaded — the use-only-for rule and the options preference come before the mechanics. Nearly every sentence carries distinct behavior (default flow, no-user case, wait-on-repeat, form channel, attention cost), though the middle section on repeated polling is heavy enough to slow parsing.

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 an 8-parameter tool with no output schema, the description covers what each call path returns (immediate ack vs. in-call wait vs. queued answer at next start_task/get_my_work), including the no-user-present case. Nothing an agent needs to call it correctly — including the failure mode of inventing a user — is left out.

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 the baseline is 3, but the description adds real semantics: why `options` matters ('a question with alternatives gets read, a yes/no gets rubber-stamped') and how `channel:'form'` changes control flow inside the call. The idempotent-recall behavior tied to `holdSeconds` is also clarified beyond the schema's terse defaults.

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 first sentence gives a specific verb+resource ('register a question only the user can answer') plus the crucial side effect ('keep your place on the task while it is open'). It clearly distinguishes itself from siblings like submit_answer (which supplies the answer) and start_task/get_my_work (where queued answers arrive), 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?

Explicit gate on when to use it ('ONLY for what is irreversible... or a real fork with no reasonable default') and an explicit when-not ('never for may I continue?'). It also routes to the alternatives by name — submit_answer for delivering answers, start_task/get_my_work for picking up queued answers — and explains when to reuse this call as a wait.

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.