mcpField
V
vuln-check

vuln-check

ローカル
github.com/ciloopsセキュリティ16 日前に更新

vuln-check について

vuln-check は、AI エージェントや開発チーム向けのローカル脆弱性スキャナーです。grype に OSV の鮮度情報を加え、優先度付きの検出結果と具体的な更新先を返します。

主な機能

  1. 01ロックファイル・OS パッケージ・イメージ・SBOM のスキャン
  2. 02grype と OSV の脆弱性情報の統合
  3. 03CVSS・EPSS・CISA KEV・修正状況による評価
  4. 04breaking フラグ付き更新プランの作成
  5. 05SARIF 出力と閾値ゲート

活用シーン

  1. 01プロジェクト依存関係のローカル脆弱性検査
  2. 02コンテナイメージや SBOM のスキャン
  3. 03リスク閾値による CI ビルドの制御
  4. 04エージェントへの具体的な依存関係更新先の提示

MCP 対応

MCP サーバーは scan_dir、scan_image、scan_sbom、vuln_lookup、db_update ツールを公開し、ローカルスキャンと脆弱性照会に対応します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"ciloops-vuln-check": {
"command": "npx",
"args": [
"-y",
"@ciloops/vuln-check"
]
}
}
}
起動コマンドnpx -y @ciloops/vuln-check

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
npm@ciloops/vuln-check0.1.3
ocighcr.io/ciloops/vuln-check:0.1.3

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

vuln-check

ci codecov release go license

AI エージェント向けの脆弱性情報を提供します。grype をローカルで実行し、OSV の最新情報を重ね合わせて、40 KB の JSON ダンプではなく、具体的なアップグレード目標を含む優先順位付きの結果を返します。

  • ロックファイルがあれば、あらゆる言語に対応します(npm、PyPI、Go、Maven、Cargo、RubyGems、Composer、NuGet、Hex、Pub、Swift、R、Conan など)。OS パッケージ、コンテナーイメージ、SBOM にも対応します。
  • 検出項目ごとに 1 つのスコアを算出します:CVSS + EPSS + CISA KEV + 修正の利用可否。
  • パッケージごとの修正計画:すべての検出項目を解消する最小バージョンと、breaking フラグ。
  • CLEAN は約 20 トークンです。サーバー上では何も実行されず、任意の OSV クエリを除き、データがマシンの外に出ることはありません。

インストール

# grype is required
brew install grype            # or: curl -sSfL https://get.anchore.io/grype | sh -s -- -b /usr/local/bin

go install github.com/ciloops/vuln-check/cmd/vuln-check@latest
# or
brew install ciloops/tap/vuln-check      # macOS cask
# or
npx @ciloops/vuln-check scan .

Linux/macOS/Windows 向けバイナリーは Releases ページにあります。Docker: ghcr.io/ciloops/vuln-check(grype を同梱)。

CLI

vuln-check scan .                               # agent format, OSV overlay on
vuln-check scan python:3.12-slim                # image, pulled from the registry
vuln-check scan sbom:bom.cdx.json
vuln-check scan --format sarif --sarif-out out.sarif .
vuln-check scan --fail-above 69 --no-osv .      # CI gate, exit 2 above threshold
vuln-check vuln CVE-2024-3094
vuln-check db update

出力(--format agent):

{"status":"ACTION_REQUIRED","target":"dir:.","packages":412,"findings":17,"shown":5,"sources":["grype","osv"],
 "actions":[{"package":"pkg:npm/minimist","current":"1.2.5","target":"1.2.6","breaking":false,"fixes":["CVE-2021-44906"],"score":59}],
 "top":[{"id":"CVE-2021-44906","package":"[email protected]","severity":"CRITICAL","score":59,"epss":0.015,"fixed_in":["1.2.6"]}],
 "unfixable":3}

status:CLEAN | REVIEW(すべての検出項目が 40 未満)| ACTION_REQUIRED。fresh: true は、grype-db に取り込まれる前に OSV から取得されたアドバイザリーを示します。unfixable は、現在のリリース系列で修正がない検出項目の数です。

MCP

ツール:scan_dir、scan_image、scan_sbom、vuln_lookup、db_update。

Claude Code:

claude mcp add vuln-check -- vuln-check mcp
# or the plugin (adds a skill that tells Claude when to scan):
claude plugin marketplace add ciloops/vuln-check && claude plugin install vuln-check

Cursor / Windsurf / VS Code(.cursor/mcp.json、~/.codeium/windsurf/mcp_config.json、.vscode/mcp.json):

{ "mcpServers": { "vuln-check": { "command": "vuln-check", "args": ["mcp"] } } }

Codex(~/.codex/config.toml):

[mcp_servers.vuln-check]
command = "vuln-check"
args = ["mcp"]

依存関係の一覧をネットワークに送信しないようにするには、引数に --no-osv を追加します。

GitHub Action

- uses: ciloops/vuln-check@v1
  with:
    target: .            # or an image ref
    fail-above: 69
    sarif: vuln.sarif
- uses: github/codeql-action/upload-sarif@v3
  if: always()
  with: { sarif_file: vuln.sarif }

スコア

severity = CVSS 基本値 × 6(ラベルがある場合はその値を使用) · exploit = EPSS × 30 · KEV:+10、下限 85 · 修正なし:× 0.85。0~100 の範囲に制限されます。internal/score を参照してください。

最新情報

grype-db は毎日ビルドされ、grype は最長 2 時間ごとに更新します。OSV オーバーレイは、grype がインベントリー化した purl(言語エコシステムのみ)を使って api.osv.dev に問い合わせ、grype-db がまだ認識していない情報を追加します。通常、GHSA の公開から数分で反映されます。--no-osv で無効にできます。

制限事項

  • ロックファイルがない場合、推移的依存関係は検出できません。これはすべてのスキャナーに共通です。
  • 修正計画は、パッケージごとにリリース系列が直線的であることを前提とします。直接依存か推移的依存かは、まだ区別されません。
  • バージョン比較には、エコシステムごとのパーサーではなく汎用トークナイザーを使います。「現在のバージョンより上で最小の修正版」を見つけるには十分ですが、例外もあります(PEP 440 の post-release、特殊な Maven qualifier など)。

開発

go test ./...
go build ./cmd/vuln-check

テストは偽の grype(cmd/vuln-check/testdata/fake-grype.sh)と internal/grype/testdata のフィクスチャを使って実行します。CI では実際の grype を使った E2E テストを実行します。

リリース:vX.Y.Z タグを付けると、goreleaser がバイナリー、チェックサム、ghcr イメージ、macOS 用 Homebrew cask(HOMEBREW_TAP_GITHUB_TOKEN と ciloops/homebrew-tap リポジトリが必要)、および npm パッケージを信頼された公開方式で公開します(OIDC、トークン不要:npmjs.com で @ciloops/vuln-check の GitHub Actions 信頼されたパブリッシャーを設定し、ワークフローには release.yml を指定してください)。

ライセンス

Apache-2.0。grype と syft は Anchore による Apache-2.0 ライセンスです。脆弱性データ:NVD(パブリックドメイン)、GHSA(CC-BY 4.0)、OSV(ソースごとに異なる)、CISA KEV、FIRST EPSS。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。