Skip to main content
Glama
Approval Gate MCP

Approval Gate MCP

wait_for_approval

Blocks until a human approves or denies a registered action, or the request expires; a timeout returns pending, so call consume_approval before proceeding.

Instructions

Block until a human decides the request, it expires, or the timeout elapses. Returns the final (or still-pending) request. Informational only; it never authorizes execution. A timeout returns 'pending' (not approved). After 'approved', call consume_approval and proceed only on ok:true.

Input Schema

NameRequiredDescriptionDefault
idYesThe request id returned by request_approval
poll_secondsNoPolling interval
timeout_secondsNoMaximum time to wait (default 5 minutes)

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changedv0.4.1
    • removedInput schema / additionalProperties
      Removed value: -false
  2. Changed1 schema field changedv0.4.0
    • addedInput schema / properties / id / maxLength
      Added value: +64
  3. First observedv0.1.0

TDQS

A4/5.0
Behavior4/5

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

With no annotations, the description carries the full burden and does well: it discloses that the call blocks, that a timeout yields 'pending' rather than approval, and that approval alone does not permit execution. Missing are operational notes such as whether long blocks are safe or how concurrent waits behave.

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?

Four short sentences, front-loaded with the blocking behavior and followed immediately by the safety caveat and the required next step. Only the clause 'Returns the final (or still-pending) request' adds little beyond what precedes it.

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?

No output schema and no annotations, and the description covers the critical contract: what blocks, what a timeout means, and how to proceed after approval. The returned request's shape and status values are not described, but the decision-relevant behavior is complete.

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 schema already documents id, poll_seconds and timeout_seconds and the baseline is 3. The description adds real meaning by explaining the consequence of the timeout parameter returning 'pending' rather than approved, which the schema does not convey.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and effect: block until a human decides, the request expires, or the timeout elapses, then return the request. An agent can tell this is a waiting/polling call rather than a decision call. However, it never explicitly names check_approval as the non-blocking alternative, so the wait-vs-check distinction is left implicit.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

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

Gives a clear call sequence: after 'approved', call consume_approval and proceed only on ok:true, plus an explicit 'never authorizes execution' exclusion. It stops short of saying when to prefer check_approval or how to pick a timeout, so the guidance is contextual but not exhaustive.

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