approval-gate
This server does not currently have a deployable release on Glama. Follow the repository's setup instructions to install and configure it for your MCP client, including any required credentials and local dependencies.
approval-gate
An MCP server that stops an AI agent from sending anything until a person says yes.
The agent can ask for approval, check on it, and collect the approved text. It has no tool that can approve. That matters when the agent reads messages from strangers: an instruction hidden in an email can change what the agent wants to do, but it cannot reach a tool that does not exist.
agent ── request_approval ──▶ gate ◀── approve / edit / reject ── person
agent ◀── claim_approved ──── gate (local review page or CLI)Try the rules in your browser.
What it guarantees
Each of these has a test.
No self-approval. The MCP server exposes three tools:
request_approval,check_approvalandclaim_approved.A retry can't send twice. Requests carry an idempotency key, and approved text can be claimed once.
The person's wording wins. If they edit the draft, the agent gets the edited version.
A decision stays made. A rejected draft can't be approved later.
Changes to the record show up. The log is append-only and hash-chained, and
approval-gate verifynames the first line that doesn't match. This detects casual edits and forged lines. It isn't a defence against someone who rewrites the whole chain, so ship the log somewhere the agent can't write if that's in your threat model.
Related MCP server: Approval Gate
Use it
git clone https://github.com/stingraydeveloper/approval-gate
cd approval-gate && npm ci && npm run buildAdd it to any MCP client:
{
"mcpServers": {
"approval-gate": {
"command": "node",
"args": ["/path/to/approval-gate/dist/cli.js", "serve"],
"env": { "APPROVAL_GATE_LOG": "/path/to/approvals.jsonl" }
}
}
}Then, in your own terminal:
node dist/cli.js review # prints a local link to a page for approving, editing or rejecting
node dist/cli.js list # or work from the command line
node dist/cli.js approve apr_35c592c45e76 --note "Fine"
node dist/cli.js verify # ok: 2 eventsThe review page binds to 127.0.0.1 and needs a token that changes on every run.
What it does not do
It doesn't send anything. Your agent or workflow does the sending after claim_approved, which keeps the gate independent of email, WhatsApp or whatever channel you use. It also doesn't stop an agent that has its own direct access to those channels, so take that access away.
One writer machine only: the lock is a local file. For several machines, put the same three tools in front of a database.
npm testBuilt with Claude Code.
Related MCP Connectors
Set up human approval for your AI agents' tool calls.
Give any AI agent a way to ask a person — for approval, a decision, an answer or a review.
Check an email before your AI agent sends it: allow, review or block with reasons.
Preventive human-approval write-gate for AI agents: writes commit only after a human approves.
Related MCP Servers
- AlicenseAqualityDmaintenanceHuman-in-the-loop approval gate for AI agents. Your agent calls submit_approval before any irreversible action; a human reviews on a branded page; a signed webhook fires back with the decision.11MIT
- AlicenseNot gradedqualityDmaintenanceProvides a human approval gate for AI agents, enabling interactive inline cards for approving, editing, or rejecting actions before they are executed.MIT
- AlicenseNot gradedqualityDmaintenancePauses AI agent execution and routes approval requests to humans via Slack or email, with cryptographically signed proof of the human's decision.44 npmMIT
- AlicenseNot gradedqualityDmaintenanceEnables AI agents to request human approvals with customizable forms, webhooks, and team features.86 npmMIT