用途 vuln-nist-mcp-server 是一个 Model Context Protocol (MCP) 服务器,用于查询 NIST 国家漏洞数据库(NVD)的 API 端点。它向大语言模型(LLM)提供可调用的工具,用于检索 NVD/CVE REST API 数据,并返回格式化文本结果,便于经由 MCP 协议供 LLM 消费。
主要能力 该服务器提供以下工具:
- get_temporal_context:获取当前日期与时间上下文,用于时间相对查询(如“今年”“去年”“6 个月前”),提供当前日期映射与日期参数构造示例。建议在用户提出时间相对问题时首先调用。
- search_cves:按关键词搜索 CVE 描述,支持灵活日期过滤。参数包括 keyword、resultsPerPage(默认 20)、startIndex(默认 0)、last_days(recent_days 已弃用)、start_date、end_date。v1.1.0 新增对绝对日期范围 start_date 与 end_date 的支持。日期过滤优先级为:start_date/end_date → last_days → 默认 30 天。超过 120 天的查询会自动分块并行请求。结果按发布日期排序(最新在前)。
- get_cve_by_id:检索特定 CVE 的详细信息。参数 cve_id。返回 CVE 详情、引用、标签和发布日期。
- cves_by_cpe:列出与通用平台枚举(CPE)关联的 CVE。参数 cpe_name(需完整 CPE 2.3 格式)、is_vulnerable(可选)。查询前验证 CPE 格式。
- kevs_between:查找在指定日期范围内添加到 CISA KEV 目录的 CVE。参数 kevStartDate、kevEndDate、resultsPerPage(默认 20)、startIndex(默认 0)。超过 90 天的查询自动分块并行请求。结果按发布日期排序(最新在前)。
- cve_change_history:检索 CVE 的变更历史。参数为 cve_id 或(changeStartDate + changeEndDate)、resultsPerPage(默认 20)、startIndex(默认 0)。日期范围查询超过 120 天自动分块并行请求。结果按变更创建日期排序(最新在前)。
其他特性:时间感知(新增 get_temporal_context 工具支持准确的时间相对查询)、灵活日期过滤(支持相对 last_days 与绝对 start_date/end_date 范围)、改进结果排序(所有结果按时间顺序最新在前)、并行处理(大日期范围自动拆分并并发处理)、输入验证(CPE 格式验证、日期解析、参数净化)、表情符号指示(✅ 成功、❌ 错误、⚠️ 警告、🔍 搜索、🔥 KEV、🌐 CPE、🕘 历史、📅 时间)、全面日志(详细 stderr 日志便于调试)、错误处理(优雅处理 API 错误、超时和格式错误响应)。
使用方式 环境要求:Docker(推荐)或 Python 3.11+;网络访问 NVD 端点(services.nvd.nist.gov);兼容 MCP 的客户端(如 Claude Desktop)。
使用 Docker(推荐)方式运行,支持以下环境变量:
- NVD_BASE_URL:NVD API 基础 URL(默认:https://services.nvd.nist.gov/rest/json)
- NVD_VERSION:API 版本(默认:/2.0)
- NVD_API_TIMEOUT:请求超时秒数(默认:10)
在 Claude Desktop 或 MCP 客户端中,典型使用流程包括:获取时间上下文用于时间相对查询;搜索近期 CVE(相对时间);使用绝对日期范围搜索 CVE;搜索“今年”的 CVE(先使用 get_temporal_context);获取 CVE 详情;检查 CPE 漏洞;查找近期 KEV 新增。
性能说明 日期范围超过 90–120 天的查询会自动分块以提升性能;并行处理减少大日期范围的总查询时间;所有分块结果自动按发布日期排序(最新在前)。
安全考虑 无需 API 密钥(NVD 端点为公开);容器以非 root 用户(mcpuser)运行;输入验证防止注入攻击;不持久存储敏感数据;仅必要时通过 Docker 标志添加网络能力。
适用场景 适用于需要让 LLM 经由 MCP 协议查询 NVD/CVE 数据的安全分析、漏洞排查、CVE 检索、CPE 关联漏洞检查、CISA KEV 目录检索以及 CVE 变更历史追踪等场景。
限制 内容中未提供关于收费、价格或具体效果的数据,暂未提供相关信息。