agent-effect-gate
Provides scoped GitHub code search against named repositories, with each search request subject to approval and audit logging.
Allows LangChain agents to route tool calls through the permission gate for validation, approval, and auditing.
Allows LangGraph agents to route tool calls through the permission gate for validation, approval, and auditing.
Supports OpenAI-based agents, including OpenAI Agents SDK and the built-in OpenAI Responses model runner, with tool-call gating and approval.
Allows Pydantic AI agents to route tool calls through the permission gate for validation, approval, and auditing.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@agent-effect-gateShow me which proposed tool calls are currently pending review."
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Agent Effect Gate
A permission gate for AI agents. Every tool call is checked against the task's policy, held for human approval when required, and written to an audit log.
Agents propose actions like fetching a page, running code or uploading a file. The gate runs each one, holds it for a reviewer, or refuses it. Approvals bind to the exact request, and code runs in a locked-down Linux sandbox.
Status: initial public preview (0.1.0). Linux is the supported runtime. Validate the sandbox, optional SDKs and deployment configuration in your own environment before relying on them. See validation scope.
Open core
All code and features in this repository are available under the MIT license, including the review console, audit log, integrations and deployment tools. You can self-host and use the core commercially without a paid license.
Future enterprise extensions will be developed and licensed separately. They are planned, not included or available in this release. See the open-core boundary and commercial direction.
Related MCP server: actionproxy
How it works
Define a task. A policy sets which agents can act, which tools they get, which tools need approval, and how many actions, reads and retries the task may use.
The agent proposes. The gate validates the call and freezes the exact request: destination, arguments, code and payload bytes.
A reviewer decides. Calls that need approval wait in the review console until a reviewer approves or rejects them.
The gate executes. The gate makes one execution attempt for the approved request. If the outcome is uncertain, the call is marked unknown and never retried automatically.
The agent answers. Answers go through the gate, and every citation must quote captured tool output exactly.
Features
Exact approvals. An approval covers one frozen request. A different request needs its own approval, and changing the policy or tool configuration voids approvals that haven't run. Approvals expire after five minutes by default.
Scoped tools. HTTPS reads from a fixed site and path prefix, HTTPS uploads to a fixed endpoint (approval always required), GitHub code search in named repositories, and Python or shell in the sandbox. Add your own tools through a small Python adapter interface.
Operator-owned destinations and secrets. Agents choose arguments. Operators choose sites, endpoints, credentials and the sandbox filesystem. Tool API keys stay with the executor.
Linux sandbox. Each job gets fresh user, mount, PID, network and IPC namespaces, a read-only root filesystem, a throwaway working directory, syscall filtering, no network access, and limits on time, memory, processes and output.
Budgets and a circuit breaker. Each task has separate action, read and retry budgets plus per-tool call limits. Repeated authorization denials suspend the task automatically.
Safe retries. Retrying a request with the same ID never repeats the action, and reusing an ID with different arguments is rejected.
Resumable runs. The built-in model runner checkpoints before every step, pauses for approval, and resumes the saved request.
Audit log. Proposals, approvals, executions and denials go into an append-only, HMAC-chained log. Keep a copy of the latest log head elsewhere to detect rollback or tampering.
Process separation. Agents connect over a Unix socket with a per-task token, and both sides verify each other's Linux account on every connection. Approval and admin operations stay off the agent's interface.
Review console and CLI. Reviewers sign in with task-scoped accounts, see full request details, and approve, reject or revoke. The CLI adds readiness checks, backup and restore, task suspension and incident tracking.
Integrations
MCP: stdio server with 15 agent tools
Python: sync and async
GateClientFrameworks: OpenAI Agents SDK, LangChain, LangGraph and Pydantic AI
Models: built-in OpenAI Responses runner, or your own adapter
Requirements
Linux and Python 3.11+. The core uses only the standard library. The review console needs Uvicorn, framework integrations need their SDKs, and the sandbox needs unprivileged user namespaces, util-linux and libseccomp. Non-root sandbox execution also needs subordinate UID/GID ranges and the newuidmap/newgidmap helpers. See deployment for setup.
Install
Clone the repository and build the offline application:
git clone https://github.com/paulchum/agent-effect-gate.git
cd agent-effect-gate
python3 scripts/build_release.py
python3 install.py --prefix "$HOME/.local"
"$HOME/.local/bin/agent-effect-gate" --helpAlternatively, download the complete ZIP from GitHub Releases, extract it, and run python3 install.py --prefix "$HOME/.local" inside the extracted directory. The ZIP includes the built executable. GitHub's automatic source archives require the build step above.
The build and offline installer need no third-party Python packages. Follow installation for Python environments and wheel installation, or deployment to create a task and start the review console.
Try the synthetic local example without a model API or credentials:
python3 examples/demo.pyContributing and support
Read CONTRIBUTING.md for development and tests, SUPPORT.md for questions and bug reports, and SECURITY.md for private vulnerability reports. This project is maintained by @paulchum. See the changelog for releases.
Security model
The gate controls the tool calls routed through it, so give agents the gate's tools and no others. Run the gate and the agent under separate Linux accounts, and keep the state directory, keys and backups private to the gate's account.
Documentation
Features · Frameworks and MCP · Process separation · Security · Design · Recovery · Incident reports · Validation · Upgrade notes
This server cannot be deployed
Maintenance
Related MCP Connectors
Runtime permission, approval, and audit layer for AI agent tool execution.
Find, vet, and run MCP tools through a secure audited gateway with prompt-injection risk scoring
Zero-secret MCP gateway for AI agents: risk-scored, audited calls with human-in-the-loop approval.
- gatewayOAuthai.sealgate
MCP gateway with runtime security policy, tool-call-level control, and audit of agent actions.
Related MCP Servers
- FlicenseNot gradedqualityBmaintenanceProvides a secure MCP boundary for AI agents, intercepting and validating tool calls, redacting secrets, and requiring human approval for sensitive actions with a tamper-evident audit trail.-
- AlicenseNot gradedqualityBmaintenanceProvides a human-in-the-loop approval gateway for AI agents, enforcing policies and audit logging for MCP-compatible tool calls.Apache 2.0
- AlicenseNot gradedqualityBmaintenanceExposes ReadyAgents' local workflow engine and built-in tools over MCP stdio, enabling MCP clients to define, run, inspect, and approve YAML/JSON agent workflows.919 PyPIApache 2.0
- FlicenseNot gradedqualityCmaintenanceEnables MCP tool calls with strict schema validation and stdio isolation, while providing a security gateway for tool-level authorization, streaming PII redaction, and model failover routing.-