用途
mcp-drill 用于对 MCP(Model Context Protocol)服务器和 AI 智能体进行故障注入与可靠性测试。真实 MCP 部署会出现集成测试从未覆盖的失败方式:工具超时、服务器返回格式正确但内容错误的载荷、响应在流中途被截断。大多数智能体从未针对这些路径进行过演练,mcp-drill 让这些失败路径变得可复现。
主要能力
- 故障注入:确定性地注入超时、畸形/超大/截断响应、损坏但符合 schema 的载荷、丢失的工具以及延迟。
- CI 优先:提供 CLI 和 GitHub Action,循环中无需真实模型或 API 密钥。
- 可靠性评分卡:无模型的扫描,评估服务器如何响应错误输入,以及其工具输出契约的可机器校验程度。
测量内容(无模型)
scan 命令是确定性的,不涉及语言模型,因此其数值是服务器和协议本身的属性,而非取决于恰好调用它的某个智能体:
- 错误一致性:对无效请求(未知方法、未知工具、缺少必需参数),服务器是返回符合规范的 JSON-RPC 错误、正确的工具错误,还是挂起/崩溃/像什么都没发生一样作答?
- 输出契约覆盖率:服务器的工具中声明了可机器校验的 outputSchema 的比例。没有声明的工具让下游校验器无从检查。
- 输出契约可执行性:在声明了 outputSchema 的工具中,有多少会真正拒绝损坏(类型正确但内容错误)的响应?许多声明的 schema 只校验形状,因此损坏的载荷仍能通过服务器自身的契约。
使用方式
用一条命令包裹任意 MCP 服务器即可开始。项目提供 CLI 和 GitHub Action。代理/注入器核心为纯标准库;schema 评分使用 jsonschema(scan extra)。遥测关闭,工具不会回传数据。
适用场景
- 在 CI 中测试 MCP 服务器的失败路径,无需真实 LLM。
- 评估 MCP 服务器对错误输入的响应是否符合规范。
- 检查工具输出契约的覆盖率与可执行性。
限制与说明
项目处于早期开发阶段。许可证为 Apache-2.0。关于 mcp-drill(契约合规)与 mcp-scan(安全)的区别,可参见相关对比说明。