mcp-audit-gateway
mcp-audit
Ваш ИИ-агент вчера совершил 847 вызовов инструментов. Можете ли вы проверить, что он делал?
Защищённый от вмешательства журнал аудита для вызовов инструментов ИИ-агента.
Настройка (10 секунд)
До:
{
"command": "npx",
"args": ["@modelcontextprotocol/server-github"]
}После:
{
"command": "npx",
"args": ["mcp-audit", "wrap", "--", "npx", "@modelcontextprotocol/server-github"]
}Теперь каждый вызов инструмента криптографически подписан и связан хеш-цепочкой. Больше ничего не меняется. MCP-сервер работает точно так же, как и раньше.
Related MCP server: DCL Evaluator
Что это делает
$ 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 e5f6a7b8Каждая запись подписана с помощью HMAC-SHA256 и связана с предыдущей записью. Внесите изменения в любую запись — и проверка не пройдёт. Удалите запись — и цепочка разорвётся.
Проверка целостности
$ mcp-audit verify ~/.mcp-audit/audit.jsonl
Results:
Total records: 847
Valid: 847
Invalid: 0
All records verified successfully.Как это работает
┌────────────┐ ┌───────────┐ ┌────────────┐
│ MCP Client │──────▶│ mcp-audit │──────▶│ MCP Server │
│ (Claude, │◀──────│ wrap │◀──────│ (any) │
│ Cursor) │ └─────┬─────┘ └────────────┘
└────────────┘ │
▼
~/.mcp-audit/
audit.jsonlКоманда wrap запускает ваш MCP-сервер как дочерний процесс и располагается между клиентом и сервером на stdio. Она прозрачно пересылает ВСЕ сообщения. Только ответы tools/call подписываются и записываются в журнал. Всё остальное проходит без изменений.
При первом запуске ключ подписи автоматически генерируется в ~/.mcp-audit/key.hex. Никакой настройки не требуется.
Формат записи аудита
{
"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..."
}attestation — это подпись HMAC-SHA256 по каноническим полям записи. previousHash — это SHA-256 предыдущей записи. Вместе они обнаруживают вмешательство, нарушение порядка и неполноту.
Использование с 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"]
}
}
}Использование с Claude Code
.claude/hooks/mcp-servers.json или напрямую в команде вашего MCP-сервера — добавьте префикс 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 pairПолный режим шлюза
Для команд, которым также нужны контроль доступа, ограничение скорости и маршрутизация между несколькими серверами:
mcp-audit serve gateway.config.jsonПолный шлюз добавляет:
Политический движок (ACL на основе glob, ограничения скорости для каждого принципала)
Пространства имён инструментов для нескольких вышестоящих MCP-серверов
Экспорт трассировок и метрик OpenTelemetry
Управление работоспособностью вышестоящих серверов с автоматическим переподключением
Подписи Ed25519 (сильнее, чем HMAC, переносимая проверка)
См. конфигурацию шлюза для полной схемы.
Установка
npm install -g @mcp-audit-gateway/coreЭто устанавливает CLI mcp-audit глобально. Или используйте без установки:
npx @mcp-audit-gateway/core wrap -- <your mcp server command>Слой аттестации
Подсистема подписи и проверки выходит за рамки пофайлового HMAC. Она обеспечивает доказательство вмешательства при ротации журналов, восстановлении после сбоев и многофайловых цепочках.
Контрольные записи позволяют потребителю обнаружить усечение хвоста, сохраняя один хеш во внешнем хранилище. Цепочка продолжается при ротации файлов (без тихого сброса). Принудительные перезапуски создают подписанные записи chain_break вместо тихого начала с нуля.
Каноническая форма типизирована и инъективна, избегает проблемы форматирования чисел с плавающей запятой в JCS, полностью отвергая небезопасные числа, и доказала межъязыковую совместимость с помощью 46 конформационных векторов (JS + Python). См. SECURITY-DESIGN.md для полной спецификации и модели угроз.
Дифференциальное тестирование между SDK
MCP имеет 10 официальных SDK и не имеет меж-SDK конформационного тестирования. Мы создали дифференциальный стенд в стиле Wycheproof, который запускает 40 тестов на граничные случаи сериализации во всех 10 SDK и сообщает, где они расходятся.
Результаты: 26 расхождений на уровне проводов в 8 различных сериализаторах. Шесть различных представлений 1e20. Три несовместимых алгоритма упорядочивания ключей. TypeScript молча теряет точность целых чисел при 2^53+1. C# экранирует HTML-символы, которые не экранирует ни один другой SDK. Python SDK выдаёт разные байты в разных версиях pydantic-core для одного и того же пути кода.
./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 outputКанонизация аудиторского шлюза была разработана так, чтобы быть невосприимчивой ко всем 26 классам расхождений: только безопасные целые числа, явный порядок полей, отклонение суррогатов. См. SDK-AUDIT.md для полной таблицы расхождений и методологии.
Соответствие
Эта реализация удовлетворяет следующим свойствам (проверено межъязыковыми конформационными векторами и модульными тестами):
Инъективная каноническая форма (без коллизий дайджестов между типами)
Межъязыковая эквивалентность сортировки (порядок кодовых единиц UTF-16)
Отклонение непарных суррогатов
Непрерывность хеш-цепочки при ротации журналов
Обнаружение внедрённого состояния при запуске
Отсутствие ложных срабатываний после легитимного разрыва цепочки
Отказ при повреждённом или слишком большом входе
Сегментированная монотонность на границах chain_break
Полнота, закреплённая за потребителем, через контрольные записи
Инициализация с ограниченной памятью (лимит 1 МБ)
Соответствие APS action-ref-v1: 51/51 векторов пройдено (пересчёт JCS + сравнение дайджестов с отказом при ошибке).
Тестирование
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 testЛицензия
MIT
Фикстуры соответствия APS (test/vectors/aps-action-ref-v1-vectors.json)
адаптированы из исходников Apache-2.0. См.
test/vectors/SOURCE.md для сведений о происхождении и условиях.
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