项目简介

这是一个基于Model Context Protocol (MCP) 的服务器实现,旨在将国家漏洞数据库 (NVD) 的数据集成到AI驱动的开发环境中。它允许LLM客户端(如AI助手、IDE插件等)通过自然语言查询NVD,获取CVE(Common Vulnerabilities and Exposures)的详细信息。

主要功能点

  • 查询特定CVE详情: 根据CVE编号获取详细的漏洞描述、CVSS评分、严重级别等信息。
  • 关键词搜索CVE: 查找与特定技术、产品或关键词相关的CVE。
  • 获取最新CVE: 查看最近一段时间内发布的最新漏洞列表。
  • 按严重级别过滤: 根据严重性(如高危、关键)筛选和列出相关漏洞。
  • 检查依赖漏洞: (此功能需要客户端提供依赖列表)检查代码项目依赖中已知的漏洞。

安装步骤

  1. 克隆项目仓库到本地:
    git clone https://github.com/sockcymbal/nvd-mcp-server.git
    cd nvd-mcp-server
  2. 创建并激活Python虚拟环境(推荐):
    python -m venv venv
    source venv/bin/activate  # Windows 用户请使用 venv\Scripts\activate
  3. 安装项目所需的依赖:
    pip install -r requirements.txt
  4. 获取NVD API Key:访问NVD官网申请API Key (https://nvd.nist.gov/developers/request-an-api-key)。
  5. 配置API Key:在项目根目录下创建一个名为 'keys.env' 的文件,内容为:
    NVD_API_KEY=你的API_Key_放这里
    请将 '你的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数据库,并将结果返回给客户端显示。

信息

分类

开发者工具