@cyanheads/nist-nvd-mcp-server 0.1.14 → 0.1.15

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/AGENTS.md CHANGED
@@ -1,8 +1,8 @@
1
1
  # Developer Protocol
2
2
 
3
3
  **Server:** nist-nvd-mcp-server
4
- **Version:** 0.1.14
5
- **Framework:** [@cyanheads/mcp-ts-core](https://www.npmjs.com/package/@cyanheads/mcp-ts-core) `^0.10.14`
4
+ **Version:** 0.1.15
5
+ **Framework:** [@cyanheads/mcp-ts-core](https://www.npmjs.com/package/@cyanheads/mcp-ts-core) `^0.11.0`
6
6
  **Engines:** Bun ≥1.3.0, Node ≥24.0.0
7
7
  **MCP SDK:** `@modelcontextprotocol/sdk` ^1.29.0
8
8
  **Zod:** ^4.4.3
@@ -35,7 +35,7 @@ Tailor suggestions to what's actually missing or stale — don't recite the full
35
35
  - **Logic throws, framework catches.** Tool/resource handlers are pure — throw on failure, no `try/catch`. Plain `Error` is fine; the framework catches, classifies, and formats. Use error factories (`notFound()`, `validationError()`, etc.) when the error code matters.
36
36
  - **Use `ctx.log`** for request-scoped logging. No `console` calls.
37
37
  - **Use `ctx.state`** for tenant-scoped storage. Never access persistence directly.
38
- - **Check `ctx.elicit` / `ctx.sample`** for presence before calling.
38
+ - **Check `ctx.elicit`** for presence before calling.
39
39
  - **Secrets in env vars only** — never hardcoded.
40
40
  - **Close the loop on issues.** When implementing work tracked by a GitHub issue, comment on the issue with what landed and close it. Do both — a comment without a close leaves stale issues open; a close without a comment leaves no record of what shipped. The comment is for future readers — state the concrete changes, not the conversation that produced them.
41
41
 
@@ -162,10 +162,14 @@ Handlers receive a unified `ctx` object. Key properties:
162
162
  | Property | Description |
163
163
  |:---------|:------------|
164
164
  | `ctx.log` | Request-scoped logger — `.debug()`, `.info()`, `.notice()`, `.warning()`, `.error()`. Auto-correlates requestId, traceId, tenantId. |
165
- | `ctx.state` | Tenant-scoped KV — `.get(key)`, `.set(key, value, { ttl? })`, `.delete(key)`, `.list(prefix, { cursor, limit })`. Accepts any serializable value. |
165
+ | `ctx.state` | Tenant-scoped KV — `.get(key)`, `.set(key, value, { ttl? })`, `.delete(key)`, `.getMany(keys)`, `.list(prefix, { cursor, limit })`. Accepts any serializable value. |
166
+ | `ctx.elicit` | Ask user for structured input — form call `(message, schema)` or `.url(message, url)` for an external link. **Check for presence first:** `if (ctx.elicit) { ... }` |
167
+ | `ctx.enrich` | Success-path agent context (empty-result notices, query echo, pagination totals) — `ctx.enrich(...)` or `.notice()` / `.total()` / `.echo()` / `.truncated()`. Reaches `structuredContent` and `content[]`; lands only when the definition declares an `enrichment` block (no-op otherwise). |
168
+ | `ctx.content` | Non-text content blocks — `.image(data, mimeType)`, `.audio(data, mimeType)`, or `ctx.content(block)` for a raw block. Prepended to `content[]` after `format()`; never enters `structuredContent`. |
166
169
  | `ctx.signal` | `AbortSignal` for cancellation. Forwarded to NVD HTTP requests. |
170
+ | `ctx.progress` | Task progress (present when `task: true`) — `.setTotal(n)`, `.increment()`, `.update(message)`. |
167
171
  | `ctx.requestId` | Unique request ID. |
168
- | `ctx.tenantId` | Tenant ID from JWT or `'default'` for stdio. |
172
+ | `ctx.tenantId` | Tenant ID from JWT; `'default'` for stdio or HTTP with auth off. |
169
173
 
170
174
  ---
171
175
 
@@ -279,6 +283,7 @@ Available skills:
279
283
  | `git-wrapup` | Land working-tree changes as a versioned commit + annotated tag — version bump, changelog, verify, tag. Local only. |
280
284
  | `release-and-publish` | Push + npm + MCP Registry + GH Release + Docker. Picks up from `git-wrapup` |
281
285
  | `maintenance` | Investigate changelogs, adopt upstream changes, sync skills to agent dirs |
286
+ | `orchestrations` | Chain task skills into a gated multi-phase pipeline — build-out, QA-fix, update-ship — when you can spawn sub-agents |
282
287
  | `report-issue-framework` | File a bug or feature request against `@cyanheads/mcp-ts-core` via `gh` CLI |
283
288
  | `report-issue-local` | File a bug or feature request against this server's own repo via `gh` CLI |
284
289
  | `techniques` | Catalog of response/data-shaping techniques — overflow handling, payload shaping, retrieval patterns |
@@ -288,13 +293,12 @@ Available skills:
288
293
  | `api-context` | Context interface, logger, state, progress |
289
294
  | `api-errors` | McpError, JsonRpcErrorCode, error patterns |
290
295
  | `api-linter` | Definition linter rule catalog — invoked by `bun run lint:mcp` and `devcheck` |
296
+ | `api-mirror` | MirrorService: persistent self-refreshing local mirror (embedded SQLite + FTS5) of a bulk upstream dataset — Tier 3 opt-in |
291
297
  | `api-services` | LLM, Speech, Graph services |
292
298
  | `api-testing` | createMockContext, test patterns |
293
299
  | `api-utils` | Formatting, parsing, security, pagination, scheduling, telemetry helpers |
294
300
  | `api-telemetry` | OTel catalog: spans, metrics, completion logs, env config, cardinality rules |
295
- | `api-mirror` | MirrorService: persistent local SQLite mirror of a bulk upstream dataset — defineMirror, sqliteMirrorStore, FTS5 |
296
301
  | `api-workers` | Cloudflare Workers runtime |
297
- | `orchestrations` | Chain task skills into a gated multi-phase pipeline (build-out, QA-fix, update-ship) when sub-agents are available |
298
302
 
299
303
  When you complete a skill's checklist, check the boxes and add a completion timestamp at the end (e.g., `Completed: 2026-03-11`).
300
304
 
@@ -310,16 +314,20 @@ When you complete a skill's checklist, check the boxes and add a completion time
310
314
  | `bun run rebuild` | Clean + build |
311
315
  | `bun run clean` | Remove build artifacts |
312
316
  | `bun run devcheck` | Lint + format + typecheck + security + changelog sync |
313
- | `bun run audit:refresh` | Delete `bun.lock`, reinstall, re-audit. Use when `devcheck` flags a transitive advisory — stale lockfile can mask already-patched deps. If advisory survives, it's real. |
317
+ | `bun run audit:refresh` | Delete `bun.lock`, reinstall, and re-run `bun audit`. Use when `devcheck` flags a transitive advisory — Bun's `update` is sticky on transitive resolutions, so the advisory may be a stale-lockfile false positive. If it survives the refresh, it's real. |
318
+ | `bun run lint:mcp` | Run the MCP definition linter standalone (rule catalog: `api-linter` skill) |
319
+ | `bun run lint:packaging` | Packaging surface checks — `server.json`/`manifest.json` env-var parity (run by devcheck) |
320
+ | `bun run list-skills` | Print the skill registry |
314
321
  | `bun run tree` | Generate directory structure doc |
315
- | `bun run format` | Auto-fix formatting |
316
- | `bun run test` | Run tests |
322
+ | `bun run format` | Auto-fix formatting (safe fixes only) |
323
+ | `bun run format:unsafe` | Also apply Biome's unsafe autofixes — review the diff; they can change behavior |
324
+ | `bun run test` | Run tests (Vitest — use `bun run test`, not `bun test`) |
317
325
  | `bun run start:stdio` | Production mode (stdio) |
318
326
  | `bun run start:http` | Production mode (HTTP) |
319
327
  | `bun run changelog:build` | Regenerate `CHANGELOG.md` from `changelog/*.md` |
320
328
  | `bun run changelog:check` | Verify `CHANGELOG.md` is in sync (used by devcheck) |
321
329
  | `bun run release:github` | Create GitHub Release — constructs title from tag, conditionally attaches `.mcpb` bundle |
322
- | `bun run bundle` | Build and pack as `.mcpb` for one-click Claude Desktop install |
330
+ | `bun run bundle` | Build, pack, and clean a `.mcpb` for one-click Claude Desktop install |
323
331
 
324
332
  ---
325
333
 
package/CLAUDE.md CHANGED
@@ -1,8 +1,8 @@
1
1
  # Developer Protocol
2
2
 
3
3
  **Server:** nist-nvd-mcp-server
4
- **Version:** 0.1.14
5
- **Framework:** [@cyanheads/mcp-ts-core](https://www.npmjs.com/package/@cyanheads/mcp-ts-core) `^0.10.14`
4
+ **Version:** 0.1.15
5
+ **Framework:** [@cyanheads/mcp-ts-core](https://www.npmjs.com/package/@cyanheads/mcp-ts-core) `^0.11.0`
6
6
  **Engines:** Bun ≥1.3.0, Node ≥24.0.0
7
7
  **MCP SDK:** `@modelcontextprotocol/sdk` ^1.29.0
8
8
  **Zod:** ^4.4.3
@@ -35,7 +35,7 @@ Tailor suggestions to what's actually missing or stale — don't recite the full
35
35
  - **Logic throws, framework catches.** Tool/resource handlers are pure — throw on failure, no `try/catch`. Plain `Error` is fine; the framework catches, classifies, and formats. Use error factories (`notFound()`, `validationError()`, etc.) when the error code matters.
36
36
  - **Use `ctx.log`** for request-scoped logging. No `console` calls.
37
37
  - **Use `ctx.state`** for tenant-scoped storage. Never access persistence directly.
38
- - **Check `ctx.elicit` / `ctx.sample`** for presence before calling.
38
+ - **Check `ctx.elicit`** for presence before calling.
39
39
  - **Secrets in env vars only** — never hardcoded.
40
40
  - **Close the loop on issues.** When implementing work tracked by a GitHub issue, comment on the issue with what landed and close it. Do both — a comment without a close leaves stale issues open; a close without a comment leaves no record of what shipped. The comment is for future readers — state the concrete changes, not the conversation that produced them.
41
41
 
@@ -162,10 +162,14 @@ Handlers receive a unified `ctx` object. Key properties:
162
162
  | Property | Description |
163
163
  |:---------|:------------|
164
164
  | `ctx.log` | Request-scoped logger — `.debug()`, `.info()`, `.notice()`, `.warning()`, `.error()`. Auto-correlates requestId, traceId, tenantId. |
165
- | `ctx.state` | Tenant-scoped KV — `.get(key)`, `.set(key, value, { ttl? })`, `.delete(key)`, `.list(prefix, { cursor, limit })`. Accepts any serializable value. |
165
+ | `ctx.state` | Tenant-scoped KV — `.get(key)`, `.set(key, value, { ttl? })`, `.delete(key)`, `.getMany(keys)`, `.list(prefix, { cursor, limit })`. Accepts any serializable value. |
166
+ | `ctx.elicit` | Ask user for structured input — form call `(message, schema)` or `.url(message, url)` for an external link. **Check for presence first:** `if (ctx.elicit) { ... }` |
167
+ | `ctx.enrich` | Success-path agent context (empty-result notices, query echo, pagination totals) — `ctx.enrich(...)` or `.notice()` / `.total()` / `.echo()` / `.truncated()`. Reaches `structuredContent` and `content[]`; lands only when the definition declares an `enrichment` block (no-op otherwise). |
168
+ | `ctx.content` | Non-text content blocks — `.image(data, mimeType)`, `.audio(data, mimeType)`, or `ctx.content(block)` for a raw block. Prepended to `content[]` after `format()`; never enters `structuredContent`. |
166
169
  | `ctx.signal` | `AbortSignal` for cancellation. Forwarded to NVD HTTP requests. |
170
+ | `ctx.progress` | Task progress (present when `task: true`) — `.setTotal(n)`, `.increment()`, `.update(message)`. |
167
171
  | `ctx.requestId` | Unique request ID. |
168
- | `ctx.tenantId` | Tenant ID from JWT or `'default'` for stdio. |
172
+ | `ctx.tenantId` | Tenant ID from JWT; `'default'` for stdio or HTTP with auth off. |
169
173
 
170
174
  ---
171
175
 
@@ -279,6 +283,7 @@ Available skills:
279
283
  | `git-wrapup` | Land working-tree changes as a versioned commit + annotated tag — version bump, changelog, verify, tag. Local only. |
280
284
  | `release-and-publish` | Push + npm + MCP Registry + GH Release + Docker. Picks up from `git-wrapup` |
281
285
  | `maintenance` | Investigate changelogs, adopt upstream changes, sync skills to agent dirs |
286
+ | `orchestrations` | Chain task skills into a gated multi-phase pipeline — build-out, QA-fix, update-ship — when you can spawn sub-agents |
282
287
  | `report-issue-framework` | File a bug or feature request against `@cyanheads/mcp-ts-core` via `gh` CLI |
283
288
  | `report-issue-local` | File a bug or feature request against this server's own repo via `gh` CLI |
284
289
  | `techniques` | Catalog of response/data-shaping techniques — overflow handling, payload shaping, retrieval patterns |
@@ -288,13 +293,12 @@ Available skills:
288
293
  | `api-context` | Context interface, logger, state, progress |
289
294
  | `api-errors` | McpError, JsonRpcErrorCode, error patterns |
290
295
  | `api-linter` | Definition linter rule catalog — invoked by `bun run lint:mcp` and `devcheck` |
296
+ | `api-mirror` | MirrorService: persistent self-refreshing local mirror (embedded SQLite + FTS5) of a bulk upstream dataset — Tier 3 opt-in |
291
297
  | `api-services` | LLM, Speech, Graph services |
292
298
  | `api-testing` | createMockContext, test patterns |
293
299
  | `api-utils` | Formatting, parsing, security, pagination, scheduling, telemetry helpers |
294
300
  | `api-telemetry` | OTel catalog: spans, metrics, completion logs, env config, cardinality rules |
295
- | `api-mirror` | MirrorService: persistent local SQLite mirror of a bulk upstream dataset — defineMirror, sqliteMirrorStore, FTS5 |
296
301
  | `api-workers` | Cloudflare Workers runtime |
297
- | `orchestrations` | Chain task skills into a gated multi-phase pipeline (build-out, QA-fix, update-ship) when sub-agents are available |
298
302
 
299
303
  When you complete a skill's checklist, check the boxes and add a completion timestamp at the end (e.g., `Completed: 2026-03-11`).
300
304
 
@@ -310,16 +314,20 @@ When you complete a skill's checklist, check the boxes and add a completion time
310
314
  | `bun run rebuild` | Clean + build |
311
315
  | `bun run clean` | Remove build artifacts |
312
316
  | `bun run devcheck` | Lint + format + typecheck + security + changelog sync |
313
- | `bun run audit:refresh` | Delete `bun.lock`, reinstall, re-audit. Use when `devcheck` flags a transitive advisory — stale lockfile can mask already-patched deps. If advisory survives, it's real. |
317
+ | `bun run audit:refresh` | Delete `bun.lock`, reinstall, and re-run `bun audit`. Use when `devcheck` flags a transitive advisory — Bun's `update` is sticky on transitive resolutions, so the advisory may be a stale-lockfile false positive. If it survives the refresh, it's real. |
318
+ | `bun run lint:mcp` | Run the MCP definition linter standalone (rule catalog: `api-linter` skill) |
319
+ | `bun run lint:packaging` | Packaging surface checks — `server.json`/`manifest.json` env-var parity (run by devcheck) |
320
+ | `bun run list-skills` | Print the skill registry |
314
321
  | `bun run tree` | Generate directory structure doc |
315
- | `bun run format` | Auto-fix formatting |
316
- | `bun run test` | Run tests |
322
+ | `bun run format` | Auto-fix formatting (safe fixes only) |
323
+ | `bun run format:unsafe` | Also apply Biome's unsafe autofixes — review the diff; they can change behavior |
324
+ | `bun run test` | Run tests (Vitest — use `bun run test`, not `bun test`) |
317
325
  | `bun run start:stdio` | Production mode (stdio) |
318
326
  | `bun run start:http` | Production mode (HTTP) |
319
327
  | `bun run changelog:build` | Regenerate `CHANGELOG.md` from `changelog/*.md` |
320
328
  | `bun run changelog:check` | Verify `CHANGELOG.md` is in sync (used by devcheck) |
321
329
  | `bun run release:github` | Create GitHub Release — constructs title from tag, conditionally attaches `.mcpb` bundle |
322
- | `bun run bundle` | Build and pack as `.mcpb` for one-click Claude Desktop install |
330
+ | `bun run bundle` | Build, pack, and clean a `.mcpb` for one-click Claude Desktop install |
323
331
 
324
332
  ---
325
333
 
package/Dockerfile CHANGED
@@ -60,7 +60,7 @@ RUN --mount=type=cache,target=/root/.bun/install/cache \
60
60
  ARG OTEL_ENABLED=true
61
61
  RUN --mount=type=cache,target=/root/.bun/install/cache \
62
62
  if [ "$OTEL_ENABLED" = "true" ]; then \
63
- bun add @hono/otel \
63
+ bun add --omit=dev --ignore-scripts @hono/otel \
64
64
  @opentelemetry/instrumentation-http \
65
65
  @opentelemetry/exporter-metrics-otlp-http \
66
66
  @opentelemetry/exporter-trace-otlp-http \
package/README.md CHANGED
@@ -7,7 +7,7 @@
7
7
 
8
8
  <div align="center">
9
9
 
10
- [![Version](https://img.shields.io/badge/Version-0.1.14-blue.svg?style=flat-square)](./CHANGELOG.md) [![License](https://img.shields.io/badge/License-Apache%202.0-orange.svg?style=flat-square)](./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-^1.29.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-^6.0.3-3178C6.svg?style=flat-square)](https://www.typescriptlang.org/) [![Bun](https://img.shields.io/badge/Bun-v1.3.14-blueviolet.svg?style=flat-square)](https://bun.sh/)
10
+ [![Version](https://img.shields.io/badge/Version-0.1.15-blue.svg?style=flat-square)](./CHANGELOG.md) [![License](https://img.shields.io/badge/License-Apache%202.0-orange.svg?style=flat-square)](./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-^1.29.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-^6.0.3-3178C6.svg?style=flat-square)](https://www.typescriptlang.org/) [![Bun](https://img.shields.io/badge/Bun-v1.3.14-blueviolet.svg?style=flat-square)](https://bun.sh/)
11
11
 
12
12
  </div>
13
13
 
@@ -94,8 +94,9 @@ Full CVE audit for a specific product version.
94
94
 
95
95
  Track a CVE's lifecycle over time.
96
96
 
97
- - Returns change events in reverse-chronological order: CVSS revisions, status transitions, reference additions, CPE configuration updates
98
- - Paginated via `limit` and `offset`
97
+ - Returns change events: CVSS revisions, status transitions, reference additions, CPE configuration updates
98
+ - `order` picks which end to read from — `newest` (default) returns the most recent events first, `oldest` returns NVD's native oldest-first order
99
+ - Paginated via `limit` and `offset`, where `offset` counts from the end `order` anchors to
99
100
  - Note: the NVD history endpoint is significantly slower without an API key — set `NVD_API_KEY` and raise `NVD_REQUEST_TIMEOUT_MS` for reliable operation
100
101
 
101
102
  ## Resource
@@ -0,0 +1,24 @@
1
+ ---
2
+ summary: "nvd_get_cve_history gains an order input (newest/oldest) and no longer loses pages carrying Affected/SSVC change values; invalid_cve_id_format and cve_not_found now carry their declared recovery hints; nvd_search_cves' severity filter is documented as exact-band, not a floor."
3
+ breaking: false
4
+ security: false
5
+ ---
6
+
7
+ # 0.1.15 — 2026-07-27
8
+
9
+ ## Added
10
+
11
+ - **`order` input on `nvd_get_cve_history`** (`oldest` | `newest`, default `newest`) — pages change history from either end. `oldest` maps `offset` straight to NVD's native `startIndex` in one request; `newest` reverses it, adding a second tail-anchored request only when the history is longer than `limit`. The effective order is echoed in the `enrichment` block. ([#29](https://github.com/cyanheads/nist-nvd-mcp-server/issues/29))
12
+
13
+ ## Fixed
14
+
15
+ - **`nvd_get_cve_history` failed output validation on pages carrying `Affected` or `SSVC` changes** — NVD emits an array for `Affected` details and an object for `SSVC` details, which the `oldValue`/`newValue` string schema rejected, losing the entire page. Non-string values now serialize to JSON strings during normalization. ([#27](https://github.com/cyanheads/nist-nvd-mcp-server/issues/27))
16
+ - **`nvd_get_cve_history`'s `changes` output was documented as reverse-chronological but returned NVD's native oldest-first order** — the description now states the real ordering, resolved by the new `order` input above. ([#29](https://github.com/cyanheads/nist-nvd-mcp-server/issues/29))
17
+ - **`invalid_cve_id_format` and `cve_not_found` shipped no recovery hint** — both were thrown from `NvdCveService` via bare `validationError()`/`notFound()` rather than `ctx.fail()`, so the recovery text declared on `nvd_get_cve`, `nvd_get_cve_history`, and the `nvd://cve/{cveId}` resource never reached the caller. Throw sites now resolve `ctx.recoveryFor(reason)` so each carries the calling definition's own hint. ([#33](https://github.com/cyanheads/nist-nvd-mcp-server/issues/33))
18
+ - **`nvd_search_cves`' `severity` input described itself as "or above"** — NVD's severity parameters are exact-match, not a floor, so a `severity: "HIGH"` query silently dropped every `CRITICAL` result. The `severity` input and `filtersApplied.severity` enrichment now state the filter selects exactly one band and that covering several bands takes one call per band. ([#28](https://github.com/cyanheads/nist-nvd-mcp-server/issues/28))
19
+
20
+ ## Dependencies
21
+
22
+ - `@cyanheads/mcp-ts-core` ^0.10.14 → ^0.11.0
23
+ - `@biomejs/biome` ^2.5.3 → ^2.5.5
24
+ - `tsc-alias` ^1.9.0 → ^1.9.1
@@ -3,7 +3,18 @@
3
3
  * @module src/mcp-server/resources/definitions/nvd-cve
4
4
  */
5
5
  import { z } from '@cyanheads/mcp-ts-core';
6
+ import { JsonRpcErrorCode } from '@cyanheads/mcp-ts-core/errors';
6
7
  export declare const nvdCveResource: import("@cyanheads/mcp-ts-core").ResourceDefinition<z.ZodObject<{
7
8
  cveId: z.ZodString;
8
- }, z.core.$strip>, undefined, undefined>;
9
+ }, z.core.$strip>, undefined, readonly [{
10
+ readonly reason: "invalid_cve_id_format";
11
+ readonly code: JsonRpcErrorCode.ValidationError;
12
+ readonly when: "The cveId segment of the URI fails format validation.";
13
+ readonly recovery: "Use a URI of the form nvd://cve/CVE-YYYY-NNNNN, for example nvd://cve/CVE-2021-44228.";
14
+ }, {
15
+ readonly reason: "cve_not_found";
16
+ readonly code: JsonRpcErrorCode.NotFound;
17
+ readonly when: "The CVE ID is well-formed but NVD holds no record for it.";
18
+ readonly recovery: "Verify the CVE ID is correct, or use nvd_search_cves to find it by keyword or date range.";
19
+ }]>;
9
20
  //# sourceMappingURL=nvd-cve.resource.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"nvd-cve.resource.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/resources/definitions/nvd-cve.resource.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAY,CAAC,EAAE,MAAM,wBAAwB,CAAC;AAMrD,eAAO,MAAM,cAAc;;wCAqCzB,CAAC"}
1
+ {"version":3,"file":"nvd-cve.resource.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/resources/definitions/nvd-cve.resource.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAY,CAAC,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAKjE,eAAO,MAAM,cAAc;;;;;;;;;;;;GA2DzB,CAAC"}
@@ -3,7 +3,7 @@
3
3
  * @module src/mcp-server/resources/definitions/nvd-cve
4
4
  */
5
5
  import { resource, z } from '@cyanheads/mcp-ts-core';
6
- import { notFound, validationError } from '@cyanheads/mcp-ts-core/errors';
6
+ import { JsonRpcErrorCode } from '@cyanheads/mcp-ts-core/errors';
7
7
  import { getNvdCveService } from '../../../services/nvd-cve/nvd-cve-service.js';
8
8
  const CVE_ID_REGEX = /^CVE-\d{4}-\d{4,}$/i;
9
9
  export const nvdCveResource = resource('nvd://cve/{cveId}', {
@@ -17,18 +17,33 @@ export const nvdCveResource = resource('nvd://cve/{cveId}', {
17
17
  .string()
18
18
  .describe('CVE identifier (e.g., "CVE-2021-44228"). Must match the format CVE-YYYY-NNNNN.'),
19
19
  }),
20
+ errors: [
21
+ {
22
+ reason: 'invalid_cve_id_format',
23
+ code: JsonRpcErrorCode.ValidationError,
24
+ when: 'The cveId segment of the URI fails format validation.',
25
+ recovery: 'Use a URI of the form nvd://cve/CVE-YYYY-NNNNN, for example nvd://cve/CVE-2021-44228.',
26
+ },
27
+ {
28
+ reason: 'cve_not_found',
29
+ code: JsonRpcErrorCode.NotFound,
30
+ when: 'The CVE ID is well-formed but NVD holds no record for it.',
31
+ recovery: 'Verify the CVE ID is correct, or use nvd_search_cves to find it by keyword or date range.',
32
+ },
33
+ ],
20
34
  async handler(params, ctx) {
21
35
  const { cveId } = params;
22
36
  if (!CVE_ID_REGEX.test(cveId)) {
23
- throw validationError(`Invalid CVE ID format: "${cveId}". Expected format: CVE-YYYY-NNNNN.`, {
24
- cveId,
25
- });
37
+ throw ctx.fail('invalid_cve_id_format', `Invalid CVE ID format: "${cveId}". Expected format: CVE-YYYY-NNNNN.`, { cveId, ...ctx.recoveryFor('invalid_cve_id_format') });
26
38
  }
27
39
  ctx.log.debug('Fetching CVE resource', { cveId });
28
40
  const service = getNvdCveService();
29
41
  const result = await service.fetchById([cveId.toUpperCase()], { includeReferences: true, allLanguages: false }, ctx);
30
42
  if (result.cves.length === 0) {
31
- throw notFound(`CVE ${cveId} not found in the NVD database.`, { cveId });
43
+ throw ctx.fail('cve_not_found', `CVE ${cveId} not found in the NVD database.`, {
44
+ cveId,
45
+ ...ctx.recoveryFor('cve_not_found'),
46
+ });
32
47
  }
33
48
  return result.cves[0];
34
49
  },
@@ -1 +1 @@
1
- {"version":3,"file":"nvd-cve.resource.js","sourceRoot":"","sources":["../../../../src/mcp-server/resources/definitions/nvd-cve.resource.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,QAAQ,EAAE,CAAC,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAC1E,OAAO,EAAE,gBAAgB,EAAE,MAAM,uCAAuC,CAAC;AAEzE,MAAM,YAAY,GAAG,qBAAqB,CAAC;AAE3C,MAAM,CAAC,MAAM,cAAc,GAAG,QAAQ,CAAC,mBAAmB,EAAE;IAC1D,IAAI,EAAE,gBAAgB;IACtB,WAAW,EACT,sEAAsE;QACtE,0FAA0F;QAC1F,sDAAsD;IACxD,QAAQ,EAAE,kBAAkB;IAE5B,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC;QACf,KAAK,EAAE,CAAC;aACL,MAAM,EAAE;aACR,QAAQ,CAAC,gFAAgF,CAAC;KAC9F,CAAC;IAEF,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG;QACvB,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,CAAC;QACzB,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;YAC9B,MAAM,eAAe,CAAC,2BAA2B,KAAK,qCAAqC,EAAE;gBAC3F,KAAK;aACN,CAAC,CAAC;QACL,CAAC;QAED,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,uBAAuB,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;QAClD,MAAM,OAAO,GAAG,gBAAgB,EAAE,CAAC;QAEnC,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,SAAS,CACpC,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,EACrB,EAAE,iBAAiB,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,EAChD,GAAG,CACJ,CAAC;QAEF,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC7B,MAAM,QAAQ,CAAC,OAAO,KAAK,iCAAiC,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;QAC3E,CAAC;QAED,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACxB,CAAC;CACF,CAAC,CAAC"}
1
+ {"version":3,"file":"nvd-cve.resource.js","sourceRoot":"","sources":["../../../../src/mcp-server/resources/definitions/nvd-cve.resource.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,QAAQ,EAAE,CAAC,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,EAAE,gBAAgB,EAAE,MAAM,uCAAuC,CAAC;AAEzE,MAAM,YAAY,GAAG,qBAAqB,CAAC;AAE3C,MAAM,CAAC,MAAM,cAAc,GAAG,QAAQ,CAAC,mBAAmB,EAAE;IAC1D,IAAI,EAAE,gBAAgB;IACtB,WAAW,EACT,sEAAsE;QACtE,0FAA0F;QAC1F,sDAAsD;IACxD,QAAQ,EAAE,kBAAkB;IAE5B,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC;QACf,KAAK,EAAE,CAAC;aACL,MAAM,EAAE;aACR,QAAQ,CAAC,gFAAgF,CAAC;KAC9F,CAAC;IAEF,MAAM,EAAE;QACN;YACE,MAAM,EAAE,uBAAuB;YAC/B,IAAI,EAAE,gBAAgB,CAAC,eAAe;YACtC,IAAI,EAAE,uDAAuD;YAC7D,QAAQ,EACN,uFAAuF;SAC1F;QACD;YACE,MAAM,EAAE,eAAe;YACvB,IAAI,EAAE,gBAAgB,CAAC,QAAQ;YAC/B,IAAI,EAAE,2DAA2D;YACjE,QAAQ,EACN,2FAA2F;SAC9F;KACF;IAED,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG;QACvB,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,CAAC;QACzB,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;YAC9B,MAAM,GAAG,CAAC,IAAI,CACZ,uBAAuB,EACvB,2BAA2B,KAAK,qCAAqC,EACrE,EAAE,KAAK,EAAE,GAAG,GAAG,CAAC,WAAW,CAAC,uBAAuB,CAAC,EAAE,CACvD,CAAC;QACJ,CAAC;QAED,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,uBAAuB,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;QAClD,MAAM,OAAO,GAAG,gBAAgB,EAAE,CAAC;QAEnC,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,SAAS,CACpC,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,EACrB,EAAE,iBAAiB,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,EAChD,GAAG,CACJ,CAAC;QAEF,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC7B,MAAM,GAAG,CAAC,IAAI,CAAC,eAAe,EAAE,OAAO,KAAK,iCAAiC,EAAE;gBAC7E,KAAK;gBACL,GAAG,GAAG,CAAC,WAAW,CAAC,eAAe,CAAC;aACpC,CAAC,CAAC;QACL,CAAC;QAED,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACxB,CAAC;CACF,CAAC,CAAC"}
@@ -8,6 +8,10 @@ export declare const nvdGetCveHistory: import("@cyanheads/mcp-ts-core").ToolDefi
8
8
  cveId: z.ZodString;
9
9
  limit: z.ZodDefault<z.ZodNumber>;
10
10
  offset: z.ZodDefault<z.ZodNumber>;
11
+ order: z.ZodDefault<z.ZodEnum<{
12
+ oldest: "oldest";
13
+ newest: "newest";
14
+ }>>;
11
15
  }, z.core.$strip>, z.ZodObject<{
12
16
  cveId: z.ZodString;
13
17
  changes: z.ZodArray<z.ZodObject<{
@@ -35,5 +39,9 @@ export declare const nvdGetCveHistory: import("@cyanheads/mcp-ts-core").ToolDefi
35
39
  readonly totalCount: z.ZodNumber;
36
40
  readonly returned: z.ZodNumber;
37
41
  readonly offset: z.ZodNumber;
42
+ readonly order: z.ZodEnum<{
43
+ oldest: "oldest";
44
+ newest: "newest";
45
+ }>;
38
46
  }>;
39
47
  //# sourceMappingURL=nvd-get-cve-history.tool.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"nvd-get-cve-history.tool.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/nvd-get-cve-history.tool.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAQ,CAAC,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAGjE,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAiI3B,CAAC"}
1
+ {"version":3,"file":"nvd-get-cve-history.tool.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/nvd-get-cve-history.tool.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAQ,CAAC,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAGjE,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA0K3B,CAAC"}
@@ -10,6 +10,7 @@ export const nvdGetCveHistory = tool('nvd_get_cve_history', {
10
10
  description: 'Retrieve the change history for a single CVE — CVSS score revisions, reference additions, ' +
11
11
  'status transitions (e.g., "Received" → "Analyzed"), and CPE configuration updates. ' +
12
12
  "Use when tracking a CVE's escalation or investigating when a score changed. " +
13
+ 'Events are returned newest-first by default; pass order="oldest" for the CVE\'s earliest events. ' +
13
14
  'For the current record, call nvd_get_cve instead. ' +
14
15
  'The NVD history endpoint is significantly slower than other NVD endpoints, especially without an API key — set NVD_API_KEY for reliable operation.',
15
16
  annotations: { readOnlyHint: true, idempotentHint: true, openWorldHint: false },
@@ -27,7 +28,16 @@ export const nvdGetCveHistory = tool('nvd_get_cve_history', {
27
28
  .int()
28
29
  .min(0)
29
30
  .default(0)
30
- .describe('Zero-based offset for paginating through change events.'),
31
+ .describe('Zero-based offset for paginating through change events, counted from whichever end ' +
32
+ 'order anchors to: offset 0 is the newest event under the default order="newest", ' +
33
+ 'and the oldest event under order="oldest".'),
34
+ order: z
35
+ .enum(['oldest', 'newest'])
36
+ .default('newest')
37
+ .describe('Which end of the history to page from. Default "newest" returns the most recent events ' +
38
+ 'first, which is what escalation and re-score questions need. "oldest" returns NVD\'s ' +
39
+ "native order (the CVE's first events first) and costs one upstream request instead of " +
40
+ 'up to two.'),
31
41
  }),
32
42
  output: z.object({
33
43
  cveId: z.string().describe('The CVE ID for which history was retrieved.'),
@@ -50,23 +60,36 @@ export const nvdGetCveHistory = tool('nvd_get_cve_history', {
50
60
  .string()
51
61
  .optional()
52
62
  .describe('The type of data changed (e.g., "CVSS V3.1", "CWE", "Reference").'),
53
- oldValue: z.string().optional().describe('The value before the change.'),
54
- newValue: z.string().optional().describe('The value after the change.'),
63
+ oldValue: z
64
+ .string()
65
+ .optional()
66
+ .describe('The value before the change. Structured upstream values (e.g. "Affected", ' +
67
+ '"SSVC" details) arrive as a JSON string — parse it to read the fields.'),
68
+ newValue: z
69
+ .string()
70
+ .optional()
71
+ .describe('The value after the change. Structured upstream values (e.g. "Affected", ' +
72
+ '"SSVC" details) arrive as a JSON string — parse it to read the fields.'),
55
73
  })
56
74
  .describe('One field-level change within this event.'))
57
75
  .describe('Individual change detail entries within this event.'),
58
76
  })
59
77
  .describe('One CVE change event with its field-level details.'))
60
- .describe('CVE change events in reverse-chronological order.'),
78
+ .describe('CVE change events ordered to match the requested order — newest first by default, ' +
79
+ 'oldest first when order="oldest".'),
61
80
  }),
62
81
  enrichment: {
63
82
  totalCount: z.number().describe('Total change events on record for this CVE.'),
64
83
  returned: z.number().describe('Number of change events returned in this response.'),
65
84
  offset: z.number().describe('Page offset used in this query.'),
85
+ order: z
86
+ .enum(['oldest', 'newest'])
87
+ .describe('Which end of the history this page was anchored to.'),
66
88
  },
67
89
  enrichmentTrailer: {
68
90
  returned: { label: 'Returned' },
69
91
  offset: { label: 'Offset' },
92
+ order: { label: 'Order' },
70
93
  },
71
94
  errors: [
72
95
  {
@@ -84,12 +107,17 @@ export const nvdGetCveHistory = tool('nvd_get_cve_history', {
84
107
  },
85
108
  ],
86
109
  async handler(input, ctx) {
87
- ctx.log.info('Fetching CVE history', { cveId: input.cveId, limit: input.limit });
110
+ ctx.log.info('Fetching CVE history', {
111
+ cveId: input.cveId,
112
+ limit: input.limit,
113
+ order: input.order,
114
+ });
88
115
  const service = getNvdCveService();
89
- const result = await service.getCveHistory(input.cveId, input.limit, input.offset, ctx);
116
+ const result = await service.getCveHistory({ cveId: input.cveId, limit: input.limit, offset: input.offset, order: input.order }, ctx);
90
117
  ctx.enrich({
91
118
  returned: result.returned,
92
119
  offset: result.offset,
120
+ order: result.order,
93
121
  });
94
122
  ctx.enrich.total(result.totalResults);
95
123
  return { cveId: result.cveId, changes: result.changes };
@@ -1 +1 @@
1
- {"version":3,"file":"nvd-get-cve-history.tool.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/nvd-get-cve-history.tool.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"nvd-get-cve-history.tool.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/nvd-get-cve-history.tool.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"nvd-search-cves.tool.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/nvd-search-cves.tool.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAQ,CAAC,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AA6CjE,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAydxB,CAAC"}
1
+ {"version":3,"file":"nvd-search-cves.tool.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/nvd-search-cves.tool.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAQ,CAAC,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AA6CjE,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAkexB,CAAC"}
@@ -57,7 +57,8 @@ export const nvdSearchCves = tool('nvd_search_cves', {
57
57
  severity: z
58
58
  .enum(['LOW', 'MEDIUM', 'HIGH', 'CRITICAL'])
59
59
  .optional()
60
- .describe('Filter to CVEs at this CVSS severity level or above.'),
60
+ .describe('Filter to CVEs in exactly this CVSS severity band — NVD matches the one band, not a floor. ' +
61
+ 'Covering several bands (e.g. HIGH and CRITICAL) takes one call per band.'),
61
62
  severityVersion: z
62
63
  .enum(['v2', 'v3', 'v4'])
63
64
  .default('v3')
@@ -137,7 +138,11 @@ export const nvdSearchCves = tool('nvd_search_cves', {
137
138
  filtersApplied: z
138
139
  .object({
139
140
  keyword: z.string().optional().describe('The keyword filter that was applied.'),
140
- severity: z.string().optional().describe('The severity floor that was applied.'),
141
+ severity: z
142
+ .string()
143
+ .optional()
144
+ .describe('The exact CVSS severity band that was applied — results are limited to this band alone, ' +
145
+ 'so higher bands are not included.'),
141
146
  severityVersion: z
142
147
  .string()
143
148
  .optional()
@@ -1 +1 @@
1
- {"version":3,"file":"nvd-search-cves.tool.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/nvd-search-cves.tool.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"nvd-search-cves.tool.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/nvd-search-cves.tool.ts"],"names":[],"mappings":"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"}
@@ -39,6 +39,15 @@ export interface AuditCpeParams {
39
39
  versionStartType?: 'including' | 'excluding';
40
40
  virtualMatchString?: string;
41
41
  }
42
+ /** Which end of the change history a page is anchored to. */
43
+ export type HistoryOrder = 'oldest' | 'newest';
44
+ export interface CveHistoryParams {
45
+ cveId: string;
46
+ limit: number;
47
+ /** Zero-based, counted from whichever end `order` anchors to. */
48
+ offset: number;
49
+ order: HistoryOrder;
50
+ }
42
51
  export declare class NvdCveService {
43
52
  constructor(_config: AppConfig, _storage: StorageService);
44
53
  /**
@@ -74,14 +83,21 @@ export declare class NvdCveService {
74
83
  }>;
75
84
  /**
76
85
  * Retrieve the change history for a CVE.
86
+ *
87
+ * NVD serves history oldest-first. `order: 'newest'` reverses that: the first request doubles
88
+ * as the `totalResults` probe, so a history that fits inside `limit` costs one upstream call
89
+ * and only a longer one pays for the tail-anchored second request.
77
90
  */
78
- getCveHistory(rawId: string, limit: number, offset: number, ctx: Context): Promise<{
91
+ getCveHistory(params: CveHistoryParams, ctx: Context): Promise<{
79
92
  cveId: string;
80
93
  changes: CveChangeEvent[];
81
94
  totalResults: number;
82
95
  returned: number;
83
96
  offset: number;
97
+ order: HistoryOrder;
84
98
  }>;
99
+ /** One `cvehistory/2.0` page, translating NVD's parameter rejection to `invalid_cve_id_format`. */
100
+ private fetchHistoryPage;
85
101
  }
86
102
  export declare function initNvdCveService(config: AppConfig, storage: StorageService): void;
87
103
  export declare function getNvdCveService(): NvdCveService;
@@ -1 +1 @@
1
- {"version":3,"file":"nvd-cve-service.d.ts","sourceRoot":"","sources":["../../../src/services/nvd-cve/nvd-cve-service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"nvd-cve-service.d.ts","sourceRoot":"","sources":["../../../src/services/nvd-cve/nvd-cve-service.ts"],"names":[],"mappings":"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"}
@@ -23,13 +23,18 @@ function deriveV2Severity(score) {
23
23
  return 'MEDIUM';
24
24
  return 'HIGH';
25
25
  }
26
- /** Validate CVE ID format. Returns the uppercase form or throws. */
27
- function validateCveId(id) {
26
+ /**
27
+ * Validate CVE ID format. Returns the uppercase form or throws.
28
+ * `ctx` resolves the calling definition's own `invalid_cve_id_format` recovery text, so the hint
29
+ * reaches the wire without this layer duplicating wording each tool already declares.
30
+ */
31
+ function validateCveId(id, ctx) {
28
32
  const trimmed = id.trim();
29
33
  if (!CVE_ID_REGEX.test(trimmed)) {
30
34
  throw validationError(`Invalid CVE ID format: "${trimmed}". Expected format: CVE-YYYY-NNNNN.`, {
31
35
  reason: 'invalid_cve_id_format',
32
36
  cveId: trimmed,
37
+ ...ctx.recoveryFor('invalid_cve_id_format'),
33
38
  });
34
39
  }
35
40
  return trimmed.toUpperCase();
@@ -185,6 +190,36 @@ function toBriefCve(record, filterVersion) {
185
190
  ...(record.cisaKev && { cisaVulnerabilityName: record.cisaKev.vulnerabilityName }),
186
191
  };
187
192
  }
193
+ /**
194
+ * NVD types most change values as strings but emits an array for `Affected` details and an object
195
+ * for `SSVC` details. Serializing those to JSON keeps the value a flat string — the declared
196
+ * output type — without discarding the payload.
197
+ */
198
+ function serializeChangeValue(value) {
199
+ if (value === undefined || value === null || value === '')
200
+ return;
201
+ return typeof value === 'string' ? value : JSON.stringify(value);
202
+ }
203
+ /** Normalize one raw history page to change events, upstream (oldest-first) order preserved. */
204
+ function normalizeCveChanges(response) {
205
+ return (response.cveChanges ?? [])
206
+ .map((c) => c.change)
207
+ .filter((c) => !!c)
208
+ .map((c) => ({
209
+ changeDate: c.created ?? '',
210
+ ...(c.eventName ? { eventName: c.eventName } : {}),
211
+ details: (c.details ?? []).map((d) => {
212
+ const oldValue = serializeChangeValue(d.oldValue);
213
+ const newValue = serializeChangeValue(d.newValue);
214
+ return {
215
+ ...(d.action ? { action: d.action } : {}),
216
+ ...(d.type ? { type: d.type } : {}),
217
+ ...(oldValue !== undefined && { oldValue }),
218
+ ...(newValue !== undefined && { newValue }),
219
+ };
220
+ }),
221
+ }));
222
+ }
188
223
  /** Severity order for filtering. */
189
224
  const SEVERITY_ORDER = {
190
225
  LOW: 0,
@@ -202,7 +237,7 @@ export class NvdCveService {
202
237
  */
203
238
  async fetchById(rawIds, opts, ctx) {
204
239
  // Validate all IDs before making the request
205
- const cveIds = rawIds.map(validateCveId);
240
+ const cveIds = rawIds.map((id) => validateCveId(id, ctx));
206
241
  const client = getNvdHttpClient();
207
242
  let response;
208
243
  try {
@@ -211,7 +246,11 @@ export class NvdCveService {
211
246
  catch (err) {
212
247
  // NVD rejects malformed IDs with a 404: re-throw as invalid_cve_id_format
213
248
  if (isNvdRequestRejected(err)) {
214
- throw validationError(`One or more CVE IDs may be malformed (NVD rejected the request). Verify the IDs: ${cveIds.join(', ')}.`, { reason: 'invalid_cve_id_format', cveIds });
249
+ throw validationError(`One or more CVE IDs may be malformed (NVD rejected the request). Verify the IDs: ${cveIds.join(', ')}.`, {
250
+ reason: 'invalid_cve_id_format',
251
+ cveIds,
252
+ ...ctx.recoveryFor('invalid_cve_id_format'),
253
+ });
215
254
  }
216
255
  throw err;
217
256
  }
@@ -222,6 +261,7 @@ export class NvdCveService {
222
261
  throw notFound(`CVE ${cveIds[0]} not found in NVD.`, {
223
262
  reason: 'cve_not_found',
224
263
  cveId: cveIds[0],
264
+ ...ctx.recoveryFor('cve_not_found'),
225
265
  });
226
266
  }
227
267
  const cves = items.map((item) => normalizeCve(item, opts));
@@ -356,36 +396,55 @@ export class NvdCveService {
356
396
  }
357
397
  /**
358
398
  * Retrieve the change history for a CVE.
399
+ *
400
+ * NVD serves history oldest-first. `order: 'newest'` reverses that: the first request doubles
401
+ * as the `totalResults` probe, so a history that fits inside `limit` costs one upstream call
402
+ * and only a longer one pays for the tail-anchored second request.
359
403
  */
360
- async getCveHistory(rawId, limit, offset, ctx) {
361
- const cveId = validateCveId(rawId);
362
- const client = getNvdHttpClient();
363
- let response;
404
+ async getCveHistory(params, ctx) {
405
+ const cveId = validateCveId(params.cveId, ctx);
406
+ const limit = Math.min(params.limit, 2000);
407
+ const offset = params.offset;
408
+ const order = params.order;
409
+ if (order === 'oldest') {
410
+ const response = await this.fetchHistoryPage(cveId, limit, offset, ctx);
411
+ const changes = normalizeCveChanges(response);
412
+ const totalResults = response.totalResults ?? 0;
413
+ ctx.log.info('CVE history fetched', { cveId, order, totalResults, returned: changes.length });
414
+ return { cveId, changes, totalResults, returned: changes.length, offset, order };
415
+ }
416
+ const head = await this.fetchHistoryPage(cveId, limit, 0, ctx);
417
+ const totalResults = head.totalResults ?? 0;
418
+ // The whole history is already in hand — reverse it and page from the newest end locally.
419
+ if (totalResults <= limit) {
420
+ const newestFirst = normalizeCveChanges(head).reverse();
421
+ const changes = newestFirst.slice(offset, offset + limit);
422
+ ctx.log.info('CVE history fetched', { cveId, order, totalResults, returned: changes.length });
423
+ return { cveId, changes, totalResults, returned: changes.length, offset, order };
424
+ }
425
+ // `offset` counts back from the newest event; nothing remains once it passes the oldest.
426
+ const available = totalResults - offset;
427
+ if (available <= 0) {
428
+ ctx.log.info('CVE history fetched', { cveId, order, totalResults, returned: 0 });
429
+ return { cveId, changes: [], totalResults, returned: 0, offset, order };
430
+ }
431
+ const take = Math.min(limit, available);
432
+ const tail = await this.fetchHistoryPage(cveId, take, totalResults - offset - take, ctx);
433
+ const changes = normalizeCveChanges(tail).reverse();
434
+ ctx.log.info('CVE history fetched', { cveId, order, totalResults, returned: changes.length });
435
+ return { cveId, changes, totalResults, returned: changes.length, offset, order };
436
+ }
437
+ /** One `cvehistory/2.0` page, translating NVD's parameter rejection to `invalid_cve_id_format`. */
438
+ async fetchHistoryPage(cveId, resultsPerPage, startIndex, ctx) {
364
439
  try {
365
- response = await client.get('cvehistory/2.0', { cveId, resultsPerPage: Math.min(limit, 2000), startIndex: offset }, ctx);
440
+ return await getNvdHttpClient().get('cvehistory/2.0', { cveId, resultsPerPage, startIndex }, ctx);
366
441
  }
367
442
  catch (err) {
368
443
  if (isNvdRequestRejected(err)) {
369
- throw validationError(`CVE ID "${cveId}" appears to be malformed (NVD rejected the request).`, { reason: 'invalid_cve_id_format', cveId });
444
+ throw validationError(`CVE ID "${cveId}" appears to be malformed (NVD rejected the request).`, { reason: 'invalid_cve_id_format', cveId, ...ctx.recoveryFor('invalid_cve_id_format') });
370
445
  }
371
446
  throw err;
372
447
  }
373
- const changes = (response.cveChanges ?? [])
374
- .map((c) => c.change)
375
- .filter((c) => !!c)
376
- .map((c) => ({
377
- changeDate: c.created ?? '',
378
- ...(c.eventName ? { eventName: c.eventName } : {}),
379
- details: (c.details ?? []).map((d) => ({
380
- ...(d.action ? { action: d.action } : {}),
381
- ...(d.type ? { type: d.type } : {}),
382
- ...(d.oldValue ? { oldValue: d.oldValue } : {}),
383
- ...(d.newValue ? { newValue: d.newValue } : {}),
384
- })),
385
- }));
386
- const totalResults = response.totalResults ?? 0;
387
- ctx.log.info('CVE history fetched', { cveId, totalResults, returned: changes.length });
388
- return { cveId, changes, totalResults, returned: changes.length, offset };
389
448
  }
390
449
  }
391
450
  // --- Init/accessor pattern ---
@@ -1 +1 @@
1
- {"version":3,"file":"nvd-cve-service.js","sourceRoot":"","sources":["../../../src/services/nvd-cve/nvd-cve-service.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAE1E,OAAO,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAC;AAcxF,MAAM,YAAY,GAAG,qBAAqB,CAAC;AAE3C;;;;;GAKG;AACH,SAAS,gBAAgB,CAAC,KAAyB;IACjD,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,SAAS,CAAC;IAC5D,IAAI,KAAK,KAAK,CAAC;QAAE,OAAO,MAAM,CAAC;IAC/B,IAAI,KAAK,GAAG,GAAG;QAAE,OAAO,KAAK,CAAC;IAC9B,IAAI,KAAK,GAAG,GAAG;QAAE,OAAO,QAAQ,CAAC;IACjC,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,oEAAoE;AACpE,SAAS,aAAa,CAAC,EAAU;IAC/B,MAAM,OAAO,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;IAC1B,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QAChC,MAAM,eAAe,CAAC,2BAA2B,OAAO,qCAAqC,EAAE;YAC7F,MAAM,EAAE,uBAAuB;YAC/B,KAAK,EAAE,OAAO;SACf,CAAC,CAAC;IACL,CAAC;IACD,OAAO,OAAO,CAAC,WAAW,EAAE,CAAC;AAC/B,CAAC;AAED,iEAAiE;AACjE,SAAS,iBAAiB,CAAC,OAA8B;IACvD,IAAI,CAAC,OAAO;QAAE,OAAO,EAAE,CAAC;IACxB,MAAM,MAAM,GAAgB,EAAE,CAAC;IAE/B,MAAM,UAAU,GAAG,CAAC,IAAiC,EAAE,OAAe,EAAE,IAAa,EAAE,EAAE;QACvF,KAAK,MAAM,CAAC,IAAI,IAAI,IAAI,EAAE,EAAE,CAAC;YAC3B,IAAI,CAAC,CAAC,CAAC,QAAQ,EAAE,SAAS;gBAAE,SAAS;YACrC,iFAAiF;YACjF,MAAM,QAAQ,GACZ,CAAC,CAAC,QAAQ,CAAC,YAAY,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YACzF,MAAM,KAAK,GAAc;gBACvB,OAAO;gBACP,UAAU,EAAE,CAAC,CAAC,IAAI,IAAI,SAAS;gBAC/B,SAAS,EAAE,CAAC,CAAC,QAAQ,CAAC,SAAS;gBAC/B,QAAQ;aACT,CAAC;YACF,IAAI,CAAC,CAAC,QAAQ,CAAC,YAAY;gBAAE,KAAK,CAAC,YAAY,GAAG,CAAC,CAAC,QAAQ,CAAC,YAAY,CAAC;YAC1E,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACrB,CAAC;IACH,CAAC,CAAC;IAEF,UAAU,CAAC,OAAO,CAAC,YAAY,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;IAC9C,UAAU,CAAC,OAAO,CAAC,aAAa,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;IAChD,UAAU,CAAC,OAAO,CAAC,aAAa,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;IAChD,UAAU,CAAC,OAAO,CAAC,aAAa,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;IAEhD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,0DAA0D;AAC1D,SAAS,iBAAiB,CAAC,MAAmB;IAC5C,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO;IAChC,MAAM,MAAM,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC;IACrE,MAAM,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;IACtB,IAAI,CAAC,GAAG;QAAE,OAAO;IACjB,OAAO;QACL,KAAK,EAAE,GAAG,CAAC,QAAQ;QACnB,KAAK,EAAE,GAAG,CAAC,SAAS;QACpB,WAAW,EAAE,GAAG,CAAC,OAAO;KACzB,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,uBAAuB,GAAkD;IAC7E,EAAE,EAAE,CAAC,KAAK,CAAC;IACX,EAAE,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC;IAClB,EAAE,EAAE,CAAC,KAAK,CAAC;CACZ,CAAC;AAEF,0FAA0F;AAC1F,SAAS,iBAAiB,CACxB,MAAmB,EACnB,OAA2B;IAE3B,MAAM,MAAM,GAAG,uBAAuB,CAAC,OAAO,CAAC,CAAC;IAChD,OAAO,iBAAiB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AAC7E,CAAC;AAED;;;;GAIG;AACH,SAAS,kBAAkB,CACzB,GAA+B,EAC/B,YAAqB;IAErB,MAAM,OAAO,GAAG,CAAC,GAAG,IAAI,EAAE,CAAC;SACxB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,KAAK,CAAC;SAChC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAc,EAAE,KAAK,EAAE,CAAC,CAAC,KAAe,EAAE,CAAC,CAAC,CAAC;IACtE,IAAI,YAAY;QAAE,OAAO,OAAO,CAAC;IACjC,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;IACvD,OAAO,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC;AAChD,CAAC;AAUD,oDAAoD;AACpD,SAAS,YAAY,CAAC,GAAe,EAAE,IAAsB;IAC3D,MAAM,UAAU,GAAG,iBAAiB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IAClD,MAAM,QAAQ,GAAG,iBAAiB,CAAC,UAAU,CAAC,CAAC;IAE/C,MAAM,UAAU,GAAG,CAAC,GAAG,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACpD,MAAM,EAAE,CAAC,CAAC,MAAM,IAAI,EAAE;QACtB,MAAM,EAAE,CAAC,CAAC,CAAC,WAAW,IAAI,EAAE,CAAC;aAC1B,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,IAAI,CAAC,CAAC,KAAK,CAAC;aACzC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAe,CAAC;KACjC,CAAC,CAAC,CAAC;IAEJ,MAAM,cAAc,GAAG,CAAC,GAAG,CAAC,cAAc,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QAC9D,GAAG,CAAC,GAAG,CAAC,QAAQ,IAAI,EAAE,QAAQ,EAAE,GAAG,CAAC,QAAQ,EAAE,CAAC;QAC/C,KAAK,EAAE,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YACtC,GAAG,CAAC,IAAI,CAAC,QAAQ,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC;YACjD,QAAQ,EAAE,CAAC,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBAC1C,UAAU,EAAE,CAAC,CAAC,UAAU,IAAI,KAAK;gBACjC,QAAQ,EAAE,CAAC,CAAC,QAAQ,IAAI,EAAE;gBAC1B,GAAG,CAAC,CAAC,CAAC,qBAAqB,IAAI,EAAE,qBAAqB,EAAE,CAAC,CAAC,qBAAqB,EAAE,CAAC;gBAClF,GAAG,CAAC,CAAC,CAAC,qBAAqB,IAAI,EAAE,qBAAqB,EAAE,CAAC,CAAC,qBAAqB,EAAE,CAAC;gBAClF,GAAG,CAAC,CAAC,CAAC,mBAAmB,IAAI,EAAE,mBAAmB,EAAE,CAAC,CAAC,mBAAmB,EAAE,CAAC;gBAC5E,GAAG,CAAC,CAAC,CAAC,mBAAmB,IAAI,EAAE,mBAAmB,EAAE,CAAC,CAAC,mBAAmB,EAAE,CAAC;aAC7E,CAAC,CAAC;SACJ,CAAC,CAAC;KACJ,CAAC,CAAC,CAAC;IAEJ,IAAI,OAA4B,CAAC;IACjC,IACE,GAAG,CAAC,cAAc;QAClB,GAAG,CAAC,aAAa;QACjB,GAAG,CAAC,kBAAkB;QACtB,GAAG,CAAC,qBAAqB,EACzB,CAAC;QACD,OAAO,GAAG;YACR,cAAc,EAAE,GAAG,CAAC,cAAc;YAClC,aAAa,EAAE,GAAG,CAAC,aAAa;YAChC,cAAc,EAAE,GAAG,CAAC,kBAAkB;YACtC,iBAAiB,EAAE,GAAG,CAAC,qBAAqB;SAC7C,CAAC;IACJ,CAAC;IAED,OAAO;QACL,KAAK,EAAE,GAAG,CAAC,EAAE,IAAI,EAAE;QACnB,UAAU,EAAE,GAAG,CAAC,UAAU,IAAI,EAAE;QAChC,SAAS,EAAE,GAAG,CAAC,SAAS,IAAI,EAAE;QAC9B,YAAY,EAAE,GAAG,CAAC,YAAY,IAAI,EAAE;QACpC,YAAY,EAAE,kBAAkB,CAAC,GAAG,CAAC,YAAY,EAAE,IAAI,CAAC,YAAY,CAAC;QACrE,UAAU;QACV,GAAG,CAAC,QAAQ,IAAI,EAAE,QAAQ,EAAE,CAAC;QAC7B,UAAU;QACV,cAAc;QACd,GAAG,CAAC,IAAI,CAAC,iBAAiB,IAAI;YAC5B,UAAU,EAAE,CAAC,GAAG,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBAC7C,GAAG,EAAE,CAAC,CAAC,GAAG,IAAI,EAAE;gBAChB,GAAG,CAAC,CAAC,CAAC,MAAM,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC;gBACrC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,MAAM,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;aACxC,CAAC,CAAC;SACJ,CAAC;QACF,GAAG,CAAC,OAAO,IAAI,EAAE,OAAO,EAAE,CAAC;KAC5B,CAAC;AACJ,CAAC;AAED;;;;;;;;;GASG;AACH,SAAS,UAAU,CAAC,MAAiB,EAAE,aAAkC;IACvE,MAAM,SAAS,GAAG,aAAa,CAAC,CAAC,CAAC,iBAAiB,CAAC,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAClG,yFAAyF;IACzF,MAAM,QAAQ,GACZ,SAAS,KAAK,SAAS;QACvB,CAAC,SAAS,CAAC,WAAW,KAAK,MAAM,CAAC,QAAQ,EAAE,WAAW;YACrD,SAAS,CAAC,KAAK,KAAK,MAAM,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;IAEhD,OAAO;QACL,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,UAAU,EAAE,MAAM,CAAC,UAAU;QAC7B,SAAS,EAAE,MAAM,CAAC,SAAS;QAC3B,GAAG,CAAC,MAAM,CAAC,QAAQ,IAAI,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,CAAC;QACrD,GAAG,CAAC,QAAQ,IAAI,EAAE,gBAAgB,EAAE,SAAS,EAAE,CAAC;QAChD,GAAG,CAAC,MAAM,CAAC,OAAO,IAAI,EAAE,qBAAqB,EAAE,MAAM,CAAC,OAAO,CAAC,iBAAiB,EAAE,CAAC;KACnF,CAAC;AACJ,CAAC;AA6BD,oCAAoC;AACpC,MAAM,cAAc,GAA2B;IAC7C,GAAG,EAAE,CAAC;IACN,MAAM,EAAE,CAAC;IACT,IAAI,EAAE,CAAC;IACP,QAAQ,EAAE,CAAC;CACZ,CAAC;AAEF,MAAM,OAAO,aAAa;IACxB,gGAAgG;IAChG,YAAY,OAAkB,EAAE,QAAwB,IAAG,CAAC;IAE5D;;;;OAIG;IACH,KAAK,CAAC,SAAS,CACb,MAAgB,EAChB,IAAsB,EACtB,GAAY;QAEZ,6CAA6C;QAC7C,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;QAEzC,MAAM,MAAM,GAAG,gBAAgB,EAAE,CAAC;QAClC,IAAI,QAAwB,CAAC;QAC7B,IAAI,CAAC;YACH,QAAQ,GAAG,MAAM,MAAM,CAAC,GAAG,CAAiB,UAAU,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;QAC7F,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,0EAA0E;YAC1E,IAAI,oBAAoB,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC9B,MAAM,eAAe,CACnB,oFAAoF,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EACxG,EAAE,MAAM,EAAE,uBAAuB,EAAE,MAAM,EAAE,CAC5C,CAAC;YACJ,CAAC;YACD,MAAM,GAAG,CAAC;QACZ,CAAC;QAED,MAAM,KAAK,GAAG,CAAC,QAAQ,CAAC,eAAe,IAAI,EAAE,CAAC;aAC3C,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;aACjB,MAAM,CAAC,CAAC,CAAC,EAAmB,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAEvC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC9C,MAAM,QAAQ,CAAC,OAAO,MAAM,CAAC,CAAC,CAAC,oBAAoB,EAAE;gBACnD,MAAM,EAAE,eAAe;gBACvB,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC;aACjB,CAAC,CAAC;QACL,CAAC;QAED,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,YAAY,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;QAE3D,kDAAkD;QAClD,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;QACpE,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;QAE7E,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,oBAAoB,EAAE;YACjC,SAAS,EAAE,MAAM,CAAC,MAAM;YACxB,QAAQ,EAAE,IAAI,CAAC,MAAM;YACrB,GAAG,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACjD,CAAC,CAAC;QAEH,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,EAAE,CAAC;IAC/E,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,UAAU,CACd,MAAwB,EACxB,GAAY;QAOZ,MAAM,MAAM,GAAG,gBAAgB,EAAE,CAAC;QAElC,MAAM,SAAS,GAA0D;YACvE,cAAc,EAAE,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE,EAAE,IAAI,CAAC;YAClD,UAAU,EAAE,MAAM,CAAC,MAAM,IAAI,CAAC;SAC/B,CAAC;QAEF,IAAI,MAAM,CAAC,OAAO;YAAE,SAAS,CAAC,aAAa,GAAG,MAAM,CAAC,OAAO,CAAC;QAC7D,IAAI,MAAM,CAAC,KAAK;YAAE,SAAS,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;QACjD,IAAI,MAAM,CAAC,YAAY;YAAE,SAAS,CAAC,YAAY,GAAG,MAAM,CAAC,YAAY,CAAC;QACtE,IAAI,MAAM,CAAC,UAAU;YAAE,SAAS,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;QAChE,IAAI,MAAM,CAAC,gBAAgB;YAAE,SAAS,CAAC,gBAAgB,GAAG,MAAM,CAAC,gBAAgB,CAAC;QAClF,IAAI,MAAM,CAAC,cAAc;YAAE,SAAS,CAAC,cAAc,GAAG,MAAM,CAAC,cAAc,CAAC;QAC5E,IAAI,MAAM,CAAC,OAAO;YAAE,SAAS,CAAC,MAAM,GAAG,IAAI,CAAC;QAC5C,IAAI,MAAM,CAAC,UAAU;YAAE,SAAS,CAAC,UAAU,GAAG,IAAI,CAAC;QAEnD,gFAAgF;QAChF,MAAM,aAAa,GAAG,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,eAAe,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAC1F,IAAI,MAAM,CAAC,aAAa,EAAE,CAAC;YACzB,IAAI,aAAa,KAAK,IAAI,EAAE,CAAC;gBAC3B,SAAS,CAAC,cAAc,GAAG,MAAM,CAAC,aAAa,CAAC;YAClD,CAAC;iBAAM,IAAI,aAAa,KAAK,IAAI,EAAE,CAAC;gBAClC,SAAS,CAAC,cAAc,GAAG,MAAM,CAAC,aAAa,CAAC;YAClD,CAAC;iBAAM,CAAC;gBACN,SAAS,CAAC,cAAc,GAAG,MAAM,CAAC,aAAa,CAAC;YAClD,CAAC;QACH,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,GAAG,CAAiB,UAAU,EAAE,SAAS,EAAE,GAAG,CAAC,CAAC;QAE9E,MAAM,KAAK,GAAG,CAAC,QAAQ,CAAC,eAAe,IAAI,EAAE,CAAC;aAC3C,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;aACjB,MAAM,CAAC,CAAC,CAAC,EAAmB,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAEvC,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAC9B,UAAU,CACR,YAAY,CAAC,IAAI,EAAE,EAAE,iBAAiB,EAAE,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC,EACrE,aAAa,CACd,CACF,CAAC;QAEF,MAAM,YAAY,GAAG,QAAQ,CAAC,YAAY,IAAI,CAAC,CAAC;QAChD,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,sBAAsB,EAAE,EAAE,YAAY,EAAE,QAAQ,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;QAE9E,OAAO;YACL,IAAI;YACJ,YAAY;YACZ,QAAQ,EAAE,IAAI,CAAC,MAAM;YACrB,MAAM,EAAE,MAAM,CAAC,MAAM,IAAI,CAAC;SAC3B,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,QAAQ,CACZ,MAAsB,EACtB,GAAY;QASZ,MAAM,MAAM,GAAG,gBAAgB,EAAE,CAAC;QAElC,MAAM,SAAS,GAA0D;YACvE,cAAc,EAAE,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE,EAAE,IAAI,CAAC;YAClD,UAAU,EAAE,CAAC;SACd,CAAC;QAEF,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YACnB,SAAS,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;YACnC,SAAS,CAAC,YAAY,GAAG,IAAI,CAAC;QAChC,CAAC;aAAM,IAAI,MAAM,CAAC,kBAAkB,EAAE,CAAC;YACrC,SAAS,CAAC,kBAAkB,GAAG,MAAM,CAAC,kBAAkB,CAAC;YACzD,IAAI,MAAM,CAAC,YAAY,EAAE,CAAC;gBACxB,SAAS,CAAC,YAAY,GAAG,MAAM,CAAC,YAAY,CAAC;gBAC7C,SAAS,CAAC,gBAAgB,GAAG,MAAM,CAAC,gBAAgB,IAAI,WAAW,CAAC;YACtE,CAAC;YACD,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;gBACtB,SAAS,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;gBACzC,SAAS,CAAC,cAAc,GAAG,MAAM,CAAC,cAAc,IAAI,WAAW,CAAC;YAClE,CAAC;QACH,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,GAAG,CAAiB,UAAU,EAAE,SAAS,EAAE,GAAG,CAAC,CAAC;QAE9E,MAAM,YAAY,GAAG,QAAQ,CAAC,YAAY,IAAI,CAAC,CAAC;QAEhD,sFAAsF;QACtF,4FAA4F;QAC5F,8FAA8F;QAC9F,IAAI,YAAY,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YACzC,MAAM,QAAQ,CACZ,0BAA0B,MAAM,CAAC,OAAO,6CAA6C,EACrF,EAAE,MAAM,EAAE,eAAe,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,CACrD,CAAC;QACJ,CAAC;QAED,IAAI,KAAK,GAAG,CAAC,QAAQ,CAAC,eAAe,IAAI,EAAE,CAAC;aACzC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;aACjB,MAAM,CAAC,CAAC,CAAC,EAAmB,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAEvC;;;;;WAKG;QACH,MAAM,YAAY,GAAG,KAAK,CAAC,MAAM,CAAC;QAElC,8BAA8B;QAC9B,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;YACvB,MAAM,QAAQ,GAAG,cAAc,CAAC,MAAM,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC,CAAC;YACvE,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE;gBAC5B,MAAM,MAAM,GAAG,iBAAiB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBAC/C,MAAM,GAAG,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAC;gBACtC,IAAI,CAAC,GAAG;oBAAE,OAAO,KAAK,CAAC;gBACvB,OAAO,CAAC,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAC;YACrE,CAAC,CAAC,CAAC;QACL,CAAC;QAED,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAC9B,YAAY,CAAC,IAAI,EAAE;YACjB,iBAAiB,EAAE,IAAI;YACvB,YAAY,EAAE,MAAM,CAAC,YAAY,IAAI,KAAK;SAC3C,CAAC,CACH,CAAC;QAEF,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,qBAAqB,EAAE,EAAE,YAAY,EAAE,QAAQ,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;QAE7E,OAAO;YACL,IAAI;YACJ,YAAY;YACZ,QAAQ,EAAE,IAAI,CAAC,MAAM;YACrB,aAAa,EAAE,YAAY,GAAG,IAAI,CAAC,MAAM;YACzC,GAAG,CAAC,MAAM,CAAC,OAAO,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC;YAClD,GAAG,CAAC,MAAM,CAAC,kBAAkB,IAAI,EAAE,kBAAkB,EAAE,MAAM,CAAC,kBAAkB,EAAE,CAAC;SACpF,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,aAAa,CACjB,KAAa,EACb,KAAa,EACb,MAAc,EACd,GAAY;QAQZ,MAAM,KAAK,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;QACnC,MAAM,MAAM,GAAG,gBAAgB,EAAE,CAAC;QAElC,IAAI,QAA+B,CAAC;QACpC,IAAI,CAAC;YACH,QAAQ,GAAG,MAAM,MAAM,CAAC,GAAG,CACzB,gBAAgB,EAChB,EAAE,KAAK,EAAE,cAAc,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,EACpE,GAAG,CACJ,CAAC;QACJ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,oBAAoB,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC9B,MAAM,eAAe,CACnB,WAAW,KAAK,uDAAuD,EACvE,EAAE,MAAM,EAAE,uBAAuB,EAAE,KAAK,EAAE,CAC3C,CAAC;YACJ,CAAC;YACD,MAAM,GAAG,CAAC;QACZ,CAAC;QAED,MAAM,OAAO,GAAqB,CAAC,QAAQ,CAAC,UAAU,IAAI,EAAE,CAAC;aAC1D,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC;aACpB,MAAM,CAAC,CAAC,CAAC,EAA8B,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;aAC9C,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACX,UAAU,EAAE,CAAC,CAAC,OAAO,IAAI,EAAE;YAC3B,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAClD,OAAO,EAAE,CAAC,CAAC,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBACrC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACzC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACnC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC/C,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aAChD,CAAC,CAAC;SACJ,CAAC,CAAC,CAAC;QAEN,MAAM,YAAY,GAAG,QAAQ,CAAC,YAAY,IAAI,CAAC,CAAC;QAChD,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,qBAAqB,EAAE,EAAE,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;QAEvF,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC;IAC5E,CAAC;CACF;AAED,gCAAgC;AAEhC,IAAI,QAAmC,CAAC;AAExC,MAAM,UAAU,iBAAiB,CAAC,MAAiB,EAAE,OAAuB;IAC1E,QAAQ,GAAG,IAAI,aAAa,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAChD,CAAC;AAED,MAAM,UAAU,gBAAgB;IAC9B,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,MAAM,IAAI,KAAK,CAAC,qEAAqE,CAAC,CAAC;IACzF,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC"}
1
+ {"version":3,"file":"nvd-cve-service.js","sourceRoot":"","sources":["../../../src/services/nvd-cve/nvd-cve-service.ts"],"names":[],"mappings":"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"}
@@ -88,11 +88,15 @@ export interface RawCveHistoryResponse {
88
88
  cveChangeId?: string;
89
89
  sourceIdentifier?: string;
90
90
  created?: string;
91
+ /**
92
+ * `oldValue`/`newValue` are usually strings, but NVD emits an array for `Affected` details
93
+ * and an object for `SSVC` details — normalization serializes those to JSON.
94
+ */
91
95
  details?: Array<{
92
96
  action?: string;
93
97
  type?: string;
94
- oldValue?: string;
95
- newValue?: string;
98
+ oldValue?: unknown;
99
+ newValue?: unknown;
96
100
  }>;
97
101
  };
98
102
  }>;
@@ -184,6 +188,7 @@ export interface BriefCveRecord {
184
188
  /** CVE change event from the history API. */
185
189
  export interface CveChangeEvent {
186
190
  changeDate: string;
191
+ /** Values are always flat strings — structured upstream values arrive JSON-serialized. */
187
192
  details: Array<{
188
193
  action?: string;
189
194
  type?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/services/nvd-cve/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/services/nvd-cve/types.ts"],"names":[],"mappings":"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"}
package/manifest.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "manifest_version": "0.3",
3
3
  "name": "nist-nvd-mcp-server",
4
- "version": "0.1.14",
4
+ "version": "0.1.15",
5
5
  "description": "Search and audit CVEs by keyword, severity, CWE, CISA KEV status, and CPE via the NIST National Vulnerability Database. STDIO or Streamable HTTP.",
6
6
  "author": {
7
7
  "name": "cyanheads"
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@cyanheads/nist-nvd-mcp-server",
3
3
  "mcpName": "io.github.cyanheads/nist-nvd-mcp-server",
4
- "version": "0.1.14",
4
+ "version": "0.1.15",
5
5
  "description": "Search and audit CVEs by keyword, severity, CWE, CISA KEV status, and CPE via the NIST National Vulnerability Database. STDIO or Streamable HTTP.",
6
6
  "type": "module",
7
7
  "main": "dist/index.js",
@@ -90,17 +90,17 @@
90
90
  },
91
91
  "trustedDependencies": ["@socketsecurity/bun-security-scanner"],
92
92
  "dependencies": {
93
- "@cyanheads/mcp-ts-core": "^0.10.14",
93
+ "@cyanheads/mcp-ts-core": "^0.11.0",
94
94
  "pino-pretty": "^13.1.3",
95
95
  "zod": "^4.4.3"
96
96
  },
97
97
  "devDependencies": {
98
- "@biomejs/biome": "^2.5.3",
98
+ "@biomejs/biome": "^2.5.5",
99
99
  "@socketsecurity/bun-security-scanner": "^1.1.2",
100
100
  "@types/node": "^26.1.1",
101
101
  "depcheck": "^1.4.7",
102
102
  "ignore": "^7.0.6",
103
- "tsc-alias": "^1.9.0",
103
+ "tsc-alias": "^1.9.1",
104
104
  "typescript": "^6.0.3",
105
105
  "vitest": "^4.1.10"
106
106
  }
package/server.json CHANGED
@@ -6,14 +6,14 @@
6
6
  "url": "https://github.com/cyanheads/nist-nvd-mcp-server",
7
7
  "source": "github"
8
8
  },
9
- "version": "0.1.14",
9
+ "version": "0.1.15",
10
10
  "packages": [
11
11
  {
12
12
  "registryType": "npm",
13
13
  "registryBaseUrl": "https://registry.npmjs.org",
14
14
  "identifier": "@cyanheads/nist-nvd-mcp-server",
15
15
  "runtimeHint": "bun",
16
- "version": "0.1.14",
16
+ "version": "0.1.15",
17
17
  "packageArguments": [
18
18
  {
19
19
  "type": "positional",
@@ -55,7 +55,7 @@
55
55
  "registryBaseUrl": "https://registry.npmjs.org",
56
56
  "identifier": "@cyanheads/nist-nvd-mcp-server",
57
57
  "runtimeHint": "bun",
58
- "version": "0.1.14",
58
+ "version": "0.1.15",
59
59
  "packageArguments": [
60
60
  {
61
61
  "type": "positional",