Back to MCP directory
publicPublicdnsLocal runtime

vulners-mcp

Vulners MCP服务器是一个通过模型上下文协议(MCP)提供对Vulners漏洞数据库访问的工具,支持在Claude Desktop等AI助手中直接查询漏洞信息、搜索CVE、分析安全公告和审计软件包。

article

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 | 强制传输模式:httpstreamable-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

测试脚本将执行以下操作:

  1. 检查服务器健康状况。
  2. 初始化 MCP 协议。
  3. 列出可用工具。
  4. 测试 CVE 搜索功能。
  5. 测试 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

help

Runtime guide

cloud

Hosted runtime

Hosted servers run from a provider-managed environment. You usually connect the MCP client to the hosted endpoint or follow the provider's authorization flow, without keeping a local process alive

  1. Open provider connection page
  2. Authorize or copy endpoint
  3. Connect from your MCP client
terminal

Local runtime / other methods

Local servers run on your own machine or infrastructure. You normally copy the server_config into your MCP client, install the required package, and provide env variables from env_schema when needed

  1. Copy server_config
  2. Install required package
  3. Fill env variables and restart client