项目简介
这是一个基于Model Context Protocol (MCP) 的服务器实现,旨在将国家漏洞数据库 (NVD) 的数据集成到AI驱动的开发环境中。它允许LLM客户端(如AI助手、IDE插件等)通过自然语言查询NVD,获取CVE(Common Vulnerabilities and Exposures)的详细信息。
主要功能点
- 查询特定CVE详情: 根据CVE编号获取详细的漏洞描述、CVSS评分、严重级别等信息。
- 关键词搜索CVE: 查找与特定技术、产品或关键词相关的CVE。
- 获取最新CVE: 查看最近一段时间内发布的最新漏洞列表。
- 按严重级别过滤: 根据严重性(如高危、关键)筛选和列出相关漏洞。
- 检查依赖漏洞: (此功能需要客户端提供依赖列表)检查代码项目依赖中已知的漏洞。
安装步骤
- 克隆项目仓库到本地:
git clone https://github.com/sockcymbal/nvd-mcp-server.git cd nvd-mcp-server - 创建并激活Python虚拟环境(推荐):
python -m venv venv source venv/bin/activate # Windows 用户请使用 venv\Scripts\activate - 安装项目所需的依赖:
pip install -r requirements.txt - 获取NVD API Key:访问NVD官网申请API Key (https://nvd.nist.gov/developers/request-an-api-key)。
- 配置API Key:在项目根目录下创建一个名为 'keys.env' 的文件,内容为:
请将 '你的API_Key_放这里' 替换为你申请到的API Key。NVD_API_KEY=你的API_Key_放这里
服务器配置 (供 MCP 客户端参考)
本服务器通过 MCP 协议与客户端通信。为了让您的 MCP 客户端(如兼容 MCP 的AI助手、IDE)能够连接并使用此服务器,您需要在客户端的配置中添加对此服务器的引用。
典型的客户端配置需要指定服务器的名称、启动服务器的命令 (command) 以及传递给命令的参数 (args)。
- 服务器名称 (server name): 您可以自定义一个名称来识别此服务器,例如 "nvd"。
- 启动命令 (command): 启动此 MCP 服务器的Python解释器路径,通常是 'python' 或虚拟环境中的 'python' 路径。
- 命令参数 (args): 传递给启动命令的参数列表。对于本服务器,基本参数为 'nvd_mcp.py' 和指定传输方式的参数,例如 '--transport stdio'。
例如,如果您的客户端配置支持JSON格式,并且您想使用标准输入/输出 (stdio) 作为传输方式,配置片段可能看起来像这样(注意:不同客户端的具体配置格式可能不同,此处仅为说明启动方式所需的关键信息):
{ "some_section_for_mcp_servers": { "nvd": { // 服务器名称 "command": "python", // 启动命令 "args": [ // 命令参数列表 "路径/到/你的/nvd-mcp-server/nvd_mcp.py", "--transport", "stdio" ] } } }
请根据您的MCP客户端的具体文档进行配置,确保 'command' 和 'args' 正确指向您安装服务器的位置及启动文件 'nvd_mcp.py',并指定所需的传输方式(默认为 stdio,也支持 http)。
基本使用方法
启动服务器后(通常由客户端根据配置自动启动),您可以通过连接的LLM客户端发送自然语言查询,客户端会将请求转换为MCP调用并发送给服务器。
例如,向AI助手提问:
- "什么是 CVE-2023-1234?" (客户端调用 'get_cve_details' 工具)
- "寻找与 Apache 相关的漏洞。" (客户端调用 'search_cves_by_keyword' 工具)
- "最近有没有什么高危漏洞?" (客户端调用 'filter_cves_by_severity' 工具)
服务器将处理这些请求,查询NVD数据库,并将结果返回给客户端显示。
信息
分类
开发者工具