mcp-audit-gateway
mcp-audit
Tu agente de IA hizo 847 llamadas a herramientas ayer. ¿Puedes verificar lo que hizo?
Registro de auditoría a prueba de manipulaciones para llamadas a herramientas de agentes de IA.
Configuración (10 segundos)
Antes:
{
"command": "npx",
"args": ["@modelcontextprotocol/server-github"]
}Después:
{
"command": "npx",
"args": ["mcp-audit", "wrap", "--", "npx", "@modelcontextprotocol/server-github"]
}Cada llamada a herramienta ahora está firmada criptográficamente y encadenada por hash. Nada más cambia. El servidor MCP funciona exactamente igual que antes.
Related MCP server: DCL Evaluator
Qué hace
$ mcp-audit tail
✓ 14:32:01 github/create_pr 234ms bf7a2f62
✓ 14:32:03 github/list_issues 89ms a1c4e890
✗ 14:32:05 fs/delete_file 12ms c3d9f012
✓ 14:32:08 github/merge_pr 456ms e5f6a7b8Cada entrada está firmada con HMAC-SHA256 y encadenada al registro anterior. Si manipulas cualquier entrada, la verificación falla. Si eliminas una entrada, la cadena se rompe.
Verificar integridad
$ mcp-audit verify ~/.mcp-audit/audit.jsonl
Results:
Total records: 847
Valid: 847
Invalid: 0
All records verified successfully.Cómo funciona
┌────────────┐ ┌───────────┐ ┌────────────┐
│ MCP Client │──────▶│ mcp-audit │──────▶│ MCP Server │
│ (Claude, │◀──────│ wrap │◀──────│ (any) │
│ Cursor) │ └─────┬─────┘ └────────────┘
└────────────┘ │
▼
~/.mcp-audit/
audit.jsonlEl comando wrap inicia tu servidor MCP como un proceso hijo y se sitúa entre el cliente y el servidor en stdio. Reenvía TODOS los mensajes de forma transparente. Solo las respuestas de tools/call se firman y registran. Todo lo demás pasa sin cambios.
En la primera ejecución, se genera automáticamente una clave de firma en ~/.mcp-audit/key.hex. No se necesita configuración.
Formato de registro de auditoría
{
"id": "bf7a2f62-4d0f-4cce-afd2-cbfbf7bca2a5",
"timestamp": "2026-08-16T14:32:01.000Z",
"method": "tools/call",
"toolName": "github/create_pr",
"args": {"title": "Fix bug", "body": "..."},
"durationMs": 234,
"success": true,
"previousHash": "8a3f2b...",
"attestation": "7c4d9e..."
}La attestation es una firma HMAC-SHA256 sobre los campos canónicos del registro. El previousHash es el SHA-256 del registro anterior. Juntos detectan manipulación, orden y completitud.
Uso con Claude Desktop
claude_desktop_config.json:
{
"mcpServers": {
"github": {
"command": "npx",
"args": ["mcp-audit", "wrap", "--", "npx", "@modelcontextprotocol/server-github"]
},
"filesystem": {
"command": "npx",
"args": ["mcp-audit", "wrap", "--", "npx", "@modelcontextprotocol/server-filesystem", "/tmp"]
}
}
}Uso con Claude Code
.claude/hooks/mcp-servers.json o directamente en el comando de tu servidor MCP — prefija con mcp-audit wrap --.
CLI
mcp-audit wrap -- <cmd> [args] # Wrap any MCP server
mcp-audit tail # Live stream of tool calls
mcp-audit verify <log> # Verify chain integrity
mcp-audit serve [config] # Full gateway (policy + OTel)
mcp-audit keygen [dir] # Generate Ed25519 key pairModo gateway completo
Para equipos que también necesitan control de acceso, limitación de velocidad y enrutamiento multi-servidor:
mcp-audit serve gateway.config.jsonEl gateway completo añade:
Motor de políticas (ACL basadas en glob, límites de velocidad por principal)
Espaciado de nombres de herramientas entre múltiples servidores MCP ascendentes
Exportación de trazas y métricas OpenTelemetry
Gestión de salud de servidores ascendentes con reconexión automática
Firmas Ed25519 (más fuertes que HMAC, verificación portátil)
Consulta configuración del gateway para el esquema completo.
Instalación
npm install -g @mcp-audit-gateway/coreEsto instala el CLI mcp-audit globalmente. O úsalo sin instalar:
npx @mcp-audit-gateway/core wrap -- <your mcp server command>Capa de atestación
El subsistema de firma y verificación va más allá del HMAC por registro. Proporciona evidencia de manipulación a través de rotación de registros, recuperación de fallos y cadenas de múltiples archivos.
Los registros de punto de control permiten que un consumidor detecte truncamiento de cola guardando un solo hash externamente. La cadena continúa a través de rotaciones de archivo (sin reinicios silenciosos). Los reinicios forzados emiten registros chain_break firmados en lugar de comenzar de nuevo silenciosamente.
La forma canónica está etiquetada por tipo y es inyectiva, evita el problema de formato de flotantes de JCS al rechazar números no seguros por completo, y ha demostrado paridad entre lenguajes mediante 46 vectores de conformidad (JS + Python). Consulta SECURITY-DESIGN.md para la especificación completa y el modelo de amenazas.
Pruebas diferenciales entre SDK
MCP tiene 10 SDK oficiales y no hay pruebas de conformidad entre SDK. Construimos un arnés diferencial estilo Wycheproof que ejecuta 40 pruebas de casos límite de serialización en los 10 SDK e informa dónde discrepan.
Resultados: 26 divergencias a nivel de cable en 8 serializadores distintos. Seis representaciones diferentes de 1e20. Tres algoritmos de ordenación de claves incompatibles. TypeScript pierde silenciosamente precisión de enteros en 2^53+1. C# escapa caracteres HTML que ningún otro SDK escapa. El SDK de Python produce bytes diferentes entre versiones de pydantic-core para la misma ruta de código.
./test/vectors/cross-sdk-diff.sh # full matrix (stdlib + SDK)
./test/vectors/cross-sdk-diff.sh --layer sdk # SDK-wire-level only
./test/vectors/cross-sdk-diff.sh --json # structured outputLa canonicalización del gateway de auditoría fue diseñada para ser inmune a las 26 clases de divergencia: solo enteros seguros, orden de campos explícito, rechazo de sustitutos. Consulta SDK-AUDIT.md para la tabla completa de divergencias y la metodología.
Conformidad
Esta implementación satisface las siguientes propiedades (verificadas mediante vectores de conformidad entre lenguajes y pruebas unitarias):
Forma canónica inyectiva (sin colisiones de resumen entre tipos)
Equivalencia de ordenación entre lenguajes (orden de unidades de código UTF-16)
Rechazo de sustitutos no emparejados
Continuidad de la cadena de hash a través de rotación de registros
Detección de estado plantado al inicio
Sin falsos positivos después de una ruptura de cadena legítima
Cierre seguro ante entrada corrupta o demasiado grande
Monotonicidad segmentada en los límites de chain_break
Completitud anclada al consumidor mediante registros de punto de control
Inicialización con memoria limitada (tope de 1MB)
Conformidad APS action-ref-v1: 51/51 vectores aprobados (recomputación JCS + comparación de resumen con cierre seguro).
Pruebas
npm test # unit tests
node test/vectors/verify-checkpoint.mjs # JS conformance vectors
python3 test/vectors/verify-checkpoint.py # Python conformance vectors
node test/vectors/aps-action-ref-v1.mjs # 51 APS vectors
./test/vectors/cross-sdk-diff.sh # 10-SDK differential testLicencia
MIT
Los fixtures de conformidad APS (test/vectors/aps-action-ref-v1-vectors.json)
están adaptados de fuentes upstream con licencia Apache-2.0. Consulta
test/vectors/SOURCE.md para la procedencia y los términos.
This server cannot be installed
Maintenance
Related MCP Servers
- AlicenseAqualityCmaintenanceEnables AI agents to sign decisions with post-quantum cryptographic proofs and maintain secure audit trails for compliance. It provides tools for stamping events, verifying chain integrity, and exporting audit data across industries like finance and healthcare.498MIT
- FlicenseNot gradedqualityCmaintenanceTamper-evident cryptographic audit trail for LLM outputs. Compliance logging for AI agent decisions.

evermint-mcpofficial
AlicenseNot gradedqualityDmaintenanceTamper-evident receipts for AI agent actions. The notary layer for agent-to-agent transactions.891MIT- AlicenseNot gradedqualityFmaintenanceProvides tamper-proof audit logging for AI agents using SHA-256 hash chains, integrity verification, and compliance reporting for the EU AI Act.1MIT
Related MCP Connectors
Bitcoin-anchored, tamper-evident audit log for AI agents — record, disclose and verify actions.
Hash-chained HMAC-signed audit log MCP for A2A (agent-to-agent) calls. Every tool-call, agent-ha...
Etch is a signed audit chain for AI agent decisions, offline-verifiable against pinned public keys.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/elang2/mcp-audit-gateway'
If you have feedback or need assistance with the MCP directory API, please join our Discord server