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

TableJSON 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. First observed

TDQS

A4.8/5.0
Behavior5/5

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

Adds substantial context far beyond the annotations: the call returns immediately, the claim is kept when there is no user, repeated identical calls become waits of ~20 seconds, fresh credentials arrive, polling on one's own initiative is forbidden, and each question spends user attention. This materially changes invocation behavior and is precisely the kind of trait an agent needs.

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?

The description is dense but every sentence carries behavioral or usage weight; nothing is filler. It is front-loaded with the core purpose and the irreversible-use boundary. Slightly more structure (bullets for the different waiting modes would improve scannability, but this is a complex tool and the length is justified.

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 tool with no output schema and several asynchronous behaviors, the description covers all essential call paths: immediate return, submit_answer handoff, no-user case, repeated-call wait, form channel, and attention-limit warning. An agent has what it needs to invoke it correctly in each context.

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 goes further by explaining the intended semantics of options ('alternatives get read, yes/no gets rubber-stamped'), channel:'form' behavior, holdSeconds timing (20s repeated, form default 120s), and the meaning of reusing the same arguments.

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: 'Register a question only the user can answer, and keep your place on the task while it is open.' It clearly distinguishes from sibling submit_answer, which is named as the follow-up call that delivers the answer.

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 boundaries for when to use it ('ONLY for what is irreversible... or a real fork with no reasonable default'), a hard 'never' ('may I continue?'), and a preference rule for options. It also routes to the channel:'form' alternative and submit_answer sibling.

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.

Resources