Skip to main content
Glama

Await human decision

await_decision

Create a human-in-the-loop review on the live artifact. Default options: Approve / Request changes / Reject. Reviewers see a Review required chip → modal. Request changes is non-terminal: webhook or poll returns changes_requested, then call continue_decision after regenerating. Optional timeoutSeconds and maxIterations (default 5). If the page has interactive controls (sliders/forms), the hatch HTML MUST expose window.VR_HITL_GET_SETTINGS so the review can attach those assumptions as JSON. When the user integrates n8n, Temporal, CI, or any external workflow, pass webhookUrl (MCP opens the review; the platform POSTs each transition to that URL — prefer webhook over poll_decision for automation). See PARTNER-WEBHOOKS.md for event payloads.

Input Schema

NameRequiredDescriptionDefault
titleNoModal heading (default: Finish your review).
policyNoPolicy stored on the decision when the hatch has none set. Does not by itself skip creating the review — `await_decision` always opens or reuses one.
hatchIdNoHatch id from the original hatch response.
optionsNoRadio choices (default Approve, Request changes, Reject). Labels are classified into approve / reject / changes_requested.
tenantIdNoLegacy alias for `hatchId`.
contextUrlNo
webhookUrlNoHTTPS URL that receives a POST on every HITL transition (decision.resolved, decision.changes_requested, timeout, superseded, etc.). Prefer this over poll_decision when wiring n8n, Temporal, or other automation — MCP creates the review; the webhook delivers the outcome. Full payload: PARTNER-WEBHOOKS.md.
agentOutputNoOptional seed of the agent’s current output into the conversation transcript.
sessionTokenNo
maxIterationsNoMax review rounds (default 5). Requesting changes at the last iteration fails with max_iterations_exceeded.
timeoutSecondsNoWall-clock timeout for this review round; omit for no timeout.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changed
    • changedInput schema / properties / policy / description
      Previous value: -"Policy override when hatch has none set (idempotent with auto-opened HITL)."New value: +"Policy stored on the decision when the hatch has none set. Does not by itself skip creating the review — `await_decision` always opens or reuses one."
    • changedInput schema / properties / policy / enum
      Previous value: -[
      -  "required",
      -  "good_effort"
      -]New value: +[
      +  "required",
      +  "good_effort",
      +  "optional"
      +]
  2. Changed2 schema fields changed
    • addedInput schema / properties / policy
      Added value: +{
      +  "description": "Policy override when hatch has none set (idempotent with auto-opened HITL).",
      +  "enum": [
      +    "required",
      +    "good_effort"
      +  ],
      +  "type": "string"
      +}
    • changedInput schema / properties / webhookUrl / description
      Previous value: -"HTTPS URL that receives a POST on every HITL transition (decision.resolved, decision.changes_requested, timeout, etc.). Prefer this over poll_decision when wiring n8n, Temporal, or other automation — MCP creates the review; the webhook delivers the outcome. Full payload: PARTNER-WEBHOOKS.md."New value: +"HTTPS URL that receives a POST on every HITL transition (decision.resolved, decision.changes_requested, timeout, superseded, etc.). Prefer this over poll_decision when wiring n8n, Temporal, or other automation — MCP creates the review; the webhook delivers the outcome. Full payload: PARTNER-WEBHOOKS.md."
  3. Changed3 schema fields changed
    • addedInput schema / properties / hatchId
      Added value: +{
      +  "description": "Hatch id from the original hatch response.",
      +  "type": "string"
      +}
    • addedInput schema / properties / tenantId / description
      Added value: +"Legacy alias for `hatchId`."
    • removedInput schema / required
      Removed value: -[
      -  "tenantId"
      -]
  4. Changed1 schema field changed
    • changedInput schema / properties / webhookUrl / description
      Previous value: -"Optional POST callback on each status transition."New value: +"HTTPS URL that receives a POST on every HITL transition (decision.resolved, decision.changes_requested, timeout, etc.). Prefer this over poll_decision when wiring n8n, Temporal, or other automation — MCP creates the review; the webhook delivers the outcome. Full payload: PARTNER-WEBHOOKS.md."
  5. First observed

TDQS

A4.5/5.0
Behavior5/5

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

Annotations declare the mutation/open-world profile (readOnlyHint=false, openWorldHint=true, idempotentHint=false), and the description adds substantial context beyond them: the default option set, the non-terminal changes_requested outcome, the max_iterations_exceeded failure mode, the window.__VR_HITL_GET_SETTINGS__ requirement for interactive pages, and webhook-vs-poll delivery semantics with a payload doc reference.

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 a dense paragraph, but front-loaded with the core action and each sentence carries operational content (defaults, flow, automation preference, doc pointer). Slightly cramped across topics, but no filler sentences.

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 an 11-parameter, no-output-schema, open-world mutation, the description covers the review lifecycle, timeout/iteration behavior, and outcome delivery routes well. Minor gaps remain around unexplained parameters such as contextUrl and sessionToken, which neither the schema nor the description clarifies.

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 description coverage is 82%, which already documents defaults for options, maxIterations, and timeoutSeconds, so the baseline is 3. The description largely restates those defaults (Approve/Request changes/Reject, default 5, max_iterations_exceeded) rather than adding new per-parameter meaning; the genuinely new points (webhook preference, __VR_HITL_GET_SETTINGS__) are workflow-level, not parameter-level.

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: 'Create a human-in-the-loop review on the live artifact.' It further distinguishes itself from sibling tools by explaining the non-terminal Request changes flow and routing to continue_decision and poll_decision, so an agent can tell it apart from the other poll_/continue_ tools without opening a 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?

Explicitly names alternatives and the conditions that select them: 'call continue_decision after regenerating,' and 'prefer webhook over poll_decision for automation' when wiring n8n/Temporal/CI. Both when-to-use and which-alternative guidance are present.

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.