agent-security-gateway
MCP 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.
README
Agent Security Gateway
MCP‑слой безопасности для AI‑агентов: каждый вызов tool проходит через allow / confirm / deny и пишется в audit.
Cursor / Claude
↓
Agent Security Gateway ← политики + очередь confirm
↓ + UI аппрувов (:8787)
sandbox tools + SQLite audit
Быстрый старт
npm install
npm test
npm run demo # демо (UI + allow/deny/confirm)
# или
npm run dev # MCP по stdio + UI для Cursor
- UI аппрувов и аудита: http://127.0.0.1:8787
- MCP работает по stdio (логи только в stderr)
Подключение в Cursor
{
"mcpServers": {
"agent-security-gateway": {
"command": "npm",
"args": ["run", "dev", "-w", "@agent-security/gateway"],
"cwd": "/Users/daniildudarev/Downloads/agent-security-gateway"
}
}
}
Сценарий confirm
- Агент вызывает
write_file→safe/hello.txt - Открываешь UI → Approve
- Агент смотрит результат через
get_pending/list_audit
Зачем это нужно
Агенту дают «руки» (tools): файлы, API, БД. Без ограничений он может удалить не то, уйти в цикл или сделать необратимое действие.
Этот gateway стоит между IDE‑агентом и tools:
| Решение | Что происходит |
|---|---|
| allow | действие выполняется сразу |
| deny | блокируется, пишется в audit |
| confirm | ждёт человека в UI, потом execute / reject |
По умолчанию — fail‑closed: неизвестный tool запрещён.
Docker
docker compose up --build
UI: http://127.0.0.1:8787
Переменные окружения
| Переменная | По умолчанию | Назначение |
|---|---|---|
ASG_POLICY_PATH |
policies/default.yaml |
Файл политик |
ASG_APPROVE_HOST |
127.0.0.1 |
Адрес bind (0.0.0.0 в Docker) |
ASG_APPROVE_PORT |
8787 |
Порт UI |
ASG_APPROVE_URL |
вычисляется | URL, который видит агент |
ASG_DATA_DIR |
./data |
Каталог SQLite |
Политики
Файл policies/default.yaml — первое совпадение побеждает, иначе deny.
| Действие | Путь | Решение |
|---|---|---|
| list/read | sandbox | allow |
| write/delete | prod/** |
deny |
| write/delete | safe/** |
confirm → UI |
| неизвестный tool | — | deny |
Sandbox
sandbox/
safe/notes.txt # безопасный демо‑файл
prod/users.db # «прод» — мутации запрещены
Все файловые tools работают только внутри sandbox/, выход через .. режется.
Tools
| Tool | Назначение |
|---|---|
gateway_status |
статус, пути, URL UI |
list_dir / read_file |
чтение sandbox |
write_file / delete_file |
мутации (под политикой) |
list_pending / get_pending |
очередь confirm |
list_audit |
история решений |
Демо
npm run demo
Подробнее: docs/DEMO.md
Агентам нужны руки (tools). Руки без ограждения опасны. Этот MCP‑gateway стоит между IDE‑агентом и tools, решает allow/confirm/deny и для рискованных действий ждёт человека — с полным audit trail.
Agent Security Gateway (English)
MCP security layer for AI agents: every tool call goes through allow / confirm / deny + audit.
Cursor / Claude
↓
Agent Security Gateway ← policy + pending queue
↓ + approve UI (:8787)
sandbox tools + SQLite audit
Quick start
npm install
npm test
npm run demo # demo (UI + allow/deny/confirm)
# or
npm run dev # MCP stdio + UI for Cursor
- Approve / Audit UI: http://127.0.0.1:8787
- MCP on stdio (logs on stderr)
Connect from Cursor
{
"mcpServers": {
"agent-security-gateway": {
"command": "npm",
"args": ["run", "dev", "-w", "@agent-security/gateway"],
"cwd": "/Users/daniildudarev/Downloads/agent-security-gateway"
}
}
}
Confirm flow
- Agent:
write_file→safe/hello.txt - Open UI → Approve
- Agent:
get_pending/list_audit
Why it exists
Agents get hands (tools): files, APIs, databases. Without guardrails they can delete the wrong thing, loop on expensive calls, or take irreversible actions.
This gateway sits between the IDE agent and tools:
| Decision | What happens |
|---|---|
| allow | execute immediately |
| deny | block + write audit |
| confirm | wait for a human in the UI, then execute / reject |
Default is fail-closed: unknown tools are denied.
Docker
docker compose up --build
UI: http://127.0.0.1:8787
Env
| Variable | Default | Meaning |
|---|---|---|
ASG_POLICY_PATH |
policies/default.yaml |
Policy file |
ASG_APPROVE_HOST |
127.0.0.1 |
Bind address (0.0.0.0 in Docker) |
ASG_APPROVE_PORT |
8787 |
Approve UI port |
ASG_APPROVE_URL |
derived | URL shown to agents |
ASG_DATA_DIR |
./data |
SQLite DB directory |
Policy model
policies/default.yaml — first match wins, default fail-closed deny.
| Action | Path | Decision |
|---|---|---|
| list/read | sandbox | allow |
| write/delete | prod/** |
deny |
| write/delete | safe/** |
confirm → human UI |
| unknown tool | — | deny |
Sandbox
sandbox/
safe/notes.txt # harmless demo file
prod/users.db # fake "prod" — mutations denied
All filesystem tools are rooted at sandbox/ and reject .. escapes.
Tools
| Tool | Purpose |
|---|---|
gateway_status |
status, paths, UI URL |
list_dir / read_file |
read sandbox |
write_file / delete_file |
mutations (policy-gated) |
list_pending / get_pending |
confirm queue |
list_audit |
decision history |
Demo
npm run demo
Details: docs/DEMO.md
Agents need hands (tools). Hands without a guardrail are dangerous. This MCP gateway sits between the IDE agent and tools, decides allow/confirm/deny, and for risky actions waits for a human — with a full audit trail.
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
Neon Database
MCP server for interacting with Neon Management API and databases
E2B
Using MCP to run code via e2b.
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.