CVE漏洞查询服务

一个基于国家漏洞数据库(NVD)提供CVE漏洞查询和搜索功能的模型上下文协议(MCP)服务器。

  • by CrypKaChu
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 CrypKaChu/security-mcp-server

使用说明

CVE MCP 服务器

一个模型上下文协议(MCP)服务器,利用国家漏洞数据库(NVD)提供CVE漏洞查询和搜索功能。

特点

  • CVE查询通过CVE ID获取特定CVE的详细信息
  • CVE 搜索通过描述中的关键词搜索CVE(通用漏洞和披露)
  • NVD 集成使用官方NVD API获取最新的漏洞数据
  • CVSS评分提供CVSS v2和v3评分及严重性等级

先决条件

  • Python 3.13+(或 Python 3.13及以上版本)
  • 紫外线 包管理器
  • NVD API密钥(可选,但建议使用以提高速率限制)

安装

本地安装

  1. 克隆项目或导航至项目目录:

    cd /path/to/cve-mcp-server
    
  2. 安装依赖项:

    uv sync
    
  3. 设置NVD API密钥(可选):

    export NVD_API_KEY="your_nvd_api_key_here"
    

运行服务器

本地安装

# Direct execution
uv run python server.py

MCP客户端配置

对于Claude Desktop

{
  "mcpServers": {
    "cve-lookup": {
      "command": "uv",
      "args": ["run", "--directory", "/path/to/cve-mcp-server", "python", "server.py"],
      "env": {
        "NVD_API_KEY": "your_nvd_api_key_here"
      }
    }
  }
}

可用工具

获取CVE信息(cve_id: 字符串)

检索特定CVE的详细信息。

参数:

  • cve_idCVE标识符(例如,“CVE-2021-44228”)

返回值:

  • CVE ID(通用漏洞和暴露标识符)、描述、发布日期、CVSS评分、严重程度、CWE(常见弱点枚举)以及参考文献

搜索CVE(Common Vulnerability and Exposure,通用漏洞和披露)信息,参数为关键字(keyword: str,字符串类型)和限制数量(limit: int,默认为10)

根据描述中的关键词搜索CVE。

参数:

  • keyword在CVE描述中搜索的术语
  • limit最大结果数量(默认10,最大50)

返回值:

  • 包含ID、描述、严重程度、评分和发布日期的匹配CVE列表

使用示例

一旦MCP服务器运行并连接到您的客户端:

  • “查看 CVE-2021-44228”(Log4Shell 漏洞)
  • “搜索与Apache Log4j相关的CVE(通用漏洞和披露)”
  • “在WordPress中查找漏洞”
  • “获取CVE-2023-1234的详细信息”

故障排除

服务器未启动(红点)

  1. 检查依赖项:

    uv sync
    
  2. 手动测试服务器:

    uv run python server.py
    
  3. 验证Python路径:

    which python3
    
  4. 检查MCP配置语法 在你的配置文件中

常见问题

  • **ModuleNotFoundError(模块未找到错误)**跑 uv sync 安装依赖项
  • 权限被拒绝检查文件权限和Python路径
  • 连接失败重启您的MCP客户端(Claude桌面版)
  • API速率限制设置NVD API密钥以提高限制

配置提示

  • 在MCP配置中使用绝对路径
  • 确保工作目录正确
  • 正确设置环境变量
  • 配置更改后重启MCP客户端

依赖项

  • mcp[cli]>=1.16.0 - 模型上下文协议框架
  • nvdlib>=0.8.3 NVD API 客户端库
  • requests>=2.32.5 - HTTP请求库

API密钥设置

  1. 获取NVD API密钥:

    • 访问:https://nvd.nist.gov/developers/request-an-api-key
    • 注册一个免费的API密钥
  2. 设置环境变量:

    export NVD_API_KEY="your_api_key_here"
    
  3. 更新MCP配置: 将API密钥添加到您的MCP服务器环境变量中

测试

本地测试

# Test server imports
uv run python -c "import server; print('Server imports successfully')"

# Test server execution
uv run python server.py

许可证

这个项目是开源的。请参阅项目文件以获取具体的许可信息。