mcp-nvd

Integrations

  • Enables searching for vulnerabilities related to Red Hat products in the NVD database using keyword search functionality

NVD 数据库 MCP 服务器

模型上下文协议服务器实现,通过其 API 查询 NIST 国家漏洞数据库 (NVD)。https ://nvd.nist.gov/

作为先决条件,需要 NVD API 密钥。(在此处请求)。

地位

与 Claude Desktop 应用程序和其他使用stdiosse传输的 MCP 兼容主机和客户端配合使用。

特征

  • 通过 ID 查询特定 CVE 以及详细的漏洞数据。
  • 使用可自定义的结果选项通过关键字搜索 NVD 数据库。
  • 支持服务器发送事件 (SSE) 传输以实现实时通信。
  • 与 Claude Desktop 等符合 MCP 标准的客户端兼容。

工具

服务器实现以下工具来查询 NVD 数据库:

  • get_cve
    • 描述:通过 ID 检索 CVE 记录。
    • 参数
      • cve_id (str): CVE ID(例如, CVE-2019-1010218 )。
      • concise (bool,默认为False ):如果为True ,则返回更短的格式。
    • 返回:详细的 CVE 信息,包括分数、弱点和参考。
  • search_cve
    • 描述:通过关键字搜索 NVD 数据库。
    • 参数
      • keyword (str):搜索词(例如, Red Hat )。
      • exact_match (bool,默认为False ):如果为True ,则需要精确的短语匹配。
      • concise (bool,默认False ):如果为True ,则返回较短的 CVE 记录。
      • results (int,默认值为10 ):CVE 记录的最大数量(1-2000)。
    • 返回:匹配的 CVE 列表及其总数。

配置

  1. 创建或编辑位于以下位置的 Claude Desktop 配置文件:
    • 在 macOS 上: ~/Library/Application Support/Claude/claude_desktop_config.json
    • 在 Windows 上: %APPDATA%/Claude/claude_desktop_config.json
  2. 添加以下内容:
{ "mcpServers": { "mcp-nvd": { "command": "/path/to/uvx", "args": ["mcp-nvd"], "env": { "NVD_API_KEY": "your-api-key" } } } }
  1. /path/to/uvx替换为uvx可执行文件的绝对路径。在终端中使用which uvx命令查找路径。这可确保启动服务器时使用正确版本的uvx
  2. 重新启动 Claude Desktop 以应用更改。

发展

设置

  1. 先决条件
  2. 克隆存储库
git clone https://github.com/marcoeg/mcp-nvd cd mcp-nvd
  1. 设置环境变量
    • 在项目根目录中创建一个.env文件:
      NVD_API_KEY=your-api-key
    • 用您的 NVD API 密钥替换your-api-key
  2. 安装依赖项
uv sync uv pip install -e .

使用 MCP 检查器运行

cd /path/to/the/repo source .env npx @modelcontextprotocol/inspector uv \ --directory /path/to/repo/mcp-nvd run mcp-nvd

然后打开浏览器访问 MCP Inspector 指示的 URL,通常是http://localhost:8077?proxyPort=8078

在检查器中自由切换stdiosse传输类型。

使用 SSE 客户端进行测试

运行服务器:
cd /path/to/the/repo source .env uv run mcp-nvd --transport sse --port 9090
  • 默认在端口9090上使用 SSE 传输运行。
运行客户端:

测试get_cve

uv run client.py http://localhost:9090/sse CVE-2019-1010218

测试search_cve (默认10个结果):

uv run client.py http://localhost:9090/sse "search:Red Hat"

测试search_cve (完全匹配,5个结果):

uv run client.py http://localhost:9090/sse "search:Microsoft Windows:exact:5"

Docker 设置

建造

docker build -t mcp-nvd:latest .

跑步

使用.env

docker run -d -p 9090:9090 -v /path/to/.env:/app/.env mcp-nvd:latest

使用环境变量:

docker run -d -p 9090:9090 -e NVD_API_KEY="your-key" mcp-nvd:latest

自定义端口:

docker run -d -p 8080:8080 -v /path/to/.env:/app/.env mcp-nvd:latest uv run mcp-nvd --transport sse --port 8080 --host 0.0.0.0

核实

docker logs <container_id> # Expect: INFO: Uvicorn running on http://0.0.0.0:9090

测试:

uv run client.py http://localhost:9090/sse CVE-2019-1010218

笔记

  • 确保.env具有NVD_API_KEY=your-key或使用-e
  • 默认端口: 9090

以下是代码块内格式化为 Markdown 注释的摘要,适合包含在docker-compose.yamlREADME.md等文件中:

使用 Docker Compose 进行测试

docker-compose.yaml位于tests/目录中,它定义了一个使用预构建 Docker 镜像测试 MCP-NVD 服务器的服务。它专为测试用例而设计,类似于clickhouse之类的独立服务,并且假定镜像是预先构建的,而不是每次都重新构建。

假设
  • 预构建镜像:该服务使用标记为mcp-nvd:test的预构建镜像,该镜像可在本地或镜像仓库中获取。该镜像基于父目录中的Dockerfile ,该文件使用uv设置了 MCP-NVD 服务器,并在端口 9090 上以 SSE 模式运行它。
如何构建图像

要创建mcp-nvd:test图像:

  1. 导航到项目根目录:
    cd ./mcp-nvd
  2. 使用 Dockerfile 构建镜像:
    docker build -t mcp-nvd:test .
    • 这将使用来自pyproject.tomlmcp_nvd/模块的所有依赖项构建图像,并设置运行服务器的默认命令。
运行服务

tests/目录:

cd tests docker-compose up
  • 访问:服务器运行在http://localhost:9090
  • 停止docker-compose down
  • 环境:确保NVD_API_KEY../.env中或使用docker-compose --env-file ../.env up
在 Docker Compose 场景中运行test_tools.py

要在 Docker 环境中运行单元测试( test_tools.py ):

  1. 启动服务:确保mcp-nvd服务正在通过docker-compose up运行。
  2. 执行到容器中
    • 使用以下命令识别容器名称(例如mcp-nvd-mcp-nvd-1 ):
      docker ps
    • 在容器内运行测试:
      docker exec -it mcp-nvd-mcp-nvd-1 python /app/tests/test_tools.py
    • 注意:假设test_tools.py已复制到镜像的/app/tests/下。如果没有,请修改 Dockerfile 以包含以下内容:
      COPY tests/ ./tests/
      然后使用docker build -t mcp-nvd:test .从根目录重建映像。
  3. 替代方案:针对容器化服务在本地运行测试:
    cd tests python test_tools.py
    • 这会在服务运行时针对http://localhost:9090进行测试。
关键细节
  • 端口:9090 暴露给 SSE 访问。
  • 日志:存储在log-data卷中(可选)。
  • 图像:在运行docker-compose之前必须构建一次并标记为mcp-nvd:test

感谢@sidharthrajaram为基于 SSE 的 MCP 客户端和服务器提供的工作模式: https://github.com/sidharthrajaram/mcp-sse

-
security - not tested
A
license - permissive license
-
quality - not tested

remote-capable server

The server can be hosted and run remotely because it primarily relies on remote services or has no dependency on the local environment.

模型上下文协议服务器实现通过其 API 查询 NIST 国家漏洞数据库 (NVD)。

  1. 地位
    1. 特征
      1. 工具
    2. 配置
      1. 发展
        1. 设置
        2. 使用 MCP 检查器运行
        3. 使用 SSE 客户端进行测试
      2. Docker 设置
        1. 建造
        2. 跑步
        3. 核实
        4. 笔记
        5. 使用 Docker Compose 进行测试

      Related MCP Servers

      • A
        security
        A
        license
        A
        quality
        A Model Context Protocol server that facilitates integration with OpenCTI, allowing users to query and retrieve cyber threat intelligence data via a standardized interface.
        Last updated -
        16
        7
        TypeScript
        MIT License
      • A
        security
        F
        license
        A
        quality
        A Model Context Protocol server that enables searching and retrieving information from DevRev using its APIs with Claude.
        Last updated -
        2
        2
        Python
        • Apple
      • -
        security
        F
        license
        -
        quality
        A Model Context Protocol server that provides access to Shodan and VirusTotal APIs for cybersecurity analysis, enabling analysts to perform network intelligence operations including host lookups, vulnerability analysis, and threat intelligence gathering.
        Last updated -
        1
        TypeScript
      • -
        security
        A
        license
        -
        quality
        A Model Context Protocol server that enables AI assistants to search and retrieve information about security exploits and vulnerabilities from the Exploit Database, enhancing cybersecurity research capabilities.
        Last updated -
        4
        TypeScript
        MIT License
        • Linux
        • Apple

      View all related MCP servers

      ID: 7dfi396x58