Python enforcement
A decorator raises before the protected function body on denied or approval-required decisions.
Fail closed. Stay local. Prove the decision.
Add one policy check before file writes, shell commands, or engineering tool mutations. Get allow, approval required, or deny—plus a local tamper-evident audit event.
$ uvx --from git+https://github.com/ IamOumarIbrahim/governed-agent-mcp-stack governed-agent demo signal.read_file allow fs.write_report approval_required shell.execute deny
One job, three interfaces
Built for MCP server authors and agent-platform engineers who need a reviewable safety layer without deploying a policy service first.
A decorator raises before the protected function body on denied or approval-required decisions.
JSON results and stable exit codes work in shell pipelines, CI, and tool hosts.
Check actions and inspect the audit chain through three real FastMCP stdio tools.
Security boundary
The caller must use the gate. This project does not transparently intercept unrelated MCP servers, authenticate human approvers, or make a local SQLite file tamper-proof. The README shows how to make the Python call path enforceable and documents every limitation.