NVD Database MCP Server

NVD Database MCP Server

site icon
2025.03.24 1
Python漏洞查询安全工具数据库
mcp-nvd 是一个基于 Model Context Protocol (MCP) 的服务器实现,用于通过 API 查询 NIST 国家漏洞数据库 (NVD)。它提供了查询特定 CVE 记录和搜索 NVD 数据库的功能,支持 Server-Sent Events (SSE) 传输以实现实时通信,并与 MCP 兼容的客户端如 Claude Desktop 应用兼容。
View on GitHub

Overview

基本能力

产品定位

mcp-nvd 是一个专门用于查询 NIST 国家漏洞数据库 (NVD) 的工具,旨在为开发者和安全专家提供便捷的漏洞信息查询服务。

核心功能

  • 查询特定 CVE 记录:通过 CVE ID 获取详细的漏洞信息。
  • 搜索 NVD 数据库:通过关键词搜索漏洞记录,支持自定义结果数量和格式。
  • 支持 SSE 传输:实现实时通信,适用于需要即时反馈的场景。
  • 兼容 MCP 客户端:如 Claude Desktop 等 MCP 兼容的客户端。

适用场景

  • 安全研究人员需要快速查询特定漏洞的详细信息。
  • 开发者在开发过程中需要检查依赖库的漏洞情况。
  • 企业安全团队进行漏洞管理和风险评估。

工具列表

  • get_cve
  • 描述:通过 CVE ID 获取漏洞记录。
  • 参数
    • cve_id:CVE ID(如 CVE-2019-1010218)。
    • concise:是否返回简洁格式(默认为 False)。
  • 返回:包括评分、弱点和参考链接的详细漏洞信息。

  • search_cve

  • 描述:通过关键词搜索 NVD 数据库。
  • 参数
    • keyword:搜索关键词(如 Red Hat)。
    • exact_match:是否要求精确匹配(默认为 False)。
    • concise:是否返回简洁格式(默认为 False)。
    • results:返回的最大记录数(默认为 10,范围 1-2000)。
  • 返回:匹配的 CVE 记录列表及总数。

常见问题解答

  • 如何获取 NVD API 密钥?:需要在 NVD 官网 申请。
  • 如何配置 Claude Desktop?:需要在配置文件中添加 mcp-nvd 的路径和 API 密钥。
  • 如何运行服务器?:可以通过 uv run mcp-nvd 命令启动,支持 stdiosse 传输。

使用教程

使用依赖

  1. Python 3.10 或更高版本bash python --version
  2. NVD API 密钥:在 NVD 官网 申请。
  3. uv 包管理器bash pip install uv

安装教程

  1. 克隆仓库bash git clone https://github.com/marcoeg/mcp-nvd cd mcp-nvd
  2. 设置环境变量
  3. 创建 .env 文件并添加: NVD_API_KEY=your-api-key
  4. 安装依赖bash uv sync uv pip install -e .

调试方式

  1. 运行服务器bash uv run mcp-nvd --transport sse --port 9090
  2. 测试客户端
  3. 查询特定 CVE: bash uv run client.py http://localhost:9090/sse CVE-2019-1010218
  4. 搜索 CVE: bash uv run client.py http://localhost:9090/sse "search:Red Hat"

Docker 使用

  1. 构建镜像bash docker build -t mcp-nvd:latest .
  2. 运行容器bash docker run -d -p 9090:9090 -e NVD_API_KEY="your-key" mcp-nvd:latest
  3. 验证bash docker logs <container_id> bash uv run client.py http://localhost:9090/sse CVE-2019-1010218

许可证

该项目遵循 MIT 开源许可条款,请参阅 MIT 了解完整条款。