关于 mcp-audit
mcp-audit 是用于审查本机 MCP 服务配置及其公开能力的命令行工具,面向希望检查配置风险的个人和 CI 流程。它提供静态检查、可选连接检查及基线变更对比,结果是审查线索而非安全结论。
主要功能
- 01静态审查 MCP 配置
- 02列出服务公开的工具
- 03为发现项评分并提供证据
- 04比较已保存的基线
- 05生成 JSON、SARIF 和 HTML 报告
- 06按本地策略评估配置
适用场景
- 01检查单个 MCP 配置文件
- 02在 CI 中生成 SARIF 报告
- 03比较服务配置与已保存基线
- 04依据本地策略审查配置
MCP 相关
它检查 MCP 服务配置,并可选择连接服务以列出其公开的工具元数据。默认检查为静态模式;连接检查可能启动本地程序或联系配置的端点。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
13收录的工具列表 · 更新于 2 周前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| skip_connect | boolean | 否 |
详细介绍
mcp-audit
查看你的 AI 工具的 MCP 服务能够访问哪些内容。
MCPAudit 会检查 MCP 服务配置,并在收到请求时列出服务公开的工具。它会突出显示已声明的能力、类似指令文本的特征,以及与已保存固定项相比的变化,帮助你判断需要进一步调查的内容。发现结果仅供审核参考:分数较高表示暴露的能力范围较广,并不意味着服务是恶意或不安全的。
重要
软件包名为
mcp-audits;命令名为mcp-audit。 默认检查为静态检查。check --connect、--connect-all和旧版命令scan可能会启动已配置的本地程序或联系已配置的端点。软件包验证、下载和大模型分析都是单独选择启用的操作。 MCPAudit 不会编辑配置,并且只会报告环境变量的键名, 不会报告其值。分享生成的报告前,请先检查报告内容。
立即试用
mcp-audit # static review of supported configs
mcp-audit check --config ./mcp.json # review this file only; no connections
mcp-audit demo # see a bundled synthetic example
mcp-audit explain MCP007 # explain a finding offline; no config reads
使用 uv 安装:
uv tool install mcp-audits
或在不安装的情况下运行:
uvx --from mcp-audits mcp-audit demo
如何处理发现结果
先查看建议的操作,并检查其中提到的能力或证据。 例如,如果文件系统服务可以广泛写入,请限制其配置的目录,然后重新检查报告。基于模式的指令检查可能无法识别经过改写或混淆的文本,也可能需要人工审核。报告没有问题,并不代表获得了安全认证。
Review the server's configured access, narrow it if needed, then run the check again.
请参阅从这里开始了解引导式演练,并参阅阅读结果以理解分数、发现结果和覆盖范围。工作原理介绍了检查边界。
每条规则的含义、可能的后果、手动修复方法和置信度限制均列于发现结果参考;运行 mcp-audit explain MCP013 可离线打印同一条目。显式指定的 --config 来源会标记为
"explicit file; parsed as Claude-style config";解析器的标识并不能确定哪个客户端使用了该文件。
静态工具元数据检查还会标记格式错误的 MCP 标头注释、映射到标头的凭据参数、外部架构引用和意外的图标来源。这些检查只检查已提供的元数据,不会获取架构或图标。
在 CI 中使用
MCPAudit 可以生成 SARIF,并评估本地策略文件。请先从仅检查配置的 CI 开始,然后仅在工作流需要启动这些服务时启用连接检查。请参阅 CI 指南和策略示例。
对于固定版本的发布示例,组合式 Action 可以将 SARIF 上传到 GitHub 代码扫描:
- uses: saagpatel/[email protected]
发布检查清单会指出 Action 引用,以便维护者在有新的公开版本时更新示例。启用该 Action 前,请检查其权限和输入。
选择审查路径
| 目标 | 起始点 | 功能 |
|---|---|---|
| 了解输出 | mcp-audit demo | 使用随附的合成输入 |
| 审查单个文件 | mcp-audit check --config FILE | 对所选配置执行静态检查 |
| 制作分享卡片 | mcp-audit checkup --config FILE --card checkup.html | 生成仅含计数的本地 HTML 预览 |
| 查看发现的来源 | mcp-audit inspect | 列出身份和来源状态 |
| 检查单个服务 | mcp-audit check --connect --server ID | 连接到一个无歧义的身份 |
| 检查整个服务群 | mcp-audit check --connect-all | 连接到工作站服务;若要包含项目,请添加 --connect-project-configs |
| 自动执行策略 | mcp-audit check --policy FILE | 评估本地策略 |
| 审查已保存的固定项 | mcp-audit pin --status | 显示基线状态;pin 是 baseline pin 的可见别名 |
服务 ID 的格式为 CLIENT:SCOPE:NAME;请使用 inspect 输出的确切身份,避免选择不明确。连接检查可能会启动已配置的本地命令,或联系相应端点。
默认情况下,checkup 会生成一张仅含计数、不含名称的本地分享卡片;详见
checkup 指南。
将证据置于上下文中
基于配置的发现描述的是声明的访问权限。连接后列出的信息会补充服务提供的工具元数据,但无法证明服务之后会执行什么操作。连接的 HTTP 扫描还会发送一个不含凭据的
server/discover 请求;若返回 401,则会审查范围受限的公开授权
元数据。探测不会使用配置中的标头值,也不会在使用 --skip-connect 时运行,或在未明确选择连接的项目来源上运行。
这些观察结果无法证明 OAuth 流程已完成。可选的金丝雀测试范围受限,只会在其文档规定的限制内测试符合条件的工具。有关这些观察结果的界限,请参阅工作原理。
报告可能包含配置结构、工具名称和证据文本。机密信息脱敏只能尽力而为(已知问题);分享报告前请先审查。解析时会完整读取配置,但解析过程中会丢弃环境变量值,且绝不会在报告中呈现;报告会保留键名以提供上下文。输出约定列出了稳定字段以及这些输出的限制。
状态
技术栈
MCPAudit 使用 Python 3.11+、uv、pytest、Ruff 和 mypy。JSON、SARIF 和 HTML 报告都是有版本管理的公开接口。提交更改前请运行 make check。
已知风险
静态发现描述的是已配置的访问权限和服务的元数据;无法证明服务之后的行为。机密信息脱敏只能尽力而为。有关此版本的兼容性变更,请参阅3.0 边界提案。
后续计划
本地更改请使用明确的合成测试夹具,保留只读默认设置,并确保覆盖率声明与已完成的检查相符。待 rpds-py/PyO3 锁文件刷新后,重新启用 Python 3.15。3.0 软件包拆分和弃用接口移除仍是计划中的工作。
更多文档
了解固定基线、影子审查、
抑制发现项、信任包指南、
MCP 信任包、输出约定和
沙盒测试夹具。请参阅文档索引、实验项目、
maintainers/ 中的维护者流程,以及 archive/ 中的旧资料。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。