
mcp-audit-tool 的功能
mcp-audit-tool 是一款纯 Python 命令行安全分析器,用于分析模型上下文协议(MCP)客户端配置。它可以静态扫描 Claude Desktop、Cursor、Windsurf、Cline、Zed 和 VS Code 等客户端使用的配置。
MCP 服务器可以读取文件、执行命令、访问凭据,并向 AI 助手提供工具。一条不安全的配置项就可能暴露机密信息、授予过宽的文件系统访问权限、下载不受信任的软件包,或将指令注入模型上下文。该审计工具可帮助你在 MCP 服务器运行前识别这些风险。
该工具不需要 Node.js、Docker 或 LLM API 密钥。它支持 Python 3.9 及更高版本,并可生成终端、JSON 和 SARIF 2.1.0 报告。
主要功能
- 自动发现 macOS、Linux 和 Windows 上受支持的 MCP 配置。
- 检查 12 条安全规则,覆盖机密信息、命令执行、权限、传输、身份验证、工具投毒和供应链风险。
- 计算安全评分,并给出从 A+ 到 F 的等级。
- 为发现的问题提供可执行的修复建议。
- 导出机器可读的 JSON 和 SARIF 报告。
- 支持基于严重程度的构建失败,用于 CI/CD 流水线。
- 使用可扩展规则引擎,便于添加未来的检查项。
安装与设置
选项 1:macOS 和 Linux 安装程序
README 提供了以下适用于 macOS 和 Linux 的一行安装命令:
mkdir -p 'mcpaudittool' && cd 'mcpaudittool' && npm install github:graygnatconsole/mcp-audit-tool安装程序会检查 Python 3.9 或更高版本;如果 Homebrew 可用,则通过 Homebrew 设置 pipx,并在隔离环境中安装命令行工具。如有需要,请先在全新的 Mac 上安装 Apple 命令行工具:
xcode-select --install选项 2:pipx
对于任何受支持的平台,推荐使用 pipx 安装:
pipx install git+https://github.com/graygnatconsole/mcp-audit-tool.git选项 3:pip
你也可以将软件包直接安装到 Python 环境中:
pip install git+https://github.com/graygnatconsole/mcp-audit-tool.git选项 4:从源代码安装
克隆代码仓库,并以可编辑模式安装开发依赖项:
git clone https://github.com/graygnatconsole/mcp-audit-tool.git
cd mcp-audit-tool
pip install -e ".[dev]"运行首次审计
安装完成后,不带路径运行扫描器,即可自动发现计算机上的 MCP 配置:
mcp-audit scan若要扫描某个特定配置,请将其路径作为参数传入:
mcp-audit scan ~/.cursor/mcp.json代码仓库还包含一个专门设置为存在漏洞的示例,可用于测试:
mcp-audit scan examples/vulnerable-claude-config.json终端报告包含总体评分、等级、服务器和配置文件数量、严重程度统计、受影响的服务器、规则标识符以及建议的修复措施。较差的结果可能会指出硬编码凭据、不安全的 shell 命令、未固定版本的软件包、范围过大的文件系统路径、不安全的远程端点或可疑的工具描述。
了解自动配置发现
未提供文件路径时,该工具会在受支持的 MCP 客户端常见位置中进行搜索。示例包括:
- macOS、Linux 和 Windows 上应用程序支持目录中的 Claude Desktop 配置。
- Cursor 的
~/.cursor/mcp.json。 - macOS 上 Windsurf 的
~/.codeium/windsurf/mcp_config.json。 - 相关 VS Code 全局存储目录中的 Cline 设置。
- macOS 和 Linux 上 Zed 的
~/.config/zed/settings.json。 - 项目级文件,例如
.vscode/mcp.json、.cursor/mcp.json、.mcp.json和mcp.json。
如果希望明确控制审计范围,请传入确切的配置文件,而不要依赖自动发现。
查看检测规则
使用 rules 命令列出可用的检查项:
mcp-audit rules内置规则包括:
- MAT-001:服务器环境变量中的硬编码 OpenAI、Anthropic、GitHub、AWS、Slack、Google 或私钥机密信息。
- MAT-002:传递给服务器进程的敏感主机环境变量。
- MAT-003:未固定版本的
npx、uvx或pipx软件包,可能造成 rug-pull 和供应链风险。 - MAT-004:将
curl或wget的输出通过管道传给 shell。 - MAT-005:危险命令,例如
rm -rf、sudo、chmod 777或eval。 - MAT-006:会增加命令注入风险的 shell
-c包装器。 - MAT-007:根目录为
/、~或$HOME的文件系统服务器。 - MAT-008:使用明文 HTTP 的远程 MCP 服务器。
- MAT-009:未配置身份验证的远程 MCP 服务器。
- MAT-010:工具描述中的隐藏指令迹象,可能表明存在工具投毒。
- MAT-011:被放入自动批准列表的破坏性工具。
- MAT-012:通配符
*权限。
生成 JSON 和 SARIF 报告
当其他脚本或安全流程需要使用检测结果时,请使用 JSON:
mcp-audit scan --format json --output report.json对于 GitHub Code Scanning 和其他兼容 SARIF 的系统,请生成 SARIF 2.1.0 文件:
mcp-audit scan --format sarif --output results.sarif当终端输出不足以满足需求时,这些格式非常有用,例如定期审计、仪表板、拉取请求检查或集中式安全报告。
对严重发现使构建失败
使用 --fail-on,当发现达到或超过严重性阈值时,让命令返回失败状态:
mcp-audit scan --fail-on high文档中列出的退出代码如下:
- 0:扫描完成,且没有达到或超过所选阈值的发现。
- 1:一个或多个发现达到或超过所选阈值。
- 2:发生使用错误,例如文件缺失、解析错误或选项无效。
将审计集成到 GitHub Actions
你可以在推送和拉取请求期间审计项目级 MCP 文件,然后将结果上传到 GitHub 的 Security 选项卡:
name: MCP Security Audit
on: [push, pull_request]
permissions:
security-events: write
jobs:
mcp-audit:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: "3.12"
- run: pipx install git+https://github.com/graygnatconsole/mcp-audit-tool.git
- name: Audit MCP configs
run: mcp-audit scan .vscode/mcp.json .cursor/mcp.json --format sarif --output results.sarif
- name: Upload to GitHub Code Scanning
uses: github/codeql-action/upload-sarif@v3
with:
sarif_file: results.sarif该工作流授予 security-events: write 权限,扫描选定的配置文件,并通过 GitHub 的 CodeQL 操作上传生成的 SARIF 文件。
高级用法和修复建议
在允许运行服务器前进行审计
每当添加或更新 MCP 服务器配置时,都应运行审计。对于使用 npx 或 uvx 等软件包运行器的条目,这一点尤其重要,因为未固定版本的软件包可能在不同启动之间发生变化。
关注严重发现
严重发现包括硬编码密钥、管道传输到 shell 的安装程序以及工具投毒指标。将暴露的凭据移至密钥管理器,并立即轮换这些凭据。下载安装程序脚本进行审查,固定其校验和,并执行经过审查的本地副本,而不是直接将远程内容通过管道传入 shell。
减少权限
将文件系统服务器限制在所需的最小目录范围内,而不是授予 /、~ 或 $HOME 的权限。用范围明确的权限替代通配符权限,并在将破坏性工具加入自动批准列表前进行审查。
保护远程服务器
优先使用安全传输,而不是明文 HTTP,并为远程 MCP 服务器配置身份验证。扫描器会标记不安全的传输和缺少身份验证的情况,避免远程访问默认处于暴露状态。
将规则引擎作为起点
该项目称其规则引擎具有可扩展性:添加新规则只需一个小型函数。如果你的组织有其他 MCP 安全要求,请先查看代码库的贡献指南,再实现并贡献新规则。
结语
mcp-audit-tool 为 MCP 客户端配置提供了实用的初步安全检查。使用 pipx 安装它,扫描自动发现或明确指定的文件,检查评分和修复建议,并在集成自动化流程时导出 JSON 或 SARIF。将扫描添加到 CI 中,有助于在 AI 助手执行不安全的 MCP 更改前及时发现问题。
