rodolfboctor/mcp-scan
GitHub: rodolfboctor/mcp-scan
面向 MCP 服务器的本地安全扫描器,识别密钥、配置与供应链风险并输出合规报告。
Stars: 22 | Forks: 3
# mcp-scan
[](https://github.com/rodolfboctor/mcp-scan/actions/workflows/ci.yml)
[](https://badge.fury.io/js/mcp-scan)
[](https://www.npmjs.com/package/mcp-scan)
[](https://opensource.org/licenses/MIT)
[](https://github.com/rodolfboctor/mcp-scan/stargazers)
**面向模型上下文协议(MCP)服务器的开源安全扫描器。**
MCP 服务器以完全访问您的文件系统、API 密钥和网络权限运行。mcp-scan 会审计系统上每个 MCP 服务器配置,在问题发生前检测泄露的密钥、提示注入风险、供应链漏洞以及数据流问题。
```
npx mcp-scan@latest
```
无需安装。无需注册。无遥测。扫描期间零网络请求。
## 为什么选择 mcp-scan?
MCP 服务器已成为 AI 驱动开发的新攻击面。它们在与 AI 工具并行运行时拥有 Shell 访问权限、文件系统权限和网络出口权限。单个恶意或配置错误的服务器可能外泄 API 密钥、向 AI 会话注入指令,或成为供应链入口点。
mcp-scan 在分析了数百个公开可用的 MCP 服务器配置后构建而成,发现了现有安全工具遗漏的模式:凭证中继、通过工具描述进行的提示注入、流行包附近的拼写劫持,以及发送到意外端点的数据。
**已在 [Stytch Engineering Blog](https://stytch.com/blog/npm-audit-for-mcp-security)** 中报道:*“MCP 安全的 npm-audit:mcp-scan 深度解析”*
## 它能检测到什么?
| 检查项 | 严重等级 | 描述 |
|--------|----------|------|
| 数据外泄 | CRITICAL | 工具读取文件系统/数据库/剪贴板并将数据发送到网络端点 |
| 凭证中继 | CRITICAL | 环境变量或密钥被传递给外部 API 或进程 |
| 已知恶意包 | CRITICAL | 配置引用已知不良列表中的包 |
| 暴露的密钥 | CRITICAL | 配置中的硬编码 API 密钥、令牌或密码 |
| 提示注入 | HIGH | 嵌入在工具名称或描述中的指令 |
| 混淆网络 | HIGH | 服务器使用 base64、十六进制或反转的 URL 隐藏端点 |
| URL 中的数据外泄 | HIGH | 通过 URL 查询参数中的长字符串可能外泄数据 |
| 拼写劫持 | HIGH | 包名与受信任的流行包高度相似 |
| 供应链风险 | HIGH | 低信任度、无历史、无星标或无维护者的包 |
| PII 泄露 | HIGH | 服务器在无适当控制的情况下处理敏感个人数据 |
| 版本过时 | MEDIUM | 安装版本存在已知漏洞 |
| 权限过度 | MEDIUM | 服务器请求超出所需的文件系统或 Shell 访问权限 |
| 遥踪追踪 | MEDIUM | 服务器联系已知分析或追踪域 |
| 隐私缺陷 | MEDIUM | 缺少数据保留、删除或静态加密策略 |
| 未验证来源 | LOW | 包非来自已验证的注册表或组织 |
| 数据最小化不足 | LOW | 工具请求的数据字段远多于必要 |
| 缺少传输加密 | LOW | MCP 服务器通过未加密传输通信 |
## 支持的 AI 工具
mcp-scan 会自动检测 **16+** 种 AI 工具客户端的配置:
| 类别 | 工具 |
|------|------|
| **AI 助手** | Claude Desktop、Claude Code、Gemini CLI、Codex CLI |
| **编辑器** | VS Code、Cursor、Windsurf、Zed |
| **AI 编码工具** | Cline、Roo Code、Continue、Amp、Plandex |
| **其他** | ChatGPT Desktop、GitHub Copilot |
## v2.0 新特性
- **数据流分析** — 追踪 MCP 处理后数据的流向
- **网络出口监控** — 查看服务器联系的所有端点
- **隐私评估** — 一键生成 PII 与合规报告
- **策略引擎** — 通过 `.mcp-scan-policy.yml` 定义自定义安全规则
- **合规映射** — SOC 2、GDPR、HIPAA、PCI-DSS、NIST 800-53
- **SBOM 生成** — CycloneDX 与 SPDX 格式输出
- **GitHub 集成** — 每个 PR 触发扫描,并通过 SARIF 2.1.0 上传结果到 GitHub 安全面板
- **17+ 扫描器** — 密钥、供应链、提示注入、数据流等
## 全部命令
```
# 完整安全扫描(自动检测所有 AI 工具配置)
npx mcp-scan@latest
# 输出 JSON 以用于 CI/CD 流水线
npx mcp-scan@latest --json
# 隐私影响评估和数据地图
npx mcp-scan@latest privacy
# 合规报告(SOC 2、GDPR、HIPAA、PCI-DSS、NIST 800-53)
npx mcp-scan@latest compliance
# 软件物料清单(CycloneDX 或 SPDX)
npx mcp-scan@latest sbom
# 验证自定义安全策略
npx mcp-scan@latest policy
# CI 模式 — 如果发现结果超过阈值则退出 1
npx mcp-scan@latest --ci --severity-threshold HIGH
```
## GitHub Actions 集成
将 mcp-scan 添加到 CI 流水线。结果将通过 SARIF 2.1.0 在 **GitHub 安全面板** 中显示:
```
steps:
- uses: actions/checkout@v4
- name: Scan MCP configurations
uses: rodolfboctor/mcp-scan@v2
with:
severity-threshold: MEDIUM
sarif-upload: true
```
## 自定义安全策略
在 `.mcp-scan-policy.yml` 中定义自己的规则:
```
rules:
- name: no-external-endpoints
description: Block servers contacting endpoints outside your org domain
match:
network_egress:
not_in_domain: "*.mycompany.com"
severity: HIGH
- name: require-approved-packages
description: Only allow packages from your approved list
match:
package:
not_in_allowlist: true
severity: CRITICAL
```
## 合规映射
| 框架 | 覆盖的控制项 |
|------|--------------|
| SOC 2 | CC6.1、CC6.6、CC6.7、CC7.1 |
| GDPR | Art. 25、Art. 32、Art. 33 |
| HIPAA | 164.312(a)(1)、164.312(e)(1) |
| PCI-DSS | 要求 6、要求 10、要求 11 |
| NIST 800-53 | CA-7、RA-5、SA-11、SI-2 |
## 隐私与安全架构
mcp-scan **完全在本地运行**。它从磁盘读取配置文件,在进程内执行所有分析,且不会将数据发送到任何外部位置。
- 扫描期间零网络请求
- 无需 API 密钥
- 数据不出本地机器
- 无需注册或登录
- 完全开源 — 可自行审计代码
## 路线图
- **v2.1** — 运行时监控
- **v2.2** — 沙箱执行
- **v2.3** — 实时告警
## 安装
无需安装即可使用(始终为最新版本):
```
npx mcp-scan@latest
```
全局安装:
```
npm install -g mcp-scan
mcp-scan
```
## 许可证
MIT — 由 [Abanoub Rodolf Boctor](https://thynkq.com/about) 与 [ThynkQ](https://thynkq.com) 共同开发
标签:AI工具安全, CVE漏洞, DNS重绑定攻击, GNU通用公共许可证, MCP, MITM代理, Node.js, npm包扫描, SEO: CVE检测, SEO: mcp-scan, SEO: MCP服务器, SEO: 安全扫描器, SEO: 密钥检测, SEO: 权限审计, 云安全监控, 安全扫描, 提示注入, 时序注入, 权限问题, 模型上下文协议, 终端安全, 自动化攻击, 配置文件审计, 集群管理, 零依赖, 静态分析