mcpField
P
pp-nvd

pp-nvd

github.com/mvanhorn安全2.1k262 次安装今天更新
代码仓库

关于 pp-nvd

pp-nvd 是一项指导 Agent 使用 NVD 只读命令行工具的技能,可搜索 CPE 产品标识和 CVE 漏洞。支持按关键词、标识符、发布日期及 CVSS 严重性查询,无需身份验证。

主要功能

  1. 01搜索 CPE 产品标识
  2. 02按关键词或 ID 搜索 CVE
  3. 03按日期或 CVSS 严重性筛选漏洞
  4. 04Agent 模式 JSON 与字段筛选

适用场景

  1. 01查找产品对应的精确 CPE 名称
  2. 02查询影响某产品的漏洞
  3. 03按发布日期或严重性查看 CVE

MCP 相关

可安装 nvd-pp-mcp MCP 服务并注册到 Claude Code,向 MCP 客户端提供 NVD 搜索操作。

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/mvanhorn/printing-press-library --skill pp-nvd

安装后在 Claude Code 中输入/pp-nvd确认已加载。

详细介绍

Nvd — Printing Press CLI

前提条件:安装 CLI

此技能使用 nvd-pp-cli 二进制文件。调用此技能中的任何命令之前,必须确认 CLI 已安装。 如果未安装,请先安装:

  1. 使用 Printing Press 安装程序安装。在 macOS/Linux 上,二进制文件默认安装到 $HOME/.local/bin;在 Windows 上,默认安装到 %LOCALAPPDATA%\Programs\PrintingPress\bin:
    npx -y @mvanhorn/printing-press-library install nvd --cli-only
    
  2. 验证:nvd-pp-cli --version
  3. 确保报告的安装目录位于将调用此技能的 Agent/运行时的 $PATH 中。

如果 npx 安装失败(没有 Node、处于离线状态等),请改用直接 Go 安装(需要 Go 1.26.6 或更高版本):

go install github.com/mvanhorn/printing-press-library/library/developer-tools/nvd/cmd/nvd-pp-cli@latest

安装后,如果 --version 报告“command not found”,说明运行时无法在 $PATH 中找到二进制文件目录。验证成功前,请勿执行此技能的命令。

何时不使用此 CLI

对于需要创建、更新、删除、发布、评论、点赞、邀请、订购、发送消息、预订、购买或更改远程状态的请求,请勿启用此 CLI。此只读 CLI 提供检查、导出、同步和分析命令。

命令参考

json — 管理 json

  • nvd-pp-cli json search-cpes — 搜索通用平台枚举(Common Platform Enumeration)名称,查找漏洞查询所需的精确产品标识符。
  • nvd-pp-cli json search-cves — 按关键词、CVE ID、CPE 名称、发布日期或 CVSS 严重性搜索漏洞。
查找合适的命令

知道要做什么,但不确定该用哪个命令时,可以直接询问 CLI:

nvd-pp-cli which "<capability in your own words>"

which 会根据自然语言功能查询,从此 CLI 精选的功能索引中匹配最合适的命令。退出代码 0 表示至少找到一个匹配项;退出代码 2 表示没有可信的匹配项——请改用 --help 或尝试更具体的查询。

身份验证设置

无需身份验证。

运行 nvd-pp-cli doctor 验证设置。

Agent 模式

为任意命令添加 --agent。它会展开为:--json --compact --no-input --no-color --yes。

  • 可通过管道传递 — JSON 输出到 stdout,错误输出到 stderr

  • 可筛选 — --select 保留部分字段。点分路径可深入嵌套结构;数组会逐元素遍历。对于内容冗长的 API,这对控制上下文大小至关重要:

    nvd-pp-cli json search-cpes --agent --select id,name,status
    
  • 可预览 — --dry-run 显示请求,但不会发送

  • 适合离线使用 — 有本地 SQLite 存储时,同步/搜索命令可使用该存储

  • 非交互式 — 不会发出提示;所有输入都通过标志传入

  • 只读 — 请勿使用此 CLI 执行创建、更新、删除、发布、评论、点赞、邀请、订购、发送或其他会更改状态的请求

响应封装

从本地存储或 API 读取数据的命令会在输出外层附加来源信息:

{
  "meta": {"source": "live" | "local", "synced_at": "...", "reason": "..."},
  "results": <data>
}

从 .results 解析数据,并通过 .meta.source 判断数据来自实时来源还是本地来源。只有当 stdout 连接到终端时,才会将便于人类阅读的 N results (live) 摘要输出到 stderr;通过管道传递的输出或 Agent 使用者会在 stdout 上获得纯 JSON。

Agent 反馈

当你(或 Agent)发现此 CLI 有异常之处时,请记录下来:

nvd-pp-cli feedback "the --since flag is inclusive but docs say exclusive"
nvd-pp-cli feedback --stdin < notes.txt
nvd-pp-cli feedback list --json --limit 10

条目会本地存储在 ~/.nvd-pp-cli/feedback.jsonl。只有在设置了 NVD_FEEDBACK_ENDPOINT,且传入了 --send 或 NVD_FEEDBACK_AUTO_SEND=true 时,才会通过 POST 提交。默认情况下,反馈仅保存在本地。

写下让你感到意外的地方,而不是提交错误报告。简短、具体,写成一行:这才是能不断积累价值的内容。

输出交付

每个命令都接受 --deliver <sink>。输出会发送到指定的接收端,同时也会输出到 stdout(或替代 stdout),这样 Agent 无需手动管道传输即可路由命令结果。支持三种接收端:

接收端效果
stdout默认;仅写入 stdout
file:<path>将输出原子性地写入 <path>(临时文件 + 重命名)
webhook:<url>将输出正文 POST 到该 URL(--compact 时使用 application/json 或 application/x-ndjson)

不支持的方案会被拒绝,并返回列出受支持方案的结构化错误。Webhook 请求失败时会返回非零状态,并在 stderr 中记录 URL 和 HTTP 状态。

命名配置

配置是保存的一组标志值,可在多次调用间重复使用。当定时运行的 Agent 每次都以相同配置调用同一命令时,可使用配置——这就是 HeyGen 的“Beacon”模式。

nvd-pp-cli profile save briefing --json
nvd-pp-cli --profile briefing json search-cpes
nvd-pp-cli profile list --json
nvd-pp-cli profile show briefing
nvd-pp-cli profile delete briefing --yes

显式标志始终优先于配置值;配置值优先于默认值。agent-context 会在 available_profiles 下列出所有可用配置,以便 Agent 在运行时发现它们。

退出代码

代码含义
0成功
2用法错误(参数错误)
3未找到资源
5API 错误(上游问题)
7请求过于频繁(等待后重试)
10配置错误

参数解析

解析 $ARGUMENTS:

  1. 为空、help 或 --help → 显示 nvd-pp-cli --help 输出
  2. 以 install 开头 → 以 mcp 结尾 → 安装 MCP;否则 → 参见上方的先决条件
  3. 其他任何内容 → 直接使用(作为带 --agent 的 CLI 命令执行)

MCP 服务安装

  1. 安装 MCP 服务:
    go install github.com/mvanhorn/printing-press-library/library/developer-tools/nvd/cmd/nvd-pp-mcp@latest
    
  2. 在 Claude Code 中注册:
    claude mcp add nvd-pp-mcp -- nvd-pp-mcp
    
  3. 验证:claude mcp list

直接使用

  1. 检查是否已安装:which nvd-pp-cli 如果未找到,请提供安装选项(参见本技能顶部的先决条件)。
  2. 将用户查询与上方命令参考中最合适的命令匹配,或使用 nvd-pp-cli which "<capability>" 解析。
  3. 使用 --agent 标志执行:
    nvd-pp-cli <command> [subcommand] [args] --agent
    
  4. 如果有歧义,请查看子命令帮助:nvd-pp-cli <command> --help。

评论

支持 Markdown