Neurave9751/mcp-guard
GitHub: Neurave9751/mcp-guard
一款针对 MCP 服务器的静态安全扫描工具,可在部署前自动发现路径遍历、命令注入、代码注入、敏感信息泄露和供应链等五类安全漏洞。
Stars: 1 | Forks: 0
MCP Guard
MCP 服务器安全扫描器 — 在攻击者之前发现漏洞
快速开始 • 为什么需要? • 功能 • 规则 • 用法 • CI 集成
## 为什么需要? MCP (Model Context Protocol) 将 AI 模型连接到外部工具。GitHub 上有 **13,000 多个 MCP 服务器** —— 其中大多数在构建时并未经过安全审查。 MCP Guard 能够捕获的常见问题: - **路径遍历 (Path Traversal)** — AI 可以通过没有路径验证的文件服务器读取 `/etc/passwd` - **命令注入 (Command Injection)** — `exec(\`git ${userInput}\`)` 允许 AI 注入 shell 命令 - **代码注入 (Code Injection)** — 对工具输入使用 `eval()` = 远程代码执行 - **机密泄露 (Secret Leaks)** — 工具响应中返回的 `process.env.API_KEY` 会直接发送给 LLM - **供应链 (Supply Chain)** — 没有版本锁定的 `npx some-package` 会下载最新版本 ## 快速开始 ``` # 安装 pip install mcp-guard # 扫描你的 MCP 服务器(自动从 Claude, Cursor 配置中发现) mcp-guard scan # 扫描特定目录 mcp-guard scan ./my-mcp-server/ # 直接扫描配置文件 mcp-guard scan ~/.claude/settings.json ``` **一条命令。真实漏洞。零配置。** ## 功能 - **自动发现** — 从 Claude Code、Cursor 和标准配置文件中查找 MCP 服务器 - **Python + TypeScript** — 对 Python 进行基于 AST 的分析,对 TS/JS 进行模式匹配 - **17 条安全规则** 涵盖 5 个类别(路径遍历、命令注入、代码注入、机密泄露、供应链) - **精美的终端输出** — 由 Rich 驱动的报告,您会真正愿意去阅读 - **JSON 输出** — 使用 `--json` 传输到 CI、仪表板或其他工具 - **退出码** — 发现漏洞时以非零状态退出(非常适合 CI 门禁) - **零 MCP 依赖** — 静态扫描源代码,无需服务器运行时 ## 规则 | 类别 | 规则 | 严重程度 | |----------|-------|------------| | **Path Traversal** | `PATH-001` `PATH-002` `PATH-003` | CRITICAL, HIGH | | **Command Injection** | `CMD-001` `CMD-002` `CMD-003` `CMD-004` | CRITICAL, HIGH | | **Code Injection** | `CODE-001` `CODE-002` `CODE-003` `CODE-004` | CRITICAL, HIGH | | **Secret Leaks** | `ENV-001` `ENV-002` | MEDIUM, HIGH | | **Supply Chain** | `SUPPLY-001` `SUPPLY-002` `SUPPLY-003` `SUPPLY-004` | MEDIUM, HIGH | 查看包含完整描述的所有规则: ``` mcp-guard rules ``` ## 用法 ### 使用自动发现进行扫描 ``` # 从 ~/.claude/settings.json, .cursor/mcp.json 等发现服务器。 mcp-guard scan ``` ### 扫描特定路径 ``` # 包含 MCP 服务器源码的目录 mcp-guard scan ./servers/filesystem-server/ # 一个特定的配置文件 mcp-guard scan mcp.json # 多个路径 mcp-guard scan ./server-a/ ./server-b/ ./config.json ``` ### 按严重程度筛选 ``` # 仅 critical 和 high 严重级别 mcp-guard scan --severity high # 仅 critical mcp-guard scan --severity critical ``` ### 详细输出 ``` # 显示描述和修复建议 mcp-guard scan --verbose ``` ### JSON 输出 ``` # 机器可读输出 mcp-guard scan --json # 通过管道传递给 jq mcp-guard scan --json | jq '.findings[] | select(.severity == "CRITICAL")' ``` ## CI 集成 ### GitHub Actions ``` name: MCP Security on: [push, pull_request] jobs: mcp-guard: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: actions/setup-python@v5 with: python-version: "3.12" - run: pip install mcp-guard - run: mcp-guard scan . --severity high ``` MCP Guard 在发现漏洞时以退出码 1 退出,使其成为天然的 CI 门禁。 ### Pre-commit 钩子 ``` # .pre-commit-config.yaml repos: - repo: local hooks: - id: mcp-guard name: MCP Guard Security Scan entry: mcp-guard scan language: python additional_dependencies: [mcp-guard] pass_filenames: false ``` ## 工作原理 1. **发现** — 读取 MCP 配置文件(Claude Code、Cursor、通用)以查找服务器定义 2. **源代码分析** — 使用 AST 解析 Python 文件,使用模式匹配扫描 TypeScript/JavaScript 3. **配置分析** — 检查服务器配置中的供应链风险(未锁定的包、shell 执行) 4. **报告** — 按严重程度输出发现的问题并提供修复建议 MCP Guard 是一个**静态分析工具** —— 它读取的是源代码,而不是运行中的服务器。无需 MCP 运行时。 ## 许可证 [MIT](LICENSE) — 可在任何地方使用,没有任何附加条件。
旨在让 MCP 生态系统更加安全。
如果这对您有帮助,请给它一个 Star —— 这也有助于其他人发现它。
标签:AI安全, AI工具安全, Chat Copilot, CISA项目, GitHub项目, GraphQL安全矩阵, MCP服务器, Model Context Protocol, Python, WAF测试, 命令注入, 大模型安全, 安全专业人员, 安全合规, 安全扫描器, 安全检测工具, 安全防护, 数据可视化, 无后门, 网络代理, 网络安全, 网络安全审计, 自动化payload嵌入, 路径遍历, 逆向工具, 隐私保护, 静态应用安全测试(SAST)