Skip to main content
Glama

Porch

Wait for approval

wait_for_approval
Read-onlyIdempotent

Block until the person answers an approval link, then return their choice. Returns at once if it was already answered. On timeout, call it again.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
pathYesThe path returned by create_approval_link, e.g. "/approve/AbC123". The full URL works too.
inbox_keyYesThe inbox_key returned by create_inbox (starts with "porch_sk_").
timeout_secondsNoHow long to wait (default 30, max 300).

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
urlNo
choiceNo
answeredYes
timed_outNo
request_idNo
answered_atNo
waited_secondsNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4/5.0
Behavior4/5

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

Annotations declare readOnlyHint=true, idempotentHint=true and destructiveHint=false, so safety is covered, but they say nothing about blocking. The description adds the genuinely useful traits: this is a long-blocking call, it short-circuits when already answered, and a timeout does not end the approval. It could also state whether the person must authenticate before answering.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short sentences with zero filler, front-loading the blocking semantics before the two edge-case rules. Every sentence carries a distinct fact.

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?

An output schema exists, so return-value shape need not be explained, and the description covers the two behaviors an agent most needs (immediate return, retry after timeout). It leaves open whether the timeout is caller-configured elsewhere and what condition distinguishes a timeout result from an answer.

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 100%, so all three parameters are documented by the schema itself; the description adds no syntax or format detail for path, inbox_key or timeout_seconds. Baseline 3 applies when the schema does the heavy lifting.

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 resource: it blocks on an approval link and returns the person's choice. That is concrete and distinct from most siblings. It does not, however, differentiate itself from the very similar sibling wait_for_request, leaving that distinction to inference.

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 real operational guidance: it returns immediately if the answer already exists, and the caller should re-invoke it after a timeout. That is actionable when-to-call behavior. It stops short of saying when to prefer this over wait_for_request or how to interpret a timeout result.

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