README
🚀 MCP漏洞检查服务器
MCP漏洞检查服务器是一个模块化的模型上下文协议(MCP)服务器,提供全面的安全漏洞情报工具,包括CVE查询、EPSS评分、CVSS计算、漏洞利用检测以及Python包漏洞检查等功能。
🚀 快速开始
🔗 使用托管服务器
漏洞情报MCP服务器已托管并可直接使用!您只需配置MCP客户端以连接到该服务器。
Claude桌面配置
将以下配置添加到Claude桌面设置文件(~/.config/claude/claude_desktop_config.json)中:
{
"mcpServers": {
"vulnerability-intelligence": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-fetch"],
"env": {
"FETCH_URL": "https://vulnerability-intelligence-mcp-server-edb8b15494e8.herokuapp.com/sse"
}
}
}
}
Cursor IDE配置
将以下配置添加到Cursor MCP设置文件(~/.cursor/mcp.json)中:
{
"mcpServers": {
"vulnerability-intelligence": {
"url": "https://vulnerability-intelligence-mcp-server-edb8b15494e8.herokuapp.com/sse"
}
}
}
或者,在Cursor IDE中:
- 打开Cursor设置 → 功能 → MCP服务器
- 点击“添加新服务器”
- 选择“Server-Sent Events (SSE)”作为类型
- 输入URL:
https://vulnerability-intelligence-mcp-server-edb8b15494e8.herokuapp.com/sse - 为其命名:
vulnerability-intelligence
测试连接
配置完成后,您可以在Claude或Cursor中尝试以下示例查询:
- CVE查询:“查询CVE-2021-44228”(Log4Shell漏洞)
- EPSS评分:“获取CVE-2021-44228的EPSS评分”
- 包检查:“检查'requests' Python包是否存在漏洞”
- 漏洞利用检查:“检查CVE-2021-44228的漏洞利用情况”
- CVSS计算器:“计算向量CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H的CVSS评分”
✨ 主要特性
🔍 CVE漏洞查询 (cve_lookup)
- 用途:从国家漏洞数据库(NVD)获取详细的漏洞信息
- 数据源:NIST国家漏洞数据库API 2.0
- 用法:
cve_lookup cve_id="CVE-2021-44228" - 特性:
- 包含严重等级的CVSS评分(v2.0、v3.0、v3.1)
- 全面的漏洞描述
- 参考资料、安全公告和修复链接
- CWE(常见弱点枚举)映射
- 发布和修改时间线
- 受影响的产品配置
📊 EPSS评分查询 (get_epss_score)
- 用途:获取CVE的漏洞利用预测评分系统(EPSS)评分
- 数据源:FIRST EPSS API
- 用法:
get_epss_score cve_id="CVE-2021-44228" - 特性:
- 30天内被利用的概率
- 基于AI的风险优先级排序
- 实时威胁情报集成
- 用于相对风险评估的百分位排名
🧮 CVSS评分计算器 (calculate_cvss_score)
- 用途:根据向量字符串计算CVSS基础评分
- 数据源:CVSS v3.0/v3.1规范
- 用法:
calculate_cvss_score vector="CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H" - 特性:
- 支持CVSS v3.0和v3.1
- 详细的指标分解
- 严重等级映射(关键、高、中、低)
- 向量字符串验证和解析
🔎 漏洞搜索 (search_vulnerabilities)
- 用途:使用高级过滤功能搜索漏洞数据库
- 数据源:多个漏洞数据库(NVD、CVE)
- 用法:
search_vulnerabilities keywords="apache" severity="HIGH" date_range="1y" - 特性:
- 基于关键字在漏洞描述中进行搜索
- 严重等级过滤(关键、高、中、低)
- 日期范围过滤(30天、90天、1年、2年或自定义)
- 用于威胁研究的高级查询功能
🎯 漏洞利用可用性检查 (get_exploit_availability)
- 用途:检查是否存在公开的漏洞利用程序和概念验证(PoC)
- 数据源:ExploitDB、Metasploit、GitHub、安全公告
- 用法:
get_exploit_availability cve_id="CVE-2021-44228" - 特性:
- 多源漏洞利用检测
- 主动利用指标
- PoC代码可用性评估
- 威胁情报聚合
⏰ 漏洞时间线 (get_vulnerability_timeline)
- 用途:获取全面的时间线和补丁状态信息
- 数据源:NVD、供应商公告、安全公告
- 用法:
get_vulnerability_timeline cve_id="CVE-2021-44228" - 特性:
- 发布和披露时间线
- 补丁可用性状态
- 供应商公告跟踪
- 修复指导时间线
🎯 VEX状态检查 (get_vex_status)
- 用途:检查特定产品的漏洞可利用性交换(VEX)状态
- 数据源:供应商VEX声明和产品安全公告
- 用法:
get_vex_status cve_id="CVE-2021-44228" product="Apache HTTP Server" - 特性:
- 特定产品的影响评估
- 供应商提供的可利用性声明
- 误报过滤
- 供应链影响分析
📦 Python包漏洞检查 (package_vulnerability_check)
- 用途:检查Python包是否存在已知的安全漏洞
- 数据源:OSV(开源漏洞)数据库 + PyPI
- 用法:
package_vulnerability_check package_name="requests" version="2.25.1" - 特性:
- 对PyPI包进行全面的漏洞扫描
- 特定版本或所有版本的检查
- 包含严重等级评分的详细漏洞报告
- 受影响的版本范围和修复信息
- 与CVE、GHSA和PYSEC数据库集成
- 来自PyPI的包元数据
🏗️ 模块化架构
服务器采用简洁的模块化架构构建:
mcp_simple_tool/
├── server.py # 主MCP服务器编排
└── tools/ # 各个工具模块
├── cve_lookup.py # CVE漏洞查询
├── epss_lookup.py # EPSS评分查询
├── cvss_calculator.py # CVSS评分计算器
├── vulnerability_search.py # 高级漏洞搜索
├── exploit_availability.py # 漏洞利用和PoC检测
├── vulnerability_timeline.py # 时间线和补丁状态
├── vex_status.py # VEX状态检查
└── package_vulnerability.py # Python包安全检查
tests/ # 全面的测试套件
├── run_tests.py # 自动化测试运行器
└── test_*.py # 各个工具的测试
📦 安装指南
Docker安装(推荐用于本地开发)
- 初始设置:
# 克隆仓库
git clone https://github.com/firetix/vulnerability-intelligence-mcp-server
cd vulnerability-intelligence-mcp-server
# 创建环境文件
cp .env.example .env
- 使用Docker Compose构建并运行:
# 构建并启动服务器
docker compose up --build -d
# 查看日志
docker compose logs -f
# 检查服务器状态
docker compose ps
# 停止服务器
docker compose down
-
服务器将在以下地址可用:http://localhost:8000/sse
-
连接到Cursor IDE:
- 打开Cursor设置 → 功能
- 添加新的MCP服务器
- 类型:选择“sse”
- URL:输入
http://localhost:8000/sse
本地开发设置
- 安装uv包管理器:
# 在macOS上安装uv
brew install uv
# 或者通过pip安装(任何操作系统)
pip install uv
- 安装依赖项并运行:
# 安装带有开发依赖项的包
uv pip install -e ".[dev]"
# 使用stdio传输(默认)
uv run mcp-simple-tool
# 在自定义端口上使用SSE传输
uv run mcp-simple-tool --transport sse --port 8000
# 运行全面的测试套件
python tests/run_tests.py
- 对于Cursor IDE集成(stdio模式):
- 复制
cursor-run-mcp-server.sh的绝对路径 - 打开Cursor设置 → 功能 → MCP服务器
- 添加类型为“stdio”的新服务器并输入脚本路径
- 复制
💻 使用示例
测试工具
运行全面的测试套件:
# 运行所有测试
python tests/run_tests.py
# 运行单个工具的测试
python tests/test_cve_lookup.py
python tests/test_package_vulnerability.py
python tests/test_modular_server.py
示例测试输出
CVE查询测试:
🔍 **CVE漏洞报告: CVE-2021-44228**
📅 **时间线**:
• 发布时间: 2021-12-10T10:15:09.143
• 最后修改时间: 2023-11-07T04:10:58.217
⚠️ **CVSS评分**:
• CVSS 3.1: 10.0 (关键)
包漏洞测试:
🚨 **Python包安全报告: requests**
⚠️ **发现11个已知漏洞**
📦 **包信息**:
• 最新版本: 2.32.3
• 摘要: Python HTTP for Humans.
📚 详细文档
🌍 环境变量
可用的环境变量(可在.env中设置):
| 属性 | 详情 |
|------|------|
| 模型类型 | 无 |
| 训练数据 | 无 |
| MCP_SERVER_PORT | 服务器运行的端口(默认:8000) |
| MCP_SERVER_HOST | 服务器绑定的主机(默认:0.0.0.0) |
| DEBUG | 是否启用调试模式(默认:false) |
| MCP_USER_AGENT | HTTP请求的自定义用户代理 |
🚀 部署自己的实例
如果您想部署自己的漏洞情报服务器实例,可以使用Heroku进行快速部署:
-
部署完成后,您的实例将在以下地址可用:
https://<your-app-name>.herokuapp.com/sse
-
配置您的MCP客户端以使用您部署的实例:
- 对于Claude桌面:更新配置中的
FETCH_URL - 对于Cursor IDE:更新MCP设置中的URL
- 对于Claude桌面:更新配置中的
-
使用相同的示例查询测试您的部署:
- CVE查询:“查询CVE-2021-44228”
- EPSS评分:“获取CVE-2021-44228的EPSS评分”
- 包检查:“检查'requests' Python包是否存在漏洞”
- 漏洞利用检查:“检查CVE-2021-44228的漏洞利用情况”
📊 数据源和API
- CVE数据:NIST国家漏洞数据库(NVD API 2.0)
- EPSS评分:FIRST EPSS API(漏洞利用预测评分系统)
- CVSS计算:符合CVSS v3.0/v3.1规范
- 漏洞搜索:多个CVE和漏洞数据库
- 漏洞利用情报:ExploitDB、Metasploit、GitHub安全公告
- 包漏洞:OSV(开源漏洞)
- 包元数据:PyPI(Python包索引)
- VEX数据:供应商VEX声明和产品安全公告
🤝 安全用例
本MCP服务器专为需要以下功能的安全工程师、开发人员和团队设计:
- 漏洞研究与情报:
- 快速进行CVE查询并获取全面详细信息
- 使用CVSS和EPSS评分进行准确的风险评估
- 在多个数据库中进行高级漏洞搜索
- 收集漏洞利用可用性和威胁情报
- 进行时间线分析以了解漏洞生命周期
- 风险评估与优先级排序:
- 基于EPSS的漏洞利用概率评分
- CVSS向量计算和验证
- 检查VEX状态以评估特定产品的影响
- 结合多个数据源进行多因素风险分析
- 依赖管理:
- 对Python包进行安全审计
- 检查特定版本的漏洞
- 评估供应链安全
- 评估开源组件的风险
- 安全运营与事件响应:
- 快速进行漏洞分类和筛选
- 评估漏洞利用可用性以进行威胁建模
- 研究和关联安全公告
- 基于时间线进行补丁管理规划
🔄 扩展服务器
模块化架构使得添加新的安全工具变得容易:
- 在
mcp_simple_tool/tools/中创建一个新模块 - 在
tools/__init__.py中导出函数 - 在
server.py中注册工具 - 在
tests/中添加测试
详细的扩展指南请参阅README_MODULAR.md。
📄 许可证
本项目采用MIT许可证,详情请参阅LICENSE文件。
Scan to join WeChat group