MCP Security Scanner

MCP Security Scanner

Automatically discovers and tests MCP services for security vulnerabilities including command injection, SQL injection, SSRF, path traversal, and sensitive data exposure with detailed reports and remediation guidance.

Category
访问服务器

README

MCP Security Scanner

一个基于 LangGraph ReAct 架构的 MCP (Model Context Protocol) 安全扫描工具,用于自动化检测 MCP 服务的安全漏洞。

功能特性

  • 自动化安全扫描:自动发现 MCP 服务暴露的工具并进行安全测试
  • 多种攻击检测
    • 命令注入 (Command Injection)
    • 代码执行 (Code Execution)
    • SQL 注入 (SQL Injection)
    • SSRF (Server-Side Request Forgery)
    • 路径遍历 (Path Traversal)
    • 越权访问 (IDOR)
    • 过度数据暴露 (Excessive Data Exposure)
    • 敏感业务数据泄露
    • 硬编码凭据检测
    • 工具描述注入
  • 智能 Payload 生成:根据工具类型和参数自动生成针对性测试载荷
  • 异步任务管理:支持后台扫描,实时查询进度
  • 双模式扫描
    • fast 模式:快速并发扫描
    • full 模式:完整 LLM 引导扫描
  • 详细报告:生成包含 POC 和修复建议的安全报告

安装

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 3.10+
  • langgraph
  • fastmcp
  • httpx
  • mcp

快速开始

启动 MCP 服务器

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"
    }
  }
}

1. 启动扫描

无Token:

对该MCP进行安全扫描
http://xxx.xxx.xxx:7777/sse

<img width="866" height="405" alt="image" src="https://github.com/user-attachments/assets/a442e603-6f1b-44af-8f58-e3b91f77db80" />

有Token:

对该MCP进行安全扫描
https://xxx.xxx.xxx/mcp-servers/plant-monitor-getproductionorder/sse
Authorization=Bearer apikey-693xxxxxxxxxxxxx

<img width="844" height="525" alt="image" src="https://github.com/user-attachments/assets/34cf3d8b-4860-41e6-8da2-b4c34d606d74" />

2. 查询进度

输入“继续”: <img width="831" height="769" alt="image" src="https://github.com/user-attachments/assets/342af922-3aca-42fa-b44f-6d360915c098" />

3. 获取结果

输入“获取扫描详情”: <img width="817" height="590" alt="image" src="https://github.com/user-attachments/assets/d836d428-5e57-4adf-bd4d-d19f9a0fc0a9" />

项目结构

├── 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 配置

llm.py 中配置 LLM 提供商:

  • 通义千问 (默认)
  • Azure OpenAI

攻击载荷

config.py 中自定义:

  • MCP_INJECTION_PAYLOADS:各类攻击载荷
  • SENSITIVE_PATTERNS:敏感信息检测模式
  • TOOL_TYPE_PATTERNS:工具类型识别规则

检测能力

漏洞类型 严重程度 说明
命令注入 CRITICAL 检测系统命令执行
代码执行 CRITICAL 检测任意代码执行
SQL 注入 HIGH 检测数据库注入
SSRF HIGH 检测内网资源访问
路径遍历 HIGH 检测文件系统访问
IDOR HIGH 检测越权访问
数据暴露 MEDIUM 检测大量数据返回
敏感数据 HIGH/CRITICAL 检测 PII/HR/财务数据
硬编码凭据 HIGH 检测 Schema 中的凭据

输出示例

{
  "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": [...]
    }
  }
}

许可证

MIT License

免责声明

本工具仅用于授权的安全测试。请勿用于未经授权的系统。使用者需自行承担使用本工具的所有风险和责任。

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选