agent-security-gateway

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.

Category
Visit Server

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

  1. Агент вызывает write_file → safe/hello.txt
  2. Открываешь UI → Approve
  3. Агент смотрит результат через 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

  1. Agent: write_file → safe/hello.txt
  2. Open UI → Approve
  3. 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

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.

Official
Featured
TypeScript
Magic Component Platform (MCP)

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.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

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.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

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.

Official
Featured
TypeScript
Kagi MCP Server

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.

Official
Featured
Python
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Exa Search

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.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured