关于 MCP Shield
MCP Shield 是面向开发者的开源扫描器,用于检查 MCP 服务代码和项目中的安全问题。它应用 20 条规则,提供带 CWE 参考和修复建议的问题报告,并给出 A–F 评级。
主要功能
- 0120 条安全规则
- 02SSRF 与路径遍历检查
- 03注入与身份验证检查
- 04关联 CWE 的问题报告
- 05修复建议
- 06A–F 安全评级
适用场景
- 01扫描 MCP 服务源文件
- 02检查项目中的安全风险
- 03查看问题与修复步骤
MCP 相关
MCP Shield 提供用于扫描文件、目录和代码的 MCP 工具,也可作为命令行工具运行。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
还没有获取到工具列表
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
MCP Shield
**用于 MCP 服务的开源安全扫描器。**涵盖 6 个类别的 20 条规则。几秒内扫描任意服务,并获得 A 到 F 的评级。
36.7% 的 MCP 服务存在 SSRF 漏洞(BlueRock,2026)。82% 存在路径遍历缺陷。只有 17% 达到生产就绪状态。MCP Shield 能在攻击者发现漏洞前将其找出。
快速开始
git clone https://github.com/sophiacave/mcp-shield
cd mcp-shield
# Scan a file
python3 src/cli.py scan path/to/mcp_server.py
# Scan a project
python3 src/cli.py scan path/to/mcp-project/
检查内容(20 条规则)
| 规则 | 严重程度 | 检测内容 |
|---|---|---|
| SSRF-01 | 严重 | HTTP 请求 URL 中的用户输入 |
| SSRF-02 | 中 | 未经验证的动态 URL |
| SSRF-03 | 中 | DNS 重绑定(已验证 URL,但未固定 IP) |
| PATH-01 | 高 | 文件路径中的用户输入 |
| PATH-02 | 中 | 缺少路径遍历防护 |
| PATH-03 | 中 | 未检查便跟随符号链接 |
| INJ-01 | 严重 | 对用户输入使用 eval/exec |
| INJ-02 | 严重 | SQL 字符串插值 |
| INJ-03 | 高 | subprocess 使用 shell=True |
| INJ-04 | 高 | 通过 .format() 进行模板注入 |
| INJ-05 | 严重 | 不安全的反序列化(pickle/yaml) |
| AUTH-01 | 中 | 工具处理程序未进行身份验证 |
| AUTH-02 | 严重 | 硬编码的机密/API 密钥(OpenAI、Stripe、GitHub、AWS) |
| AUTH-03 | 低 | 工具端点未进行速率限制 |
| SEC-01 | 高 | 禁用了 SSL 验证 |
| SEC-02 | 中 | 通配符 CORS |
| SEC-03 | 中 | 向客户端暴露堆栈跟踪/错误详情 |
| SEC-04 | 低 | 未验证输入长度(存在 DoS 风险) |
| LOG-01 | 低 | 未记录工具调用或建立审计跟踪 |
测试
python3 tests/test_integration.py
# 28 tests, 0 failures
MCP 服务集成
添加到 ~/.claude/mcp.json:
{
"mcpServers": {
"mcp-shield": {
"command": "python3",
"args": ["/path/to/mcp-shield/src/mcp_server.py"]
}
}
}
Claude Code 工具:shield_scan_file、shield_scan_directory、shield_scan_code
输出示例
MCP Shield: my-server/ — 3 finding(s)
[CRIT] SSRF-01: Potential SSRF: Dynamic URL from user input
requests call with dynamic URL that may include user input
Location: server.py:45
Fix: Validate URL against allowlist. Block internal IPs.
CWE: CWE-918
[HIGH] INJ-03: Command injection: subprocess with shell=True
subprocess called with shell=True. User input in args = RCE.
Location: tools.py:112
Fix: Use subprocess with shell=False and pass args as list.
CWE: CWE-78
[MED] AUTH-01: No authentication detected on tool handlers
MCP tool handlers found but no auth logic detected
Fix: Add authentication middleware.
CWE: CWE-306
Grade: F | 1 critical, 1 high, 1 medium
功能
- 零依赖 — 纯 Python,无需使用 pip 安装
- 20 条安全规则,涵盖 SSRF、路径遍历、注入、身份验证、配置和日志记录
- CWE 引用 — 每项发现都对应一个常见弱点枚举 ID
- 可操作的修复建议 — 每项发现都包含具体的修复步骤
- A-F 评级 — 即时评估安全状况
- 双模式 — 可作为命令行工具运行,也可作为 MCP 服务在 Claude Code 中运行
- 快速 — 扫描典型 MCP 服务耗时不到 1 秒
存在的原因
MCP 生态系统拥有 9,400 多个服务和每月 9,700 万次 SDK 下载。安全工具的发展未能跟上。我们开发 MCP Shield,是因为每个未经过安全扫描就部署的 MCP 服务都是一项安全隐患。
由 Like One 开发,这是一家 501(c)(3) 非营利组织。安全工具应该免费。
许可证
MIT — Like One
评论
支持 Markdown
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。