mcpField
M
mcpaudit

mcpaudit

本地服务
github.com/CloudCorpRecords开发工具06 天前更新

关于 mcpaudit

mcpaudit 是用于检查 stdio MCP 服务的确定性命令行工具和 MCP 服务。它执行握手、验证工具元数据与架构、测试错误处理,并生成附带证据的评分报告。

主要功能

  1. 01执行 MCP 握手检查
  2. 02验证工具名称和描述
  3. 03检查输入架构的一致性
  4. 04测试不存在工具的错误处理
  5. 05生成附带证据的评分报告

适用场景

  1. 01发布前审计 MCP 服务
  2. 02检查客户端配置文件中的服务
  3. 03在 CI 中加入可重复的 MCP 检查
  4. 04离线验证 tools/list 响应

MCP 相关

mcpaudit 会像客户端一样启动并审计 stdio MCP 服务,也可审计 MCP 客户端配置项。它自身的 MCP 服务提供审计单个服务、配置文件或 tools/list 数组的工具。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"cloudcorprecords-mcpaudit": {
"command": "npx",
"args": [
"-y",
"@reneturcios/mcpaudit"
]
}
}
}
启动命令npx -y @reneturcios/mcpaudit

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npm@reneturcios/mcpaudit0.1.2
ocighcr.io/cloudcorprecords/mcpaudit:0.1.2

工具

3

收录的工具列表 · 更新于 5 天前

参数类型必填说明
envobject否服务器进程的额外环境变量
argsarray否命令参数,例如 ["-y", "@reneturcios/shipcheck", "mcp"]
commandstring是服务器启动命令,例如 npx 或 node
timeoutMsnumber否每个步骤的超时时间,单位为毫秒,默认值为 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

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。