
NVD Database MCP Server

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
命令启动,支持stdio
和sse
传输。
使用教程
使用依赖
- Python 3.10 或更高版本:
bash python --version
- NVD API 密钥:在 NVD 官网 申请。
- uv 包管理器:
bash pip install uv
安装教程
- 克隆仓库:
bash git clone https://github.com/marcoeg/mcp-nvd cd mcp-nvd
- 设置环境变量:
- 创建
.env
文件并添加:NVD_API_KEY=your-api-key
- 安装依赖:
bash uv sync uv pip install -e .
调试方式
- 运行服务器:
bash uv run mcp-nvd --transport sse --port 9090
- 测试客户端:
- 查询特定 CVE:
bash uv run client.py http://localhost:9090/sse CVE-2019-1010218
- 搜索 CVE:
bash uv run client.py http://localhost:9090/sse "search:Red Hat"
Docker 使用
- 构建镜像:
bash docker build -t mcp-nvd:latest .
- 运行容器:
bash docker run -d -p 9090:9090 -e NVD_API_KEY="your-key" mcp-nvd:latest
- 验证:
bash docker logs <container_id>
bash uv run client.py http://localhost:9090/sse CVE-2019-1010218