Skip to main content
Glama
Approval Gate MCP

Approval Gate MCP

consume_approval

Consume an approval exactly once before executing an approved action, validating the request is approved, unexpired, and matches the exact action and payload; proceed only if successful.

Instructions

Call this IMMEDIATELY before performing an approved action. Succeeds exactly once per request, only if the request is approved, not past its expiry, action is byte-for-byte the text that was approved, and operation/payload (if the request had them) are identical. ok:false for any reason means do NOT proceed. An approval cannot be reused for a second or different action. The returned JSON is not a transferable credential: no other component may accept it as proof of approval.

Input Schema

NameRequiredDescriptionDefault
idYesThe request id returned by request_approval
actionYesThe exact action text you passed to request_approval
payloadNoOptional JSON payload the action will execute (at most 32768 bytes canonical). The human reviews it; consume must present an identical payload.
operationNoOptional operation name a trusted executor must present, e.g. 'smtp.send' (A-Z a-z 0-9 . _ : / -)

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changedv0.4.1
    • removedInput schema / additionalProperties
      Removed value: -false
  2. Addedv0.4.0

TDQS

A4.8/5.0
Behavior5/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 so: exactly-once success, the four preconditions (approved state, unexpired, byte-for-byte action match, identical operation/payload), failure semantics, and a security caveat that the returned JSON is not a transferable credential. These are non-obvious behaviors an agent could not derive from the schema alone.

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?

The imperative directive is front-loaded in the first clause, and every subsequent sentence adds a distinct, load-bearing constraint (preconditions, abort rule, no-reuse, credential warning). No filler or repetition of schema content.

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 a 4-parameter mutation-like tool with no annotations and no output schema, the description covers the critical failure path ('ok:false') and the credential caveat, but does not indicate what a successful response contains beyond implying `ok:true`. That is a minor gap given the otherwise thorough disclosure.

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; the description earns above that by sharpening the matching rules — `action` must be 'byte-for-byte the text that was approved' and operation/payload must be identical if the request had them. It reinforces the strictness of the match rather than restating field types.

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?

The description states a specific action (consume an approval) and its precise placement in the workflow: 'Call this IMMEDIATELY before performing an approved action.' That timing constraint, plus the exactly-once semantics, cleanly separates it from the sibling lifecycle tools (request_approval, check_approval, wait_for_approval, decide_approval).

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?

It gives an explicit when ('IMMEDIATELY before performing an approved action'), an explicit when-not ('ok:false for any reason means do NOT proceed'), and an explicit non-reuse rule ('An approval cannot be reused for a second or different action'). The agent is told both the trigger and the abort condition without inference.

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