Skip to main content
Glama

agent-guard-mcp

CI License: MIT Go Reference

Servidor MCP Guard: control de presupuesto, flujos de trabajo de aprobación y registro de auditoría para agentes de IA.

Funciona con Claude Code, Cursor, ChatGPT y cualquier agente de IA que utilice el protocolo MCP.

Características

  • Control de presupuesto — El límite estricto de créditos diarios evita el gasto excesivo del agente

  • Aprobación de alto riesgo — Las operaciones que superan el umbral de cantidad o coinciden con palabras clave de recursos sensibles activan la aprobación humana

  • Flujo de trabajo de aprobación — Solicitudes del agente → token generado → aprobación humana a través del panel de control o Telegram

  • Registro de auditoría — Todas las acciones de gasto, aprobación y rechazo se registran con paginación basada en cursor

  • Panel de control web — Panel de control en tiempo real con Gin + HTMX + Tailwind

  • Notificaciones de Telegram — Enlaces de aprobación instantánea para operaciones de alto riesgo

  • Transporte múltiple — stdio / SSE / StreamableHTTP con detección automática

Herramientas MCP

Herramienta

Descripción

check_budget

Consultar el estado del presupuesto de hoy

spend

Ejecutar un gasto (detecta automáticamente el alto riesgo)

request_approval

Solicitar explícitamente la aprobación humana

approve

Aprobar un token pendiente

reject

Rechazar un token pendiente

check_approval

Consultar el estado de aprobación

get_audit_log

Consultar el registro de auditoría con filtrado y paginación

get_pending_approvals

Listar todas las solicitudes de aprobación pendientes

Inicio rápido

Requisitos

  • Go 1.24+

  • No requiere CGO (controlador SQLite en Go puro)

Construir desde el código fuente

git clone https://github.com/dygogogo/agent-guard-mcp.git
cd agent-guard-mcp
go build -o mcp-guard main.go

Descargar binario precompilado

Descargue la última versión para su plataforma:

O visite la página de la última versión.

Configuración

Configure mediante variables de entorno o un archivo .env:

Variable

Descripción

Predeterminado

MCP_TRANSPORT

Transporte: stdio / sse / http

Detección automática (TTY → http)

BUDGET_LIMIT

Límite de presupuesto diario (créditos)

10.0

HIGH_RISK_THRESHOLD

Umbral de cantidad de alto riesgo

2.0

HIGH_RISK_RESOURCES

Palabras clave de recursos de alto riesgo (separadas por comas)

delete,send

DB_PATH

Ruta de la base de datos SQLite

./mcp-guard.db

DASHBOARD_PORT

Puerto HTTP del panel de control

8080

APPROVAL_BASE_URL

URL base para enlaces de aprobación

http://localhost:8080

LOG_LEVEL

Nivel de registro: debug/info/warn/error

info

PAYER_ID

Identidad del pagador

hostname

TELEGRAM_BOT_TOKEN

Token del bot de Telegram (opcional)

-

TELEGRAM_CHAT_ID

ID de chat de Telegram (opcional)

-

Ejecución

# HTTP mode (auto-detected, with Dashboard)
./mcp-guard
# Dashboard: http://localhost:8080/dashboard
# MCP endpoint: http://localhost:8080/mcp

# stdio mode (for MCP clients)
MCP_TRANSPORT=stdio ./mcp-guard

# SSE mode
MCP_TRANSPORT=sse ./mcp-guard
# SSE endpoint: http://localhost:8080/sse

Integración con Claude Code

Añada a la configuración MCP de Claude Code:

{
  "mcpServers": {
    "agent-guard-mcp": {
      "command": "mcp-guard",
      "env": {
        "MCP_TRANSPORT": "stdio",
        "BUDGET_LIMIT": "10"
      }
    }
  }
}

Arquitectura

┌─────────────┐     MCP Protocol     ┌────────────────┐
│  AI Agent   │ ◄──────────────────► │  MCP Guard      │
│ (Claude,    │   stdio / HTTP       │  Server         │
│  Cursor...) │                      │                  │
└─────────────┘                      │  ┌────────────┐ │
                                     │  │  BudgetStore │ │
┌─────────────┐    HTTP              │  │  (SQLite)    │ │
│  Dashboard  │ ◄──────────────────► │  └────────────┘ │
│  (Gin+HTMX) │                      └────────────────┘
└─────────────┘

┌─────────────┐    Webhook
│  Telegram   │ ◄────── Approval notifications
└─────────────┘

Archivos principales

Archivo

Descripción

main.go

Punto de entrada, selección de transporte, apagado elegante

server.go

Servidor MCP con 8 herramientas registradas

store.go

Interfaz BudgetStore + implementación SQLite

approval.go

Detección de alto riesgo, flujo de trabajo de aprobación, Telegram

config.go

Configuración del entorno, detección automática de transporte

logger.go

Registro zap (modo stdio: solo archivo)

dashboard.go

Panel de control web Gin

Flujo de trabajo de aprobación

1. Agent calls spend(amount=5.0, resource="/api/delete")
2. MCP Guard detects high-risk (amount > threshold OR resource keyword matched)
3. Returns {status: "pending_approval", token: "xxx"}
4. Agent polls check_approval(token) for status
5. Human approves/rejects via Dashboard or Telegram
6. Agent receives final result (approved/rejected/budget_exceeded)

Pruebas

# All tests with race detection
go test -race -count=1 ./...

# Integration tests only
go test -race -run TestIntegration -v ./...

# Coverage
go test -race -cover ./...

Stack tecnológico

  • Go 1.24 — Lenguaje

  • mcp-go — SDK de Go para el protocolo MCP

  • Gin — Framework web (Panel de control)

  • modernc.org/sqlite — SQLite en Go puro (sin CGO)

  • zap — Registro estructurado

  • HTMX + Tailwind CSS — Frontend del panel de control

Licencia

MIT


中文

-
security - not tested
A
license - permissive license
-
quality - not tested

Latest Blog Posts

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/dygogogo/agent-guard-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server