一个基于 LangGraph ReAct 架构的 MCP(模型上下文协议)安全扫描工具,用于自动化检测 MCP 服务的安全漏洞。
npm install mcp-安全漏洞扫描器
fast模式:快速传送full模式:完整法学硕士 引导扫描pip install -r requirements.txt
推荐使用uv环境
uv init MCP
cd MCP
echo "3.13" > .python-version
uv venv
source .venv/bin/activate
uv add "mcp[cli]" httpx
python main.py
使用uv安装:uv run main.py
服务器默认运行在 `http://0.0.0.0:8000/sse`
通过 MCP 客户端(如 Cherry Studio/Kiro/Cursor/Trae)连接:
{
"mcpServers": {
"Security-Scanner": {
"url": "http://10.0.xx.xx:8000/sse"
}
}
}
无代币:
对该MCP进行安全扫描
http://xxx.xxx.xxx:7777/sse
有代币:
对该MCP进行安全扫描
https://xxx.xxx.xxx/mcp-servers/plant-monitor-getproductionorder/sse
Authorization=Bearer apikey-693xxxxxxxxxxxxx
├── agent.py # ReAct 智能体实现
├── config.py # 攻击载荷和检测规则配置
├── graph.py # LangGraph 工作流定义
├── llm.py # LLM 客户端(支持通义千问/Azure OpenAI)
├── server.py # FastMCP 服务器
├── state.py # 状态定义
├── task_manager.py # 异步任务管理器
├── tools.py # 安全检测工具函数
└── system_prompt.md # 系统提示词
在llm.py中配置 LLM 事业:
在config.py中国习俗中:
MCP_INJECTION_PAYLOADS:普遍攻击发票SENSITIVE_PATTERNS:敏感信息检测模式TOOL_TYPE_PATTERNS:工具类型识别规则| 漏洞类型 | 严重程度 | 说明 |
|---|---|---|
| 命令注入 | 批判的 | 检测系统命令执行 |
| 代码执行 | 批判的 | 检测任何代码执行 |
| SQL注入 | 高的 | 检测数据库注入 |
| SSRF | 高的 | 检测内网资源访问 |
| 路径游览 | 高的 | 检测文件系统访问 |
| 伊多尔 | 高的 | 检测越权访问 |
| 数据暴露 | 中等的 | 检测大量数据返回 |
| 敏感数据 | 高危/严重 | 检测 PII/HR/财务数据 |
| 硬编码储备 | 高的 | 检测架构中的备用 |
{
"status": "completed",
"target": "http://example.com/sse",
"risk_level": "HIGH",
"summary": {
"tools_discovered": 10,
"injectable_tools": 5,
"attacks_executed": 30,
"vulnerabilities_found": 3
},
"vulnerabilities_by_severity": {
"HIGH": {
"count": 2,
"details": [...]
},
"MEDIUM": {
"count": 1,
"details": [...]
}
}
}