mcp-audit-gateway 是一个用于 AI 智能体工具调用的防篡改审计追踪工具。其核心目标是回答“你的智能体昨天执行了 847 次工具调用,你能验证它做了什么吗?”这一问题。
用途:为 MCP 协议下的智能体工具调用提供可验证的审计日志。每一次工具调用都会被加密签名并链接到前一条记录,任何篡改都会导致验证失败,删除任何条目都会破坏链。
主要能力:wrap 模式会启动 MCP 服务器作为子进程,在客户端与服务器之间的 stdio 上透明转发所有消息,仅对 tools/call 响应进行签名和记录,其他消息原样传递。首次运行时自动生成签名密钥并保存于 ~/.mcp-audit/key.hex,无需配置。审计记录使用 HMAC-SHA256 对规范字段签名,previousHash 为前一条记录的 SHA-256,二者共同检测篡改、顺序和完整性。
网关模式面向团队,增加策略引擎(基于 glob 的 ACL、按主体的速率限制)、跨多个上游 MCP 服务器的工具命名空间、OpenTelemetry 链路与指标导出、上游健康管理与自动重连,并默认使用 Ed25519 非对称签名(也可使用 HMAC-SHA256)。
使用方式:可通过 npm 全局安装 mcp-audit CLI,或直接使用。与 Claude Desktop 集成时配置 claude_desktop_config.json;与 Claude Code 集成时可在 .claude/hooks/mcp-servers.json 中或直接在 MCP 服务器命令前加 mcp-audit wrap -- 前缀。
证明层:签名与验证子系统支持哈希链跨日志轮转、崩溃恢复和多文件链。检查点记录允许消费者通过外部存储单个哈希来检测尾部截断。强制重启会发出签名的 chain_break 记录,而非静默重新开始。规范形式采用类型标记且单射,拒绝不安全的数字,避免 JCS 浮点格式问题,并通过 46 个一致性向量(JS + Python)证明跨语言一致性。
跨 SDK 差分测试:项目构建了 Wycheproof 风格的差分测试工具,在 10 个官方 MCP SDK 上运行 40 个序列化边界测试,发现 8 个不同序列化器之间存在 26 处线级差异。例如 1e20 浮点数在六个 SDK 上产生六种不同字节表示。项目提供了工作流文件用于检测序列化回归,也可仅运行一致性向量(仅需 Node.js)。其规范化设计对所有 26 类差异免疫:仅安全整数、显式字段顺序、拒绝代理对。
局限性:官方文本未提供定价、收费或商业支持信息,暂未提供。其差异测试结果指出 MCP 缺乏跨 SDK 一致性测试,使用哈希链时需注意序列化差异风险。