agent-gate — fail-closed quality gate + hash-chained receipt ledger for agent work (stdio via PyPI)
@Jott2121
MCP server that adds a fail-closed quality gate and hash-chained receipt ledger to any AI agent workflow.
Overview
What is agent-gate?
agent-gate is an MCP server that lets an AI agent gate its own work before claiming completion. It enforces deterministic checks, an independent refute-first review, and records tamper‑evident, hash‑chained receipts. It is designed for developers operating AI agent systems who need formal quality assurance rather than self‑grading.
How to use agent-gate?
Install with pip install mcp-agent-gate. Add it to an MCP client configuration (e.g., Claude Desktop or Claude Code) using the command python -m agent_gate.server. The agent then calls verify_gate() before reporting done, and receipts are stored at ~/.agent-gate/receipts.jsonl (overridable with AGENT_GATE_LEDGER). It can also be used directly via Python imports.
Key features of agent-gate
- Fail‑closed checklist: a check passes only if explicitly true.
- Tamper‑evident, hash‑chained receipt ledger.
- Human‑gated by default for irreversible actions.
- Pure stdlib core (gate and ledger modules).
- MCP adapter for easy integration with AI clients.
Use cases of agent-gate
- Agent must satisfy a ‘ship’ gate before delivering output.
- Record and later verify an append‑only decision log.
- Hard‑enforce independent review and no‑secrets policies.
- Detect tampering by past receipt edits via
verify_chain().
FAQ from agent-gate
What does fail‑closed mean?
A check counts as satisfied only if it is explicitly true. Missing proof is treated as not passing, mirroring a promotion gate.
How does the receipt ledger work?
Every receipt is appended as a (decision, metric, value, verdict) entry linked by a SHA‑256 hash chain. Calling verify_chain() returns false if any past receipt is edited or deleted.
What are the runtime dependencies?
The core agent_gate/gate.py and agent_gate/ledger.py use only the Python standard library. The MCP server adds one runtime dependency: the mcp package.
Can I use agent-gate without an MCP client?
Yes. Import the gate and ledger classes directly from Python. See the demo in the README for a complete example.
What checks are in the default ‘ship’ gate?
The default gate requires: deterministic checks pass, independent refute review, no secrets exposed, human approval if the action is irreversible, and an honest receipt logged.