Ask the user a yes/no question
ask_confirmGet explicit user approval for destructive or irreversible actions by asking a yes/no question that states the exact target and consequence, then return the confirmed answer.
Instructions
Ask the user a single yes/no question and wait for the answer. Use this before destructive or irreversible actions (deleting, overwriting, migrating, force-pushing, publishing), and for any binary decision the user should own. State the exact target and the consequence in question, not just "are you sure?". Returns a boolean in confirmed (and "yes"/"no" in answer).
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| default | No | Optional pre-selected answer. Omit it for genuinely open decisions; pre-selecting a destructive action is discouraged. | |
| question | Yes | A question answerable with yes/no. For destructive or irreversible actions, name the exact target and consequence so the user can judge the risk. | |
| timeout_ms | No | Optional override, in milliseconds, for how long to wait for the user. Defaults to the server setting (HIM_TIMEOUT_MS, 300000). |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| via | Yes | Channel that produced the outcome. | |
| tool | Yes | Name of the tool that produced this result. | |
| answer | Yes | The answer as a string: chosen label, "yes"/"no", or the typed text. | |
| status | Yes | Outcome. Only `answered` carries a usable answer. `needs_user_input` means you must ask the user yourself, in chat, using the question and options in `message`. | |
| message | Yes | Human-readable summary, including options when the question is still unanswered. | |
| fallback | Yes | Configured fallback mode (HIM_FALLBACK). | |
| form_url | Yes | Loopback form URL, when the http fallback served this question. | |
| question | Yes | The question as it was asked. | |
| selected | Yes | Selected labels; exactly one for ask_choice, N for ask_multi_select. | |
| confirmed | Yes | ask_confirm only: true for yes, false for no. | |
| free_text | Yes | Optional free-text note supplied alongside a choice. | |
| next_step | Yes | What you should do next. Follow it. | |
| elapsed_ms | Yes | Wall-clock time spent waiting for the user, in milliseconds. | |
| client_elicitation | Yes | Whether the connected client declared MCP form-elicitation support during initialize. | |
| auto_reject_suspected | Yes | True when a decline came back so fast that the client probably auto-rejected rather than asking the user. |