README
🚀 Vulners MCP 服务器
Vulners MCP 是一个模型上下文协议(MCP)服务器,它通过像 Claude Desktop 这样的 AI 助手,为用户提供对 Vulners 漏洞数据库的无缝访问。安全研究人员和开发人员可以直接通过自然语言对话,查询全面的漏洞数据、搜索 CVE 编号、分析安全公告以及审核软件包。
🚀 快速开始
与 Claude Desktop 快速上手
使用 Vulners MCP 最简单的方法是通过 Claude Desktop:
1. 构建 Docker 镜像
git clone https://github.com/vulnersCom/vulners-mcp.git
cd vulners-mcp
docker build -t vulners-mcp:latest .
2. 配置 Claude Desktop
将以下内容添加到你的 Claude Desktop 配置文件中:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json - Linux:
~/.config/Claude/claude_desktop_config.json
{
"mcpServers": {
"vulners": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"VULNERS_API_KEY=YOUR_API_KEY_HERE",
"vulners-mcp:latest"
]
}
}
}
将 YOUR_API_KEY_HERE 替换为你实际的 Vulners API 密钥。
3. 重启 Claude Desktop
保存配置后,重启 Claude Desktop。Vulners MCP 服务器将通过 🔌 图标可用。
4. 开始使用
现在你可以向 Claude 提出如下问题:
- "查找 Google Chrome 最近的漏洞"
- "显示 CVE - 2025 - 53770 的详细信息"
- "Citrix 产品最近有哪些被利用的漏洞"
- "审核此软件:cpe:2.3:a:google:chrome:138.0.7204.184:::::::*"
- "审核 Ubuntu 22.04 软件包 'openssl 3.0.2 amd64' 和 'curl 7.81.0 - 1ubuntu1.14 amd64'"
✨ 主要特性
- AI 助手集成:与 Claude Desktop 和其他 MCP 兼容的客户端原生协作。
- 双传输支持:自动检测并支持标准输入输出(适用于 Claude Desktop)和 HTTP 传输。
- 全面的工具集:提供 7 种用于漏洞研究的 MCP 工具,包括:
- 对超过 400 万个漏洞公告进行全文 Lucene 搜索。
- 获取 CVE 和公告信息。
- 软件/软件包漏洞审核。
- CPE 搜索和自动补全。
- Linux 软件包漏洞审核。
- 灵活的部署方式:支持 Docker、本地构建或通过 PyPI 安装。
- 基于环境的配置:通过环境变量进行简单的设置。
📦 安装指南
使用运行脚本的 Docker 方式
若要轻松部署 HTTP 模式,可使用提供的运行脚本:
# 创建包含 API 密钥的 .env 文件
echo "VULNERS_API_KEY=your_api_key_here" > .env
# 运行服务器
./run-docker.sh
服务器将以 HTTP 模式在 http://0.0.0.0:8000/mcp 启动。
手动 Docker 方式
以 HTTP 模式运行 MCP 服务器:
docker run -d \
--name vulners-mcp-http \
-e MCP_TRANSPORT_MODE="http" \
-e VULNERS_BASE_URL="https://vulners.com" \
-e VULNERS_API_KEY="your_api_key" \
-p 8000:8000 \
vulners-mcp:latest
对于 Claude Desktop(标准输入输出模式),请使用 -i 标志:
docker run -i --rm \
-e VULNERS_API_KEY="your_api_key" \
vulners-mcp:latest
本地构建并运行
git clone https://github.com/vulnersCom/vulners-mcp.git
cd vulners-mcp
poetry install
export VULNERS_API_KEY="your_api_key"
poetry run python -m vulners_mcp
📚 详细文档
配置 / 环境变量
| 变量 | 类型 | 默认值 | 描述 |
| ---- | ---- | ---- | ---- |
| VULNERS_API_KEY | 字符串 | 必需 | 用于与 Vulners 进行身份验证的 API 密钥 |
| VULNERS_BASE_URL | 字符串 | https://vulners.com | Vulners API 的基础 URL(不带 /api 后缀) |
| MCP_TRANSPORT_MODE | 字符串 | stdio | 强制传输模式:http 或 streamable-http |
| FASTMCP_HOST | 字符串 | 0.0.0.0 | MCP 服务器绑定的主机/接口(仅 HTTP 模式) |
| FASTMCP_PORT | 整数 | 8000 | MCP 服务器的端口(仅 HTTP 模式) |
| FASTMCP_STREAMABLE_HTTP_PATH | 字符串 | /mcp | 可流式传输的 MCP 端点路径(仅 HTTP 模式) |
传输模式说明:
- 服务器会根据运行方式自动检测传输模式。
- 使用
MCP_TRANSPORT_MODE=http可明确强制使用 HTTP 模式(适用于独立的 HTTP 服务器)。 - Claude Desktop 在使用
docker run -i运行时会自动使用标准输入输出模式。
使用方法和端点
使用 Claude Desktop
只需用自然语言提问,例如:
- "搜索 Apache 的漏洞"
- "获取 CVE - 2024 - 1234 的信息"
- "审核软件 cpe:/a:vendor:product:version"
HTTP 模式
以 HTTP 模式运行时,客户端连接到:
http://<FASTMCP_HOST>:<FASTMCP_PORT>/mcp
默认地址:http://0.0.0.0:8000/mcp
测试
使用提供的测试脚本来测试 HTTP 服务器:
# 确保 HTTP 服务器正在运行
docker ps | grep vulners-mcp
# 运行测试脚本
python3 test_tools.py
测试脚本将执行以下操作:
- 检查服务器健康状况。
- 初始化 MCP 协议。
- 列出可用工具。
- 测试 CVE 搜索功能。
- 测试 Lucene 搜索。
可用工具
服务器提供 7 种用于漏洞研究的 MCP 工具:
搜索与发现
- search_lucene - 🔍 未知漏洞发现工具 🔍 使用 Lucene 语法在 Vulners 知识库中进行全文搜索。仅在没有特定 ID 或版本信息时使用。切勿用于已知的 CVE/公告 ID(请使用 bulletin_by_id),也不要用于特定软件版本(例如 'Chrome 138.0.7204.184',请使用 audit_software)。🚨 重要提示:对于供应商/产品搜索,始终使用 cnaAffected.vendor 和 cnaAffected.product 字段,因为 affectedSoftware 字段不存在。
- bulletin_by_id - 🚨 已知 ID 的主要工具 🚨 通过 CVE 或 Vulners ID 获取完整公告。当你有特定标识符(如 CVE - 2024 - 1234、RHSA - 2024:001、CTX694938 等)时使用。支持单个 ID 或 ID 列表。提供列表时,引用将自动设为 False。切勿对已知 ID 使用 search_lucene。
- query_autocomplete - 搜索输入(供应商、产品、CVE 等)的自动补全助手。从 Vulners 数据库获取搜索建议。
- search_cpe - 按供应商 + 产品查找 CPE 字符串(最新架构)。在 Vulners 数据库中搜索通用平台枚举标识符。
漏洞审核
- audit_software - 🔍 特定版本软件审核 🔍 审核特定软件版本的已知漏洞。当你有确切的软件版本信息(例如 Chrome 138.0.7204.184)时使用。切勿对特定版本软件审核使用 search_lucene。
- audit_linux_packages - 针对给定发行版 + 版本的 Linux 软件包审核(RPM/DEB)。根据 Vulners 数据库分析 Linux 软件包漏洞。
信息与系统支持
- get_supported_os - 列出 Linux 软件包审核支持的操作系统标识符/版本。获取可用于漏洞分析的操作系统列表。
工具选择指南
🚨 关键工具选择规则 🚨
何时使用每个工具
- bulletin_by_id:当你有特定 ID 时使用
- ✅ "分析 CVE - 2025 - 7775" → bulletin_by_id
- ✅ "查找 CTX694938" → bulletin_by_id
- ✅ "告诉我 CVE - 2021 - 44228 的信息" → bulletin_by_id
- ✅ 任何特定的 CVE、RHSA、MS、CTX、NCSC、THN 等 ID
- search_lucene:仅在没有特定 ID 时用于发现
- ✅ "查找 Apache 中的漏洞" → search_lucene
- ✅ "显示最近的 CVE" → search_lucene
- ✅ "Chrome 存在哪些漏洞?" → search_lucene
- ❌ 切勿对已知 ID 使用,应使用 bulletin_by_id
- audit_software:用于特定版本软件审核
- ✅ "审核 Chrome 138.0.7204.184" → audit_software
- ✅ "检查 Firefox 120.0 中的漏洞" → audit_software
- ✅ 当你有供应商 + 产品 + 版本信息时使用
- ❌ 不要仅用于供应商 + 产品(应使用 search_lucene)
效率规则:对于已知 ID,一次 bulletin_by_id 调用就足够了。除非明确要求扩大范围,否则不要接着使用 search_lucene。
审核工具的后续工作流程
当使用审核工具(audit_software、audit_linux_packages)时:
- ✅ 运行审核工具以识别易受攻击的软件并获取 CVE ID。
- ✅ 从响应的漏洞数组中提取 CVE ID。
- ✅ 使用
bulletin_by_id和 CVE ID 列表进行详细分析。 - ✅ 这将提供全面的漏洞信息,包括补丁、引用和利用数据。
- ✅ 使用
bulletin_by_id进行批量处理比多次单独调用更高效。
如需详细的工具文档和参数,请使用 Claude 的工具检查功能或查看服务器的工具列表。
开发与贡献
- 在 GitHub 上提出问题或功能请求。
- 提交改进的拉取请求。
- 确保与 Vulners API 兼容。
- 测试标准输入输出(Claude Desktop)和 HTTP 模式。
从源代码构建
git clone https://github.com/vulnersCom/vulners-mcp.git
cd vulners-mcp
docker build -t vulners-mcp:latest .
📄 许可证
本项目采用 MIT 许可证。
MCP 名称:io.github.vulnersCom/vulners-mcp
微信扫一扫