mcpField
O
Osv Ui Mcp

Osv Ui Mcp

ローカル
github.com/toan203セキュリティ58 週間前に更新

Osv Ui Mcp について

osv-uiは依存関係マニフェストをOSV.devで照合し、脆弱性をローカルのブラウザダッシュボードに表示します。依存関係のリスクを確認する開発者向けで、修正は明示的な確認後にのみ適用されます。

主な機能

  1. 017つのエコシステムのマニフェストをスキャン
  2. 02脆弱性とリスクスコアを表示
  3. 03アップグレード案と修正コマンドを提示
  4. 04レポートとSBOMをエクスポート
  5. 05スキャン結果をベースラインと比較
  6. 06確認後に修正を適用

活用シーン

  1. 01モノレポ全体の依存関係の脆弱性を確認
  2. 02CIレポートを作成しPRスキャンを比較
  3. 03ビジュアルダッシュボードで検出結果を確認

MCP 対応

osv-uiはAIエージェント向けのMCPサーバーとしても動作します。プロジェクトをスキャンし、確認用ダッシュボードを開き、明示的な承認後に修正を適用できます。

設定

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

mcp.json · 共通設定
{
"mcpServers": {
"osv-ui": {
"command": "npx",
"args": [
"-y",
"osv-ui-mcp"
]
}
}
}
起動コマンドnpx -y osv-ui-mcp

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

パッケージ
npmosv-ui-mcp

ツール

4

掲載時のツール一覧 · 3 週間前に更新

パラメーター型必須説明
pathstringいいえプロジェクトディレクトリの絶対パスまたは相対パス。デフォルトは現在の作業ディレクトリです。
severity_filterenumいいえこの深刻度以上の脆弱性のみを返します。デフォルト:すべて。all | critical | high | moderate | low
offlinebooleanいいえtrue の場合、OSV.dev への問い合わせをスキップし、マニフェストのみを解析します。デフォルト:false。

詳細

osv-ui dashboard

osv-ui

npm、Python、Go、Rust、Java、PHP、Ruby のプロジェクト向け、美しく、設定不要のビジュアル CVE ダッシュボードです。
コマンドは 1 つ。登録不要。API キー不要。100% ローカルで動作し、コードがマシンの外に出ることはありません。

npm version npm version (mcp) npm downloads License: MIT PRs Welcome Node.js

🇻🇳 Tiếng Việt · 🇺🇸 English · 🇨🇳 中文 · 🇯🇵 日本語


問題

$ npm audit

# ... 300 lines of this ...
# moderate  Regular Expression Denial of Service in semver
# package   semver
# patched in >=7.5.2
# ...
# 12 vulnerabilities (3 moderate, 6 high, 3 critical)

誰もそれを読みません。セキュリティは無視され、依存関係は脆弱なままです。

解決策

npx osv-ui

→ ダッシュボードが開きます。すべての CVE、すべての修正、すべてのサービスを確認できます。これで完了です。

試してみる理由
  • 設定不要:複雑なセットアップも、登録も、API キーも必要ありません。
  • プライバシーを最優先:分析はすべてお使いのマシン上で行われます。
  • 高速かつビジュアル:リアルタイムのリスクスコア、脆弱性チャート、分かりやすいアップグレードガイドを数秒で確認できます。
  • マルチプラットフォーム:Node.js(npm)、Python、Go、Rust、Java、PHP、Ruby をネイティブにサポートします。

機能

🌐 マルチエコシステムpackage-lock.json、pnpm-lock.yaml、yarn.lock、Pipfile.lock、poetry.lock、requirements.txt、go.sum、Cargo.lock、pom.xml、composer.lock、Gemfile.lock をスキャンします
📡 最新の CVE データOSV.dev を利用し、NVD、GitHub Advisory、PyPI Advisory から毎日更新されます。API キーは不要です。
🏢 マルチサービス1 つのコマンドでモノレポ全体をスキャンできます。フロントエンド、バックエンド、ワーカー、ML サービスに対応します
💊 修正ガイドDependabot 形式のアップグレード表:現在のバージョン → 安全なバージョンと、ワンクリックでコピーできるコマンド
🔌 組み込み REST APIGET /api/data または CLI のエクスポートフラグで、独自のセキュリティダッシュボードを構築できます
🎯 リスクスコアサービスごとに 0~100 のスコアを表示し、優先して対処すべき箇所が分かります
🔍 CVE の詳細表示行をクリックすると、CVSS スコア、説明、NVD リンク、GitHub Advisory リンクを確認できます
🌙 ダークモード昼夜を問わず、目に優しくセキュリティ監査を行えます

クイックスタート

現在のディレクトリをスキャン:

npx osv-ui

モノレポをスキャン(複数のサービスを一度に):

npx osv-ui ./frontend ./api ./worker ./ml-service

現在のディレクトリ以下にあるすべてのサービスを自動検出:

npx osv-ui -d

package.json のスクリプトに追加:

{
  "scripts": {
    "audit:ui":  "npx osv-ui",
    "audit:all": "npx osv-ui ./frontend ./api ./worker"
  }
}
--discover, -d    Auto-find service dirs that contain a supported manifest
--port=2003       Use a custom port (default: 2003)
--json[=file]     Save report as JSON without opening browser (defaults to osv-report.json)
--html[=file]     Save report as HTML without opening browser (defaults to osv-report.html)
--cyclonedx[=file] Save CycloneDX SBOM JSON (defaults to osv-sbom.cdx.json)
--spdx[=file]     Save SPDX SBOM JSON (defaults to osv-sbom.spdx.json)
--baseline=file   Compare with a previous --json report
--markdown[=file] Save a Markdown PR/comment report (defaults to osv-report.md)
--fail-on=level   Exit non-zero for critical/high/moderate/low findings
--webhook-url=url POST matching findings to a webhook
--webhook-severity=level Webhook threshold (default: critical)
--watch           Keep dashboard running and re-scan when manifests change
--no-open         Don't auto-open the browser
--offline         Skip OSV.dev lookup — parse manifests only
-h, --help        Show help message
🤖 AI エージェントとの統合(MCP)

osv-ui は Model Context Protocol (MCP) サーバーになりました。これにより、Claude Desktop、Cursor、Claude Code などの AI エージェントは次のことができます。

  1. CVE を自動的に検出するため、プロジェクトをスキャンします。
  2. 検出結果を確認できるよう、ビジュアルダッシュボードを開きます(Human-in-the-loop)。
  3. 明示的な確認の後に、修正を適用します。

クイックセットアップ(npx):

{
  "mcpServers": {
    "osv-ui": {
      "command": "npx",
      "args": ["-y", "osv-ui-mcp"]
    }
  }
}

詳しいセットアップ手順は、MCP パッケージの README をご覧ください。


🔌 強力な組み込み API

osv-ui は単なるダッシュボードではなく、セキュリティデータエンジンです。
ダッシュボードの起動後、プロジェクト全体の未加工のセキュリティデータを取得できます。

# Get full JSON payload for all services
curl http://localhost:2003/api/data

# Use it in your custom scripts
curl -s http://localhost:2003/api/data | jq '.[0].vulns'
CI レポート、PR 差分、SBOM

ブラウザーを開かずに、機械可読なレポートを生成します。

npx osv-ui -d --json=osv-report.json --markdown=osv-report.md --cyclonedx=sbom.cdx.json --spdx=sbom.spdx.json --no-open

PR のスキャン結果をベースラインレポートと比較し、新たに発生した重大度「高」以上の検出結果があれば失敗させます。

npx osv-ui -d --json=current.json --baseline=main-osv-report.json --markdown=osv-pr.md --fail-on=high --no-open

最小限の GitHub Actions フロー:

name: osv-ui
on: [pull_request]
jobs:
  scan:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-node@v4
        with:
          node-version: 24
      - run: npx osv-ui -d --json=current.json --markdown=osv-pr.md --cyclonedx=sbom.cdx.json --fail-on=high --no-open
      - uses: actions/upload-artifact@v4
        if: always()
        with:
          name: osv-ui-report
          path: |
            current.json
            osv-pr.md
            sbom.cdx.json

新たに検出された重大な問題を Webhook に送信します。

npx osv-ui -d --baseline=main-osv-report.json --webhook-url="$SECURITY_WEBHOOK_URL" --webhook-severity=critical --json=current.json

対応しているマニフェストファイル

エコシステムファイル
npm / JSpackage-lock.json · pnpm-lock.yaml · yarn.lock
Pythonrequirements.txt · Pipfile.lock · poetry.lock · pyproject.toml · uv.lock
Gogo.sum
RustCargo.lock
Javapom.xml(Maven)
PHPcomposer.json · composer.lock
RubyGemfile · Gemfile.lock

対応エコシステムは今後も追加予定です。ロードマップをご覧ください。


仕組み

Your project files
    │
    ├─ package-lock.json   ──┐
    ├─ Pipfile / poetry    ──┤──► parser ──► package list
    ├─ go.sum / Cargo.lock ──┘
                                    │
                                    ▼
                             OSV.dev batch API  (free, no key)
                                    │
                                    ▼
                             CVE matches + fix versions
                                    │
                                    ▼
                         Express server → browser dashboard
                              http://localhost:2003

CVE データは**OSV.dev**から取得しています。Google が管理する無料のオープンデータベースで、以下の情報を集約しています。

毎日更新されます。アカウント不要。レート制限なし。ベンダーロックインなし。


osv-scanner(Google)との併用に最適

osv-ui と osv-scanner は、同じ OSV.dev のデータソースを利用します。osv-ui は、osv-scanner にないビジュアル表示を追加します。

  • ターミナル出力の代わりにブラウザダッシュボードを表示
  • 複数サービスのサイドバー
  • コマンドをコピーできる Dependabot スタイルのアップグレードガイド

他のツールとの比較

osv-uinpm auditSnykDependabot
ビジュアルダッシュボード✅❌ ターミナルのみ✅✅
npm 対応✅✅✅✅
Python 対応✅❌✅✅
1 つの画面で複数サービスを表示✅❌✅ 有料✅
登録不要✅✅❌❌
GitLab Freeで動作✅✅❌❌
セルフホスト/ローカルで動作✅✅❌❌
修正コマンド✅一部対応✅✅
オープンソース✅✅❌❌

GitLab CI — 重大な CVE がある場合にデプロイをブロック

GitLab Free では Dependabot を使えませんか?.gitlab-ci.yml に次を追加してください。

audit:
  stage: test
  image: node:24-alpine
  script:
    - npm audit --json > /tmp/audit.json || true
    - |
      node -e "
        const r = require('/tmp/audit.json');
        const crit = Object.values(r.vulnerabilities || {})
          .filter(v => v.severity === 'critical').length;
        if (crit > 0) {
          console.error('BLOCKED: ' + crit + ' critical CVE(s). Run: npx osv-ui');
          process.exit(1);
        }
        console.log('OK: no critical vulnerabilities');
      "
  artifacts:
    paths: [/tmp/audit.json]
    when: always

要件

  • Node.js >= 22
  • OSV.dev へのクエリにはインターネット接続が必要です。または --offline を使用してください
  • npm プロジェクト:package-lock.json が存在するように、まず npm install を実行してください
  • Python プロジェクト:上記の対応マニフェストファイルのいずれか

ロードマップ

あらゆる貢献を歓迎します。取り組みたい項目がある場合は、調整のため、まず issue を作成してください。

  • Go 対応 — go.sum / go.mod を解析
  • Rust 対応 — Cargo.lock を解析
  • Java / Maven — pom.xml を解析
  • PHP / Composer — composer.lock を解析
  • Ruby / Bundler — Gemfile.lock を解析
  • レポートのエクスポート — HTML / JSON として保存
  • ダークモード — 目に優しいダッシュボード UI
  • GitHub Actions / CI 差分 — Markdown の PR コメントを生成し、新たな CVE があれば失敗させる
  • SBOM のエクスポート — CycloneDX / SPDX 形式
  • 監視モード — マニフェストファイルの変更時に再スキャン
  • Slack / webhook — 新たな重大な CVE を通知
  • パーサーの堅牢化 — Maven のプロパティ継承、ロックファイルのエッジケース、ワークスペースのレイアウト
  • ダッシュボードのリアルタイム更新 — ページを再読み込みせずに、監視モードの更新を開いているブラウザータブへ送信

貢献

このプロジェクトはコミュニティによって作られています。スキルレベルを問わず歓迎します。

最初の貢献におすすめの課題:

  • パーサーのユニットテストを作成する
  • Python パーサーのエッジケースを改善する
  • Maven/Gradle およびワークスペースのパーサーのエッジケースを改善する
# Clone and run locally
git clone https://github.com/toan203/osv-ui
cd osv-ui
npm install

# Run against your own project
node bin/cli.js /path/to/your/project

# Run against multiple services
node bin/cli.js ./frontend ./backend

コードスタイルと PR の手順については、CONTRIBUTING.md をお読みください。


ライセンス

MIT — 自由に使用、フォーク、組み込み、活用できます。クレジット表記は歓迎しますが、必須ではありません。


osv-ui は、プロジェクトで実際の CVE を検出しましたか?
⭐ を付けると、ほかの開発者がこのツールを見つけやすくなります。

このプロジェクトを支援する

Twitter でシェア · Reddit に投稿

コメント

MCP は初めてですか?

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

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