Evav Gateway
FreeNot checkedGoverned MCP gateway that lets AI agents call tools with policy enforcement, prompt-injection screening, a kill-switch, and tamper-evident signed audit logs.
About
Governed MCP gateway that lets AI agents call tools with policy enforcement, prompt-injection screening, a kill-switch, and tamper-evident signed audit logs.
README
The open-source governed MCP gateway. Point any AI agent (Claude, Cursor, ChatGPT, your own) at one endpoint; every tool call it makes is governed — policy-checked, screened for prompt-injection/exfiltration, haltable by a kill-switch — and written to a signed, tamper-evident audit log before it reaches the real tool.
Built on FastMCP for the wire (federation, pooled sessions, auth, transport); the governance layer is ours.
Status: v0.1, early. The governed proxy + signed audit + injection screening work and are tested. OAuth brokering, an OPA policy backend, the one-command client-setup, and packaging are on the roadmap below.
Why
Every OSS MCP gateway governs the wire. Most log unsigned, have no native injection screening, and no approval gate. evav-gateway:
- Signs its audit log (Ed25519, hash-chained) — tamper-evident. No surveyed gateway does this.
- Screens every call for prompt-injection / exfiltration on the way in and the way out — native, not a bolt-on.
- Fails closed: a policy error, an injected argument, a poisoned upstream output, or an engaged kill-switch stops the call. It never silently allows.
Governance pipeline (per tool call)
kill-switch → policy (block / require-approval) → injection screen (input)
→ forward to upstream (pooled session) → injection screen (output, withhold)
→ signed audit record
Use as a library
from fastmcp import Client
from evav_gateway import build_gateway, Policy
gw, audit = build_gateway(
{"mcpServers": {"slack": {"url": "https://mcp.slack.com/mcp"}}},
policy=Policy(approval_tools=("payments.transfer",),
block_patterns=(r"\bssn\b",)),
)
# every call through `gw` is governed; audit.verify() checks the signed chain
Config-as-code
# evav-gateway.yaml
name: "Acme Gateway"
injection_on: true
upstreams:
- name: slack
url: https://mcp.slack.com/mcp
auth_env: SLACK_MCP_TOKEN # secret from env, never inlined
policy:
approval_tools: [payments.transfer]
block_patterns: ["\\bssn\\b", "password"]
param_limits:
payments.transfer: { amount: 1000 }
evav-gateway run --config evav-gateway.yaml
Quickstart
pip install evav-gateway # or: uvx evav-gateway ...
cp evav-gateway.example.yaml evav-gateway.yaml # edit upstreams + policy
evav-gateway run --config evav-gateway.yaml # serves http://127.0.0.1:8000/mcp
evav-gateway client-setup --client cursor --url http://127.0.0.1:8000/mcp # point your agent here
Or with Docker:
docker build -t evav-gateway .
docker run -p 8000:8000 -v "$PWD/evav-gateway.yaml:/config/evav-gateway.yaml" evav-gateway
Roadmap
- Governed proxy on FastMCP (policy · injection in/out · kill-switch · signed audit)
-
evav-gateway client-setup— one command to point Claude/Cursor/VS Code/Windsurf here - Docker image +
uvx/pip install - OPA (Rego) policy backend for enterprise param/context authz (opt-in; see
examples/policy.rego) - Brain-injection: inject the org's rules/skills into any agent (
evav_rules/evav_skill) - Persistent signed audit (SQLite + stable key) — retrieve via
evav_audit, verify offline viaevav-gateway verify-audit - Hardened injection screen (decode pass: base64/URL/control-char obfuscation)
- OAuth 2.1 + upstream token brokering (agents never hold upstream creds)
- Shared multi-replica audit (Postgres + shared key)
- Async endpoint + tuned connection pooling under load
- Rule/skill/memory context injection (inject the org's relevant rules into any agent)
- Helm chart
License
Apache-2.0.
Install Evav Gateway in Claude Desktop, Claude Code & Cursor
unyly install evav-gatewayInstalls into Claude Desktop, Claude Code, Cursor & VS Code — handles npx, uvx and build-from-source repos for you.
First time? Get the CLI: curl -fsSL https://unyly.org/install | sh
Or configure manually
Run in your terminal:
claude mcp add evav-gateway -- uvx --from git+https://github.com/evavai/evav-gateway evav-gatewayStep-by-step: how to install Evav Gateway
FAQ
Is Evav Gateway MCP free?
Yes, Evav Gateway MCP is free — one-click install via Unyly at no cost.
Does Evav Gateway need an API key?
No, Evav Gateway runs without API keys or environment variables.
Is Evav Gateway hosted or self-hosted?
A hosted option is available: Unyly runs the server in the cloud, no local setup required.
How do I install Evav Gateway in Claude Desktop, Claude Code or Cursor?
Open Evav Gateway on unyly.org, pick your client tab (Claude Desktop, Claude Code, Cursor) and press Install — the config is generated automatically, no JSON editing.
Related MCPs
Fetch
Web content fetching and conversion for efficient LLM usage.
AWS KB Retrieval
Retrieval from AWS Knowledge Base using Bedrock Agent Runtime.
by modelcontextprotocolSpring AI MCP Server
Provides auto-configuration for setting up an MCP server in Spring Boot applications.
llm-analysis-assistant
A very streamlined mcp client that supports calling and monitoring stdio/sse/streamableHttp, and can also view request responses through the /logs page. It also
by xuzexin-hzCompare Evav Gateway with
Not sure what to pick?
Find your stack in 60 seconds
Author?
Embed badge for your README
Browse similar
All ai MCPs
