# @cyanheads/nist-nvd-mcp-server 中文文档

规范地址：https://npmcn.com/package/%40cyanheads/nist-nvd-mcp-server/

版本：0\.4\.0
npm 元数据更新时间：2026-10-26T07:23:28.977Z
中文译文更新时间：2026-11-11T09:14:58.949Z
软件包许可：Apache-2\.0

本文由上游 README 翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/%40cyanheads/nist-nvd-mcp-server
原文对照：https://npmcn.com/package/%40cyanheads/nist-nvd-mcp-server/?lang=original
项目主页：https://github.com/cyanheads/nist-nvd-mcp-server#readme
源码仓库：https://github.com/cyanheads/nist-nvd-mcp-server

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：539 kB，131 个文件
- 模块格式：ES Module
- TypeScript 类型：包内自带
- Node.js 要求：\>=24\.0\.0
- 运行依赖：3 个
- 首次发布：2026-05-25T01:44:52.210Z
- 最新版本发布：2026-10-26T07:23:28.663Z
- 近 30 天下载量：2515（2026-10-11 至 2026-11-09，npm 官方下载统计）
- 已发布版本数：22（近 12 个月 22 个）

## 中文简介

通过关键词、严重程度、CWE、CISA KEV状态和通过NIST国家脆弱性数据库进行CPE的搜索和审计。 (原始内容存档于2012-10-12). STIO or Streamable HTTP.

## 安装

```sh
npm install @cyanheads/nist-nvd-mcp-server
```

也可以使用：`pnpm add @cyanheads/nist-nvd-mcp-server`、`yarn add @cyanheads/nist-nvd-mcp-server`、`bun add @cyanheads/nist-nvd-mcp-server`

## README

# @cyanheads/nist-nvd-mcp-服务器

**通过关键词、严重程度、CWE、CISA KEV状态和通过NIST国家脆弱性数据库进行CPE的搜索和审计。 (原始内容存档于2012-10-12). STIO or Streamable HTTP.**

5个工具 • 2个资源

[![Version](https://img.shields.io/badge/Version-0.4.0-blue.svg?style=flat-square)](https://npmcn.com/package/%40cyanheads/nist-nvd-mcp-server/CHANGELOG.md) [![License](https://img.shields.io/badge/License-Apache%202.0-orange.svg?style=flat-square)](https://npmcn.com/package/%40cyanheads/nist-nvd-mcp-server/LICENSE) [![Docker](https://img.shields.io/badge/Docker-ghcr.io-2496ED?style=flat-square&logo=docker&logoColor=white)](https://github.com/users/cyanheads/packages/container/package/nist-nvd-mcp-server) [![MCP SDK](https://img.shields.io/badge/MCP%20SDK-%5E2.4.0-green.svg?style=flat-square)](https://modelcontextprotocol.io/) [![npm](https://img.shields.io/npm/v/@cyanheads/nist-nvd-mcp-server?style=flat-square&logo=npm&logoColor=white)](https://www.npmjs.com/package/@cyanheads/nist-nvd-mcp-server) [![TypeScript](https://img.shields.io/badge/TypeScript-%5E7.0.2-3178C6.svg?style=flat-square)](https://www.typescriptlang.org/) [![Bun](https://img.shields.io/badge/Bun-v1.4.4-blueviolet.svg?style=flat-square)](https://bun.sh/)

[![Install in Claude Desktop](https://img.shields.io/badge/Install_in-Claude_Desktop-D97757?style=for-the-badge&logo=anthropic&logoColor=white)](https://github.com/cyanheads/nist-nvd-mcp-server/releases/latest/download/nist-nvd-mcp-server.mcpb) [![Install in Cursor](https://cursor.com/deeplink/mcp-install-dark.svg)](https://cursor.com/en/install-mcp?name=nist-nvd-mcp-server&config=eyJjb21tYW5kIjoibnB4IiwiYXJncyI6WyIteSIsIkBjeWFuaGVhZHMvbmlzdC1udmQtbWNwLXNlcnZlciJdfQ==) [![Install in VS Code](https://img.shields.io/badge/VS_Code-Install_Server-0098FF?style=for-the-badge&logo=visualstudiocode&logoColor=white)](https://vscode.dev/redirect?url=vscode:mcp/install?%7B%22name%22%3A%22nist-nvd-mcp-server%22%2C%22command%22%3A%22npx%22%2C%22args%22%3A%5B%22-y%22%2C%22%40cyanheads%2Fnist-nvd-mcp-server%22%5D%7D)

[![Framework](https://img.shields.io/badge/Built%20on-@cyanheads/mcp--ts--core-67E8F9?style=flat-square)](https://www.npmjs.com/package/@cyanheads/mcp-ts-core)

**公共主机服务器 :** [https://nist-nvd.caseyjhand.com/mcp 页面存档备份,存于互联网档案馆](https://nist-nvd.caseyjhand.com/mcp)

* * *

## 概览

CVE和CPE数据来自NIST国家脆弱性数据库. 通过关键词,严重性,CWE,或CISA KEV状态进行搜索和审计的弱点,将产品解析为CPE名称,并跟踪一个CVE的修订历史.

### 工具

| 工具 | 说明 |
| :-- | :-- |
| `nvd_search_cves` | 通过关键词,严重性,CWE,日期范围,或CISA KEV状态来搜索 CVEs. |
| `nvd_get_cve` | 通过 ID 获取一个或多个 CVES —— 完整的 CVSS 分数, CWE, CPE 配置, KEV 字段, 以及引用 . |
| `nvd_search_cpes` | 通过产品关键词或部分匹配字符串来搜索NVD CPE词典. |
| `nvd_audit_cpe` | 通过CPE名称或虚拟匹配字符串查找所有影响特定产品版本的 CVES. |
| `nvd_get_cve_history` | 检索一个CVE的变迁历史——分数修订,状态过渡和参考添加. |

### 资源

| 资源 | 说明 |
| :-- | :-- |
| `nvd://cve/{cveId}` | 以 ID 进行完整 CVE 记录——与 `nvd_get_cve` 对于一个单一的ID,作为注射语境的稳定URI. |
| `skill://nist-nvd-guide/SKILL.md` | 产品适用性、识别链、严重程度解释和覆盖指导. |

CVE 资源数据也可通过 `nvd_get_cve`。所出版的指南也可用于插件安装 [`skills/nist-nvd-guide/SKILL.md`](https://npmcn.com/package/%40cyanheads/nist-nvd-mcp-server/skills/nist-nvd-guide/SKILL.md)。 。 。 .

## 能力参考

默认的超大小读取限制夹: 2000 用于 CVE 搜索,审计,和历史; 10000 用于 CPE 搜索; 100 ID 用于批量搜索. 中断通话报告 `requestedLimit`, (中文(简体) ), `effectiveLimit`,并在两个输出表面发出通知。 批量查找验证每个提供的ID和清单,除已处理的前缀外,还要正常、复制 `unprocessedIds`· ; `missingIds` 封面只询问身份证。 设定 `NVD_CLAMP_LIMITS=false` 在启动前恢复所公布的最大比例并拒绝过大的请求。 0,负,分数限制仍然无效.

### `nvd_search_cves` 工具

-   全文关键词搜索(AND语义跨字),或 `exactPhrase: true` 用于精确的句式匹配 —— 需要 `keyword`
-   过滤器: CVSS 重度波段(低/中/高/高/低等) `severityVersion: "v3"` 或者说 `"v4"`),CWEID,CISA KEV状态, `noRejected` (默认真实)
-   日期过滤器 : `pubDays`编号 :`lastModDays` 方便短手(自动密闭到120天,在浓缩中报告的夹克)或明确的ISO 8601射程(最长为120天,两端都需要);每轴两种形式相互排斥
-   接通 `limit` (截至2000年,缺省20个)和 `offset`
-   总是返回简短摘要, 并带有简略描述; 调用 `nvd_get_cve` 详细情况

* * *

### `nvd_get_cve` 工具

-   每拨100 CVE 身份证
-   全模式 (默认): CVSS 得分跨越 v2.0/v3.0/v3.1.v4.0, CWE 弱点, CPE 配置, CISA KEV 字段, 引用
-   `brief: true` 返回已修剪的行(ID、状态、最重度、KEV名称、简略描述)——建议批次超过10个
-   `includeReferences` 财务报告和审定财务报表 `includeConfigurations` 默认为真; 设置出错以省略两个输出表面的字段. `allLanguages: true` 保留所有本地化描述, 而不是只使用英语
-   `missingIds` 浓缩字段列出任何请求的ID NVD没有返回
-   输出表面都包含每个选定的参考和CPE配置;在NVD提供时会出现可选的SSVC评估

* * *

### `nvd_search_cpes` 工具

-   关键词搜索( 如. `"apache http server"`)或部分CPEv2.3图案通过 `cpeMatchString` - 至少需要一个
-   返回完整的CPE名称、人可读标题、贬值状态和替换CPE
-   接通 `limit` (最多10 000人,缺省20人)和 `offset` ——供应商级关键词可以匹配上万个条目,因此页面而不是进一步缩小
-   使用时间 `nvd_audit_cpe` 解决产品需要的确切CPE名称

* * *

### `nvd_audit_cpe` 工具

-   两种模式:精确 `cpeName` (NVD自动应用) `isVulnerable`)或(或) `virtualMatchString` 可选 `versionStart`编号 :`versionEnd` 界限(包括/排他性)
-   客户端 `severityMin` 在所有 CVSS 度量标准中以最高的重度波段过滤取取的页面;标题仍然遵循最高的分数。 它只能去除什么 `limit` 检索
-   返回完整的 CVE 记录( CVSS 分数、 CWE、 CPE 配置、 KEV 字段、 引用)
-   `includeReferences` 财务报告和审定财务报表 `includeConfigurations` 默认为真; 假将字段从两个输出表面省去。 SSVC评估仍然是可选的
-   接通 `limit` (截至2000年,缺省20个)和 `offset` - 页数限制不大,而不是提高,因为每项结果都是完整的记录
-   `auditTarget` 浓缩场与使用的CPE标识符相呼应,因此调用者可以验证正确的产品被询问

* * *

### `nvd_get_cve_history` 工具

-   返回更改事件: CVSS 修订,状态过渡,引用添加,CPE配置更新
-   `order` 选择锚端—— `newest` (默认)读最近第一, `oldest` 读取 NVD 的本地顺序
-   通过 `limit` (截至2000年,缺省20个)和 `offset`,从结尾计算 `order` 锁定到
-   没有 API 密钥, 历史终点明显会慢得多 —— set `NVD_API_KEY` 提高 `NVD_REQUEST_TIMEOUT_MS`

* * *

### `nvd://cve/{cveId}` 资源

-   完整 CVE 记录为 `application/json` 数据与 `nvd_get_cve` 包含参考文献和仅使用英文的描述
-   `cveId` 必须匹配 `CVE-YYYY-NNNNN`; 形状良好但未知的ID抛出 `cve_not_found`

## 特征

建造在 [`@cyanheads/mcp-ts-core`](https://github.com/cyanheads/mcp-ts-core): stdio和可流式的 HTTP 传输器,可插接式(`none` 编号 : `jwt` 编号 : `oauth`),可互换存储(`in-memory`, (中文(简体) ), `filesystem`, (中文(简体) ), `Supabase`, (中文(简体) ), `Cloudflare KV/R2/D1`),结构化记录,可选择的OpenTeleometry tracking.

NVD 特性 :

-   请求节奏器执行 NVD 的 5 req/ 30s( 无键) 和 50 req/ 30s( 有键) 限制, 自动排队, 至少从窗口和限制中产生请求间间隔
-   重试将起搏器包起来,而不是坐在里面——每一次尝试都会在排队时自己转弯,所以重试与速率预算相对比,而不是冲过去
-   403号 `Retry-After` 在 NVD 窗口重排之前, 保留整个队列; 无密钥, 403 失败速度和名称 `NVD_API_KEY` 而不是将5个要求的预算花在30秒窗口内无法超过的重试上
-   决定性的拒绝会很快失败, 而不是消耗重试 —— NVD 回答一个糟糕的参数和一个被拒绝的 API 密钥, 仅用 HTTP 404 分隔 `message` 标题,所以一个被拒绝的密钥表面作为配置断层命名 `NVD_API_KEY` 而不是作为一个不正确的 CVE ID
-   NVD 块页面返回一个不可重试的被封请求错误; 配置错误的 JSON 和响应信封返回一个无效的响应错误, 并带有回收指导
-   通过响应机构读取请求超时和取消呼叫程序仍然有效

方便代理输出 :

-   一个 `enrichment` ,每个响应,在两个 `structuredContent` 和已公布的文本——总结果、返回数、页偏移、实际应用的过滤器、以及任何日期解密事件,因此代理商可以对所询问的真实内容提出理由
-   `missingIds` 在批量 CVE 中查找——每ID的等同检查而不是默不作声的部分结果
-   CPE在审计答复中回响—— `cpeName` 或者说 `virtualMatchString` 反射回射,以便呼叫者能够验证正确的产品
-   点出原因的空结果通知 — 一个无与伦比的查询, 一个清空页面的重度阈值, 一个经过结果集结尾的抵消, 一个干净的审计("没有已知的弱点") 被分解, 而不是全部读取为错误或"没有发现"

## 开始

### 公共托管实例

可在 `https://nist-nvd.caseyjhand.com/mcp` 无需安装。 通过可流式HTTP将 MCP 客户端指向它 :

```json
{
  "mcpServers": {
    "nist-nvd-mcp-server": {
      "type": "streamable-http",
      "url": "https://nist-nvd.caseyjhand.com/mcp"
    }
  }
}
```

### 自有/当地

在您的 MCP 客户端配置文件中添加以下内容 .

```json
{
  "mcpServers": {
    "nist-nvd-mcp-server": {
      "type": "stdio",
      "command": "bunx",
      "args": ["@cyanheads/nist-nvd-mcp-server@latest"],
      "env": {
        "MCP_TRANSPORT_TYPE": "stdio",
        "MCP_LOG_LEVEL": "info",
        "NVD_API_KEY": "your-api-key"
      }
    }
  }
}
```

或者用 npx( 不需要 Bun) :

```json
{
  "mcpServers": {
    "nist-nvd-mcp-server": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "@cyanheads/nist-nvd-mcp-server@latest"],
      "env": {
        "MCP_TRANSPORT_TYPE": "stdio",
        "MCP_LOG_LEVEL": "info",
        "NVD_API_KEY": "your-api-key"
      }
    }
  }
}
```

或与道克相会:

```json
{
  "mcpServers": {
    "nist-nvd-mcp-server": {
      "type": "stdio",
      "command": "docker",
      "args": [
        "run", "-i", "--rm",
        "-e", "MCP_TRANSPORT_TYPE=stdio",
        "-e", "NVD_API_KEY=your-api-key",
        "ghcr.io/cyanheads/nist-nvd-mcp-server:latest"
      ]
    }
  }
}
```

对于可流式HTTP,设置传输并启动服务器:

```sh
MCP_TRANSPORT_TYPE=http MCP_HTTP_PORT=3010 NVD_API_KEY=... bun run start:http
# Server listens at http://localhost:3010/mcp
```

### 先决条件

-   [Bun v1.4.0 (英语)](https://bun.sh/) 或更高(或Node.js v24+).
-   可选 : [NVD API 密钥](https://nvd.nist.gov/developers/request-an-api-key) ——免费,将费率限额从5 req/30提高到50 req/30.

### 安装

1.  **清除仓库 :**

```sh
git clone https://github.com/cyanheads/nist-nvd-mcp-server.git
```

2.  **导航到目录 :**

```sh
cd nist-nvd-mcp-server
```

3.  **安装依赖性 :**

```sh
bun install
```

4.  **配置环境 :**

```sh
cp .env.example .env
# edit .env and set NVD_API_KEY if you have one
```

## 配置

| 变量 | 说明 | 默认 |
| :-- | :-- | :-- |
| `NVD_API_KEY` | NVD API 密钥 。 没有它,利率限制为5雷克/30;加上它,50雷克/30。 一个免费的 [nvd.nist.gov/ 开发者/请求- api- key](https://nvd.nist.gov/developers/request-an-api-key)。 。 。 . | —— 说 |
| `NVD_REQUEST_TIMEOUT_MS` | 请求超时数以毫秒计 没有 API 密钥, 历史终点很慢 — 如果使用的话, 将提高到 60000 `nvd_get_cve_history` 没有钥匙. | `10000` |
| `NVD_CLAMP_LIMITS` | 克兰普超大小读取到2000 CVES/events, 10000 CPE,或 100 CVE IDs. `false` 恢复计划最大和拒绝. | `true` |
| `MCP_TRANSPORT_TYPE` | 运输: `stdio` 或者说 `http`。 。 。 . | `stdio` |
| `MCP_HTTP_PORT` | HTTP 服务器端口 . | `3010` |
| `MCP_AUTH_MODE` | Auth 模式 : `none`, (中文(简体) ), `jwt`,或 `oauth`。 。 。 . | `none` |
| `MCP_LOG_LEVEL` | 日志级别(RFC 5424). | `info` |
| `LOGS_DIR` | 日志文件目录(只有Node.js). | `<project-root>/logs` |
| `OTEL_ENABLED` | 启用 [OpenTelemet 仪器](https://github.com/cyanheads/mcp-ts-core/tree/main/docs/telemetry)。 。 。 . | `false` |

见 [`.env.example`](https://npmcn.com/package/%40cyanheads/nist-nvd-mcp-server/.env.example) 用于完整可选覆盖列表.

节点和邦加载 `.env` 从工作目录中解析服务器配置。 导出变量优先 。 无效 `NVD_CLAMP_LIMITS` 数值失败配置验证; 使用 `true` 或者说 `false`。 。 。 .

## 运行服务器

### 地方发展

-   **构建和运行 :**
    
    ```sh
    # One-time build
    bun run rebuild
    
    # Run the built server
    bun run start:stdio
    # or
    bun run start:http
    ```
    
-   **运行检查和测试 :**
    
    ```sh
    bun run devcheck   # Lint, format, typecheck, security
    bun run test       # Vitest test suite
    bun run lint:mcp   # Validate MCP definitions against spec
    ```
    

### 夹克

```sh
docker build -t nist-nvd-mcp-server .
docker run --rm -e NVD_API_KEY=your-key -p 3010:3010 nist-nvd-mcp-server
```

Dockerfile 默认为 HTTP 传输、 无国籍会话模式和日志到 `/var/log/nist-nvd-mcp-server`。默认情况下安装了 OpenTeleometry 端端依赖性 `--build-arg OTEL_ENABLED=false` 以略去它们.

## 项目结构

| 目录 | 目的 |
| :-- | :-- |
| `src/index.ts` | `createApp()` 进入点——登记工具/资源及其服务. |
| `src/config` | 服务器特定环境变量与Zod解析并验证. |
| `src/mcp-server/tools` | 工具定义`*.tool.ts`) (中文(简体) ). |
| `src/mcp-server/resources` | 资源定义`*.resource.ts`) (中文(简体) ). |
| `src/services/nvd-http` | NVD HTTP 客户端带有速率限制间隔并重试. |
| `src/services/nvd-cve` | CVE服务——搜索,逐一获取ID,CPE审计,改变历史,正常化. |
| `src/services/nvd-cpe` | CPE服务——字典搜索与正常化. |
| `src/services/nvd-source` | Source service——解决NVD贡献者对其已公布名称的标识. |
| `tests/` | 单位和综合测试镜像 `src/`。 。 。 . |

## 发展指南

见 [`CLAUDE.md`](https://npmcn.com/package/%40cyanheads/nist-nvd-mcp-server/CLAUDE.md) 发展准则和建筑规则。 简本:

-   搬运工投掷,框架渔获量——否 `try/catch` 在工具逻辑中
-   使用 `ctx.log` 请求范围伐木, `ctx.state` 租户范围储存
-   通过桶登记新的工具和资源 `src/mcp-server/*/definitions/index.ts`
-   环绕外部 API 调用: 验证 生 → 规范到域类型 → 返回输出计划; 永远不要编织缺失的字段

## 捐款

问题值得欢迎。 提交前进行检查和测试:

```sh
bun run devcheck
bun run test
```

## 许可证

阿帕奇-2.0 — 见 [自由主义](https://npmcn.com/package/%40cyanheads/nist-nvd-mcp-server/LICENSE) 详细情况.

## 常见问题

### @cyanheads/nist-nvd-mcp-server 是什么？

通过关键词、严重程度、CWE、CISA KEV状态和通过NIST国家脆弱性数据库进行CPE的搜索和审计。 \(原始内容存档于2012-10-12\)\. STIO or Streamable HTTP\.

### 如何安装 @cyanheads/nist-nvd-mcp-server？

在项目目录运行 npm install @cyanheads/nist-nvd-mcp-server，或使用 pnpm add / yarn add / bun add。它还提供命令行工具 nist-nvd-mcp-server，可以用 npx nist-nvd-mcp-server 直接运行。

### @cyanheads/nist-nvd-mcp-server 支持 TypeScript 吗？

支持。包内自带 TypeScript 类型声明（package\.json 声明了 types 入口），安装后即可获得类型提示，无需再安装 @types 包。

### @cyanheads/nist-nvd-mcp-server 支持 ESM 还是 CommonJS？

以 ES Module 形式发布，推荐使用 import 引入。在 CommonJS 项目中，Node\.js 20\.19\+ / 22\.12\+ 可以直接 require\(\) 不含顶层 await 的 ES Module，更早的版本需要改用动态 import\(\)。

### @cyanheads/nist-nvd-mcp-server 需要什么版本的 Node\.js？

package\.json 的 engines 字段要求 Node\.js \>=24\.0\.0。版本不符时 npm 默认只给出警告，开启 engine-strict 后会拒绝安装。

### @cyanheads/nist-nvd-mcp-server 可以商用吗？

@cyanheads/nist-nvd-mcp-server 使用 Apache-2\.0 许可。宽松许可：允许商业使用、修改和再分发，并附带明确的专利授权；分发时需保留许可与 NOTICE 文件，修改过的文件要注明改动。以上为概括，不构成法律意见，请以许可原文为准。

### @cyanheads/nist-nvd-mcp-server 的下载量有多少？

根据 npm 官方下载统计，@cyanheads/nist-nvd-mcp-server 在 2026/10/11 – 2026/11/09 这 30 天内被下载 2,515 次，日均约 84 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入，适合横向比较热度，不能直接等同于使用人数。

### @cyanheads/nist-nvd-mcp-server 还在维护吗？

最新版本 0\.4\.0 发布于 2026/10/26（16 天前）；至今共发布 22 个版本，其中过去 12 个月发布了 22 个；首次发布于 2026/05/25。发布频率只是参考信号：功能稳定的工具可能很少需要更新，建议结合源码仓库的 issue 和提交记录判断。

