Skip to main content
Glama
itcustomsolution

Approval Gate MCP

request_approval

Register proposed outbound or destructive actions with Approval Gate MCP for human approval before execution; proceed only on explicit approval (fail closed).

Instructions

Register a consequential action for human approval BEFORE performing it. Returns a request id. The action is NOT executed by this server; the calling agent must check approval status and only proceed on an explicit 'approved'. Anything else means no (fail closed).

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
actionYesPrecise description of the action you intend to take, e.g. 'send email to alice@example.com with subject X'
reasonYesWhy this action is needed right now
ttl_secondsNoHow long the request stays pending before it expires (default 1 hour)
requested_byNoIdentifier of the requesting agent or workflow

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.3/5.0
Behavior4/5

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

With no annotations, the description carries full burden and discloses the two most important non-obvious behaviors: the server does NOT execute the action, and anything other than 'approved' means no (fail closed). It also notes a request id is returned. Gaps remain on auth requirements, whether the action payload is re-verified at approval time, and pending-request lifecycle beyond the schema's ttl field.

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?

Four short sentences, front-loaded with the core purpose and then the critical fail-closed contract. No filler, and each sentence adds a distinct operational fact.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description appropriately states the return value (a request id) and the full workflow contract an agent needs. Combined with the fully documented schema, nothing required to call this correctly is missing.

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 four parameters are already documented with useful examples (action, reason, ttl_seconds default/limits, requested_by). The description adds no parameter-level detail beyond that, making the baseline 3 appropriate.

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+resource ('register a consequential action for human approval') and explicitly scopes when in the lifecycle it runs ('BEFORE performing it'). This cleanly separates it from check_approval/wait_for_approval/decide_approval, which operate on an already-registered request rather than creating one.

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 clear context: register before acting, then check status and proceed only on 'approved', with fail-closed semantics spelled out. It does not name the concrete sibling (check_approval/wait_for_approval) to call next, so the routing is implied rather than explicit.

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