agent-guard-mcp
agent-guard-mcp
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 |
| Consultar el estado del presupuesto de hoy |
| Ejecutar un gasto (detecta automáticamente el alto riesgo) |
| Solicitar explícitamente la aprobación humana |
| Aprobar un token pendiente |
| Rechazar un token pendiente |
| Consultar el estado de aprobación |
| Consultar el registro de auditoría con filtrado y paginación |
| 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.goDescargar binario precompilado
Descargue la última versión para su plataforma:
Plataforma | amd64 | arm64 |
macOS | ||
Linux | ||
Windows |
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 |
| Transporte: stdio / sse / http | Detección automática (TTY → http) |
| Límite de presupuesto diario (créditos) | 10.0 |
| Umbral de cantidad de alto riesgo | 2.0 |
| Palabras clave de recursos de alto riesgo (separadas por comas) | delete,send |
| Ruta de la base de datos SQLite | ./mcp-guard.db |
| Puerto HTTP del panel de control | 8080 |
| URL base para enlaces de aprobación | |
| Nivel de registro: debug/info/warn/error | info |
| Identidad del pagador | hostname |
| Token del bot de Telegram (opcional) | - |
| 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/sseIntegració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 |
| Punto de entrada, selección de transporte, apagado elegante |
| Servidor MCP con 8 herramientas registradas |
| Interfaz BudgetStore + implementación SQLite |
| Detección de alto riesgo, flujo de trabajo de aprobación, Telegram |
| Configuración del entorno, detección automática de transporte |
| Registro zap (modo stdio: solo archivo) |
| 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
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