pp-nvd について
pp-nvdは、NVDの読み取り専用CLIでCPE製品識別子とCVE脆弱性を検索するエージェント向けスキルです。認証不要で、キーワード、識別子、公開日、CVSS深刻度による検索に対応します。
主な機能
- 01CPE製品識別子の検索
- 02キーワードやIDによるCVE検索
- 03日付やCVSS深刻度による脆弱性の絞り込み
- 04エージェントモードのJSONとフィールド選択
活用シーン
- 01製品の正確なCPE名を特定する
- 02製品に影響する脆弱性を調べる
- 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 がインストールされていることを必ず確認してください。 インストールされていない場合は、先にインストールしてください。
- Printing Press インストーラーを使用してインストールします。デフォルトのバイナリ保存先は、macOS/Linux では
$HOME/.local/bin、Windows では%LOCALAPPDATA%\Programs\PrintingPress\binです。npx -y @mvanhorn/printing-press-library install nvd --cli-only - 確認します:
nvd-pp-cli --version - 報告されたインストールディレクトリが、このスキルを実行するエージェント/ランタイムの
$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 は少なくとも 1 つ一致したことを示し、終了コード 2 は確信を持てる一致がなかったことを示します。一致がなかった場合は、--help を使うか、問い合わせをより具体的にしてください。
認証の設定
認証は不要です。
nvd-pp-cli doctor を実行して、セットアップを確認してください。
エージェントモード
任意のコマンドに --agent を追加します。次のオプションに展開されます:--json --compact --no-input --no-color --yes。
-
パイプ可能 — stdout に JSON、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 を参照してください。人が読める形式の N results (live) という要約は、stdout がターミナルの場合にのみ stderr に出力されます。パイプやエージェントの利用者には、stdout に純粋な JSON が出力されます。
エージェントからのフィードバック
この 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 されることはありません。デフォルトの動作ではローカルにのみ保存されます。
バグ報告ではなく、意外に感じたことを書いてください。短く、具体的に、1 行で。それが積み重なっていく部分です。
出力の配信
すべてのコマンドで --deliver <sink> を指定できます。出力は、標準出力に加えて(または標準出力の代わりに)指定したシンクに送られるため、エージェントはコマンド結果を手動でパイプ処理せずに振り分けられます。利用できるシンクは3種類です。
| シンク | 効果 |
|---|---|
stdout | デフォルト。標準出力にのみ書き込みます |
file:<path> | 出力を <path> にアトミックに書き込みます(一時ファイルを作成してから名前を変更) |
webhook:<url> | 出力本文を URL に POST します(--compact の場合は application/json または application/x-ndjson) |
不明なスキームは、サポートされているスキームを示す構造化エラーとともに拒否されます。Webhook の失敗時はゼロ以外の終了コードが返され、URL と HTTP ステータスが標準エラーに記録されます。
名前付きプロファイル
プロファイルは、保存されたフラグ値のセットで、呼び出しのたびに再利用できます。スケジュールされたエージェントが、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 の下に一覧表示します。
終了コード
| コード | 意味 |
|---|---|
| 0 | 成功 |
| 2 | 使用方法のエラー(引数が正しくありません) |
| 3 | リソースが見つかりません |
| 5 | API エラー(上流の問題) |
| 7 | レート制限中(待機して再試行してください) |
| 10 | 設定エラー |
引数の解析
$ARGUMENTS を解析します。
- 空、
help、または--help→nvd-pp-cli --helpの出力を表示します installで始まる →mcpで終わる場合 → MCP をインストールします。それ以外の場合 → 上記の前提条件を参照してください- その他すべて → 直接使用(
--agentを指定して CLI コマンドを実行します)
MCP サーバーのインストール
- MCP サーバーをインストールします。
go install github.com/mvanhorn/printing-press-library/library/developer-tools/nvd/cmd/nvd-pp-mcp@latest - Claude Code に登録します。
claude mcp add nvd-pp-mcp -- nvd-pp-mcp - 確認します:
claude mcp list
直接使用
- インストールされているか確認します:
which nvd-pp-cli見つからない場合は、インストールを提案します(このスキルの冒頭にある前提条件を参照してください)。 - ユーザーのクエリに最適なコマンドを上記のコマンドリファレンスから選ぶか、
nvd-pp-cli which "<capability>"で解決します。 --agentフラグを指定して実行します。nvd-pp-cli <command> [subcommand] [args] --agent- あいまいな場合は、サブコマンドのヘルプを確認します:
nvd-pp-cli <command> --help。