关于 mcpaudit
mcpaudit 是用于检查 stdio MCP 服务的确定性命令行工具和 MCP 服务。它执行握手、验证工具元数据与架构、测试错误处理,并生成附带证据的评分报告。
主要功能
- 01执行 MCP 握手检查
- 02验证工具名称和描述
- 03检查输入架构的一致性
- 04测试不存在工具的错误处理
- 05生成附带证据的评分报告
适用场景
- 01发布前审计 MCP 服务
- 02检查客户端配置文件中的服务
- 03在 CI 中加入可重复的 MCP 检查
- 04离线验证 tools/list 响应
MCP 相关
mcpaudit 会像客户端一样启动并审计 stdio MCP 服务,也可审计 MCP 客户端配置项。它自身的 MCP 服务提供审计单个服务、配置文件或 tools/list 数组的工具。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
3收录的工具列表 · 更新于 5 天前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| env | object | 否 | 服务器进程的额外环境变量 |
| args | array | 否 | 命令参数,例如 ["-y", "@reneturcios/shipcheck", "mcp"] |
| command | string | 是 | 服务器启动命令,例如 npx 或 node |
| timeoutMs | number | 否 | 每个步骤的超时时间,单位为毫秒,默认值为 60000 |
详细介绍
mcpaudit
指向任意 MCP 服务。获取评分和证据。
MCP Registry 中的服务越来越多,却从未有人审计过。服务可能列出的工具没有描述(因此模型无法正确调用),模式自相矛盾(例如 required 中的字段根本不存在),或者——最危险的情况——调用不存在的工具时却愉快地返回成功。这些问题只有等到用户的 Agent 在生产环境中表现异常时才会暴露。
mcpaudit 会像真实客户端一样启动服务,执行完整握手,检查每个工具,故意发起一次错误调用,并输出一份带评分的报告,其中列出有明确名称且有证据支持的问题。整个审计过程不涉及任何大模型:所有检查都是确定且可重复的。
检查内容
| 检查项 | 验证内容 |
|---|---|
| 握手 | 服务是否完成 initialize,以及耗时多久 |
| 协议版本 | 协商出的版本是否存在且为此构建版本支持的版本 |
| 服务信息 | 是否提供 serverInfo.name 和 serverInfo.version |
| 工具名称 | 是否存在、唯一,并符合 MCP 对字符和长度的指导要求 |
| 描述 | 每个工具是否都有描述,描述是否足够详细,而非敷衍几个字,也不是只重复工具名称 |
| 输入模式 | 是否存在、是否为对象模式、properties 是否有效,以及 required 中的字段是否确实存在 |
| 参数文档 | 会标记参数全部没有描述的工具——模型会根据描述猜测参数的含义 |
| 错误处理 | 调用不存在的工具时,是否快速返回恰当的错误,且不会导致服务崩溃 |
| 提示词 / 资源 | 不会因服务没有工具而判定失败:如果服务声明了提示词或资源,mcpaudit 会列出它们,并按其实际类型进行审计 |
评分:从 100 分开始,每个错误扣 8 分,每个警告扣 3 分。判定结果:PASS(无问题)、WARN(可以运行,但问题会影响用户体验或正确性)、FAIL(存在错误级问题)、UNREACHABLE(握手未能完成——报告启动错误,不猜测评分)。
mcpaudit 审计 stdio 服务。远程(HTTP)服务——配置项中带有 url,或将 URL 作为命令传入——会标记为 UNREACHABLE 并说明原因,不会被静默跳过,也不会被启动。
0.1.1 新增功能,来自首次真实生产验证测试(对 25 个以上外部服务分别运行三次,并根据原始实际结果逐项人工核查):以 -- 开头的服务参数会原样传递(见“用法”),仅提供提示词或资源的服务可通过审计,默认的单步超时为 60s,因此不会将 npx/uvx 冷启动误判为服务失效,并且 --json 始终会输出一份可解析的文档。
用法
CLI
# Audit a server by its launch command
npx @reneturcios/mcpaudit audit npx -y @reneturcios/shipcheck mcp
npx @reneturcios/mcpaudit audit node dist/cli.js mcp
# Audit every server in an MCP client config (or one named entry)
npx @reneturcios/mcpaudit audit --config ~/.claude/claude_desktop_config.json
npx @reneturcios/mcpaudit audit --config ./mcp.json --server greenlight
# Server arguments that start with -- pass through untouched
npx @reneturcios/mcpaudit audit uvx mcp-server-git --repository /path/to/repo
# Use a literal -- to force everything after it into the server command
# (even flags that share a name with mcpaudit's own, like --timeout)
npx @reneturcios/mcpaudit audit node server.js -- --timeout 5000
# Quoted command line, machine-readable output, custom timeout
npx @reneturcios/mcpaudit audit --cmdline "npx -y @scope/pkg mcp" --json --timeout 30000
# Offline: validate a tools/list dump without launching anything
npx @reneturcios/mcpaudit tools tools.json
输出示例:
mcpaudit npx -y @reneturcios/shipcheck mcp: PASS (score 100/100, grade A)
server: shipcheck 0.1.0 · protocol 2025-11-25 · 3 tool(s) · initialize 1813ms · tools/list 16ms
error handling: bad tool call returned a proper error
No issues found.
PASS: handshake, schemas, and error handling all check out.
(这是一次真实运行,来自首批 MCP Server Index 种子数据,日期为 2026-10-22。 初始化时间从启动时开始计时,包括 npx 冷启动开销,报告中也会说明这一点。只有服务运行后响应缓慢,初始化缓慢才会计入评分:如果 tools/list 在 5s 内响应,那么超过 30s 的初始化时间会作为不计分的启动路径证据报告,因为这段时间耗在启动器或首次下载上。)
退出代码:PASS/WARN 返回 0,FAIL/UNREACHABLE 返回 1,用法错误返回 2——可用于 CI。
MCP 服务
添加到 MCP 客户端配置中:
{
"mcpServers": {
"mcpaudit": {
"command": "npx",
"args": ["-y", "@reneturcios/mcpaudit", "mcp"]
}
}
}
工具:
audit_server:从命令和参数启动并审计单个服务(可选环境变量和超时)。audit_config:审计配置文件中的所有服务,或某个指定条目。audit_tools:离线验证 tools/list 数组。
Docker
docker run -i ghcr.io/cloudcorprecords/mcpaudit mcp
docker run --rm ghcr.io/cloudcorprecords/mcpaudit audit node server.js mcp
MCP Server Index
mcpaudit 是不断扩展的公开数据集 MCP Server Index 背后的引擎:它使用已发布的二进制文件,对真实、已发布的 MCP 服务进行评分审计,并随着服务发布持续更新。首批数据来自作者自己的工具系列——因为审计别人之前,应先审计自己——存放在 100-packages workspace 中,并随着每一轮新增不断扩展。
工具集
mcpaudit 是该作者计划推出的一系列小型、用途单一的开发者工具中的 Wave 1、package 4。所有工具都以相同方式构建:一个二进制文件同时提供命令行和 MCP 服务,采用确定性检查并提供证据,不编造答案。
- greenlight:开源贡献的预检:这个问题真的可以合并吗?
- shipcheck:发布验证——git 标签、GitHub 发布、npm、MCP Registry 和 GHCR 必须全部一致,否则不予放行。
- cidiff:为 PR 比较基准分支与当前分支的 CI 差异。
- reprocheck:先验证问题可复现的工具。
- prwatch:为你尚未合并的 PR 提供关注事项报告。
- claimcheck:跟踪过时声明的状态,以及分叉仓库中搁置的修复。
- gatefile:提取隐藏的贡献门槛,生成机器可读的 contribution-gates.json。
- pkgverdict:npm 包的安装前判定:GO、RISKY、FAKE 或 MISSING。
开发
npm install
npm run build
npm test # validator/scoring unit tests + live probes against fixture servers
许可证
MIT
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。