rodolfboctor/mcp-scan

GitHub: rodolfboctor/mcp-scan

面向 MCP 服务器的本地安全扫描器,识别密钥、配置与供应链风险并输出合规报告。

Stars: 22 | Forks: 3

# mcp-scan [![CI](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/f91b774e1e085325.svg)](https://github.com/rodolfboctor/mcp-scan/actions/workflows/ci.yml) [![npm version](https://badge.fury.io/js/mcp-scan.svg)](https://badge.fury.io/js/mcp-scan) [![npm downloads](https://img.shields.io/npm/dw/mcp-scan)](https://www.npmjs.com/package/mcp-scan) [![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](https://opensource.org/licenses/MIT) [![GitHub Stars](https://img.shields.io/github/stars/rodolfboctor/mcp-scan?style=social)](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: 权限审计, 云安全监控, 安全扫描, 提示注入, 时序注入, 权限问题, 模型上下文协议, 终端安全, 自动化攻击, 配置文件审计, 集群管理, 零依赖, 静态分析