从国家漏洞数据库(NVD)检索CVE信息的MCP服务器。
安装以下内容。
[!NOTE] 本项目使用
uv。
uv sync
按照以下方式启动MCP Inspector:
npx @modelcontextprotocol/inspector uv --directory /path/to/mcp-nvd run mcp-nvd

本项目采用pytest进行测试。
<details> <summary>pytest结果</summary>============================================================= 测试会话开始 =============================================================
平台 win32 -- Python 3.12.9, pytest-8.3.5, pluggy-1.5.0
根目录: D:\Users\ghays\src\mcp-nvd-server
配置文件: pyproject.toml
插件: anyio-4.9.0
收集到 4 个条目
src/mcp_nvd/test_nvd.py::test_fetch_cve
---------------------------------------------------------------- 实时调用日志 ----------------------------------------------------------------
2025-05-16 15:50:32 [ INFO] 获取 CVE: CVE-2025-30065... (nvd.py:42)
2025-05-16 15:50:33 [ INFO] 响应: 200 (nvd.py:48)
2025-05-16 15:50:33 [ INFO] 描述: 在 Apache Parquet 1.15.0 及之前版本的 parquet-avro 模块中,模式解析允许恶意行为者执行任意代码。建议用户升级到修复该问题的 1.15.1 版本。 (nvd.py:55)
2025-05-16 15:50:33 [ INFO] 使用构造方法获取 CVE-2025-30065 的数据 (test_nvd.py:14)
2025-05-16 15:50:33 [ INFO] 描述 (en) 值: 在 Apache Parquet 1.15.0 及之前版本的 parquet-avro 模块中,模式解析允许恶意行为者执行任意代码。建议用户升级到修复该问题的 1.15.1 版本。 (test_nvd.py:31)
2025-05-16 15:50:33 [ INFO] 描述 (es) 值: 在 Apache Parquet 1.15.0 及之前版本的 parquet-avro 模块中,模式解析允许恶意行为者执行任意代码。建议用户升级到修复该问题的 1.15.1 版本。 (test_nvd.py:31)
2025-05-16 15:50:33 [ INFO] 链接检查: https://lists.apache.org/thread/okzqb3kn479gqzxm21gg5vqr35om9gw5 (test_nvd.py:36)
通过 [ 25%]
src/mcp_nvd/test_nvd.py::test_fetch_cve_no_constructor
---------------------------------------------------------------- 实时调用日志 ----------------------------------------------------------------
2025-05-16 15:50:33 [ INFO] 获取 CVE: CVE-2025-30065... (nvd.py:42)
2025-05-16 15:50:34 [ INFO] 响应: 200 (nvd.py:48)
2025-05-16 15:50:34 [ INFO] 描述: 在 Apache Parquet 1.15.0 及之前版本的 parquet-avro 模块中,模式解析允许恶意行为者执行任意代码。建议用户升级到修复该问题的 1.15.1 版本。 (nvd.py:55)
2025-05-16 15:50:34 [ INFO] 使用非构造方法获取 CVE-2025-30065 的数据 (test_nvd.py:43)
通过 [ 50%]
src/mcp_nvd/test_nvd.py::test_fetch_description
---------------------------------------------------------------- 实时调用日志 ----------------------------------------------------------------
2025-05-16 15:50:34 [ INFO] 获取 CVE: CVE-2025-30065... (nvd.py:42)
2025-05-16 15:50:34 [ INFO] 响应: 200 (nvd.py:48)
2025-05-16 15:50:34 [ INFO] 描述: 在 Apache Parquet 1.15.0 及之前版本的 parquet-avro 模块中,模式解析允许恶意行为者执行任意代码。建议用户升级到修复该问题的 1.15.1 版本。 (nvd.py:55)
2025-05-16 15:50:34 [ INFO] 语言 'en' 的描述: 在 Apache Parquet 1.15.0 及之前版本的 parquet-avro 模块中,模式解析允许恶意行为者执行任意代码。建议用户升级到修复该问题的 1.15.1 版本。 (test_nvd.py:69)
通过 [ 75%]
src/mcp_nvd/test_nvd.py::test_fetch_references
---------------------------------------------------------------- 实时调用日志 ----------------------------------------------------------------
2025-05-16 15:50:34 [ INFO] 获取 CVE: CVE-2025-30065... (nvd.py:42)
2025-05-16 15:50:34 [ INFO] 响应: 200 (nvd.py:48)
2025-05-16 15:50:34 [ INFO] 描述: 在 Apache Parquet 1.15.0 及之前版本的 parquet-avro 模块中,模式解析允许恶意行为者执行任意代码。建议用户升级到修复该问题的 1.15.1 版本。 (nvd.py:55)
2025-05-16 15:50:34 [ INFO] 参考链接: https://lists.apache.org/thread/okzqb3kn479gqzxm21gg5vqr35om9gw5 (test_nvd.py:82)
2025-05-16 15:50:34 [ INFO] 参考链接: http://www.openwall.com/lists/oss-security/2025/04/01/1 (test_nvd.py:82)
2025-05-16 15:50:34 [ INFO] 参考链接: https://access.redhat.com/security/cve/CVE-2025-30065 (test_nvd.py:82)
2025-05-16 15:50:34 [ INFO] 参考链接: https://github.com/apache/parquet-java/pull/3169 (test_nvd.py:82)
2025-05-16 15:50:34 [ INFO] 参考链接: https://news.ycombinator.com/item?id=43603091 (test_nvd.py:82)
2025-05-16 15:50:34 [ INFO] 参考链接: https://www.bleepingcomputer.com/news/security/max-severity-rce-flaw-discovered-in-widely-used-apache-parquet/ (test_nvd.py:82)
2025-05-16 15:50:34 [ INFO] 参考链接: https://github.com/h3st4k3r/CVE-2025-30065/blob/main/POC-CVE-2025-30065-ParquetExploitGenerator.java (test_nvd.py:82)
2025-05-16 15:50:34 [ INFO] 参考链接: https://github.com/mouadk/parquet-rce-poc-CVE-2025-30065/blob/main/src/main/java/com/evil/GenerateMaliciousParquetSSRF.java (test_nvd.py:82)
通过 [100%]
============================================================== 4 通过在 2.74 秒内 ==============================================================
</details>