vdb について
vdb は、VDB の脆弱性データを使ってソフトウェア依存関係を確認する MCP サーバー兼 CLI です。コーディングエージェントや開発者が CVE、スロップスクワッティングのリスク、CISA KEV の状態、コミュニティ製 MCP サーバーの信頼プロファイルを調べられ、依存関係の経路分析にはローカルツールを使えます。
主な機能
- 01CVE とスロップスクワッティングのパッケージ確認
- 02ロックファイルと SBOM のスキャン
- 03アドバイザリ参照と脆弱性データ検索
- 04コミュニティ製 MCP サーバーの信頼プロファイル確認
- 05依存関係の呼び出し経路をローカルで分析・検証
- 06依存関係の修正候補を優先順位付け
活用シーン
- 01インストール前のパッケージ検査
- 02プロジェクトのロックファイルに含まれるリスク確認
- 03MCP サーバーの信頼プロファイル確認
- 04脆弱な依存経路の追跡と修正の優先付け
MCP 対応
パッケージ、アドバイザリ、脆弱性検索、MCP サーバーの信頼性確認ツールを MCP クライアントに公開します。ローカルの stdio サーバーはファイルを使うハードニングや修正ツールも提供しますが、ホスト型エンドポイントでは利用できません。
設定
リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。
https://vdb.ai.kr/mcpclaude mcp add --transport http kr-ai-vdb-vdb https://vdb.ai.kr/mcp{"mcpServers":{"kr-ai-vdb-vdb":{"type":"http","url":"https://vdb.ai.kr/mcp"}}}Cursor で開く{"servers":{"kr-ai-vdb-vdb":{"type":"http","url":"https://vdb.ai.kr/mcp"}}}VS Code で開く{"mcpServers":{"kr-ai-vdb-vdb":{"type":"http","url":"https://vdb.ai.kr/mcp"}}}{"mcpServers":{"kr-ai-vdb-vdb":{"serverUrl":"https://vdb.ai.kr/mcp"}}}コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。
ツール
7| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| purl | string | はい | Package URL。例:'pkg:npm/lodash'、'pkg:pypi/requests'。 |
| version | string | いいえ | 任意のバージョン。指定すると、範囲に基づいて照合します。 |
詳細
vdb-mcp
mcp-name: kr.ai.vdb/vdb
VDB 用の MCP(Model Context Protocol)サーバーです。VDB は AI 対応の脆弱性データベースです。Claude Desktop、Claude Code、Cursor、Cline、Continue、およびあらゆる MCP クライアントから、コードの生成中にパッケージをチェックできます。既知の CVE、スロップスクワッティング(LLM が幻覚したパッケージ名を攻撃者が登録している可能性)、CISA KEV のステータス、MCP サーバーの信頼プロファイルなどを確認できます。
クイックスタート
利用できる場所: コードがある環境で動作します。プロジェクトフォルダーを持つ、マシン上のエージェント(Claude Code、Cursor、Cline、Codex CLI)が対象です。チャット専用のウェブ AI では利用できません。サンドボックスから外部ネットワークにアクセスできず、ファイルも参照できないためです。
uvx vdb-mcp # or: pipx run vdb-mcp
Claude Desktop(claude_desktop_config.json)/Cursor(.cursor/mcp.json):
{
"mcpServers": {
"vdb": { "command": "uvx", "args": ["vdb-mcp"] }
}
}
インストール不要 — ストリーミング可能な HTTP MCP クライアントから、ホストされたエンドポイントに接続するだけです。
{
"mcpServers": {
"vdb": {
"url": "https://vdb.ai.kr/mcp",
"headers": { "Authorization": "Bearer vdb_..." }
}
}
}
Claude Code:claude mcp add --transport http vdb https://vdb.ai.kr/mcp --header "Authorization: Bearer $VDB_API_KEY"。
ホストされたエンドポイントは、そのヘッダーからキーを読み取ります(0.2.3 以降。Smithery が設定する vdbApiToken クエリパラメーターも引き続き動作し、そちらが優先されます)。
これで完了です。デフォルトでは、サーバーはホストされたインスタンス https://vdb.ai.kr と通信します。パッケージゲート(vdb_check_package、vdb_check_packages、vdb_list_slopsquatting)と強化ツール(vdb_harden、vdb_harden_remediate、vdb_harden_verify、vdb_vex)は、アドレスごとの利用上限内であればキーなしで応答します(0.2.8 以降。1 時間あたり 100 パッケージ、1 時間あたり 3 回、1 日あたり 10 回の分析、依存関係が最大 200 個のプロジェクトに対応し、データは保存されません)。その他のツールには無料の API キーが必要です(https://vdb.ai.kr/signup。またはエージェント自身がメールでキーをリクエストできます。キーがない場合、これらのツールは request_key_url とともに agent_action: REFUSE を返します)。キーの利用には、現在、不正利用対策以外の制限はありません。
{
"mcpServers": {
"vdb": {
"command": "uvx",
"args": ["vdb-mcp"],
"env": { "VDB_API_TOKEN": "vdb_..." }
}
}
}
ツール
| ツール | 機能 |
|---|---|
vdb_check_package | 1 つのパッケージ(purl と任意のバージョン)について、脆弱性、スロップリスク、KEV をチェックします |
vdb_check_packages | パッケージ一覧を対象に、スロップスクワッティング/リスクを一括チェックします |
vdb_scan_lockfile | ロックファイル/SBOM 全体の判定を統合します(推移的依存関係も含む) |
vdb_lookup | ID(CVE-…、GHSA-…、VDB-SLOP-…)でアドバイザリーを 1 件取得します |
vdb_search | 脆弱性コーパスをフリーテキストで検索します |
vdb_check_mcp_server | コミュニティ MCP サーバーの信頼レベルと権限スコープを確認します |
vdb_list_slopsquatting | エコシステムごとの現在のスロップスクワッティング候補を一覧表示します |
vdb_harden (ローカルのみ) | 呼び出し箇所を強化します。依存関係を通じて、攻撃者のデータが危険なシンクに到達する可能性があるかを確認します。ソースがマシンの外に出ることはありません |
vdb_harden_verify (ローカルのみ) | 修正後に再分析し、経路が閉じたことを示す署名付きの証拠を取得します(キーがない場合は original_path に修正前のファイルを指定してください。判定は署名なしで返されます) |
vdb_harden_remediate (ローカルのみ) | プロジェクトのリスク削減量とコストに基づいて、アップグレード/強化/削除/ポリシーの候補を修正優先度順に提示し、目標を達成する組み合わせも提案します(0.2.7 以降) |
vdb_vex (ローカルのみ) | OpenVEX ドキュメントを作成し、到達不能なアドバイザリーを示します |
ローカル専用の 4 つのツールにはファイルが必要なため、ホストされたエンドポイントでは提供されません。リモートでは 7 つのツールを、uvx vdb-mcp では 11 個のツールを利用できます。
vdb harden コマンド
同じパッケージには、MCP クライアントを使わずに利用できる、ローカルツールの背後で動作する CLI も含まれています(0.2.2 以降)。
uvx --from vdb-mcp vdb harden app.py --manifest uv.lock # analyze a call site
uvx --from vdb-mcp vdb harden --doctor # which of network / key / service is at fault
uvx --from vdb-mcp vdb harden ./src --manifest uv.lock --vex
uvx --from vdb-mcp vdb harden app.py --manifest uv.lock --remediate --target 0.2 # what to fix first
uvx --from vdb-mcp vdb harden ./src --manifest requirements.txt --exclude tests --exclude "*-fixtures"
uvx --from vdb-mcp vdb harden app.py --manifest uv.lock --verify P-… --original /tmp/before/app.py # keyless re-verification
キーなしで利用できます(0.2.8 以降)。アドレスごとに 1 時間あたり 3 回、1 日あたり 10 回まで分析でき、データは保存されず、アップグレードは推定されます。VDB_API_KEY を設定すると、プロジェクトが保持され、経路上のパッケージが変更された際に再スコアリングされ、証拠に署名されます。
PyPI にアクセスできない場合は、https://vdb.ai.kr/v1/harden/client.pyz が標準ライブラリのみを使用する単一ファイル版の同じ CLI です(ハッシュは /v1/harden/client.sha256)。python3 client.pyz --doctor を実行してください。インストールは不要です。
環境
| 変数 | デフォルト | 意味 |
|---|---|---|
VDB_API_URL | https://vdb.ai.kr | 問い合わせる VDB インスタンス(セルフホストの場合に設定) |
VDB_API_TOKEN | (empty) | vdb_… API キー — キーなしでの利用制限が解除されます。照会、検索、SBOM スキャンに必要です |
VDB_PROXY_TOKEN | (empty) | ホスト型エンドポイント専用(0.2.9+):API と共有するシークレットです。これにより、API はこのサーバーが転送する訪問者アドレスを信頼し、キーなしでアクセスする訪問者がそれぞれ個別にカウントされます。それ以外の権限は付与されません。ローカルでは設定しないでください |
VDB_API_ADDR | 144.202.127.83 | このマシンの DNS で解決できない場合の VDB の場所 — 詳細は以下を参照 |
MCP_MODE | stdio | stdio または sse(長時間稼働する HTTP サーバー) |
MCP_PORT | 7700 | SSE ポート |
外向き DNS が使えない場合
サンドボックスでは、外部への通信は許可されていても名前解決が許可されていないことがよくあります。vdb.ai.kr の名前解決に失敗した場合に限り、サーバーは VDB_API_ADDR を使って再試行します。これは DNS を迂回するだけです。TLS ハンドシェイクでは引き続き実際のホスト名が提示され、その証明書が検証されるため、接続先を固定しても、名前解決した場合と同じ認証が行われます。HTTP エラー、接続拒否、タイムアウトの場合は再試行されません。名前解決には成功しているため、アドレスは同じサーバーを指すからです。
理由
LLM はパッケージ名を幻覚し、攻撃者はそうした名前を登録します(スロップスクワッティング)。LLM は、既知の RCE があるパッケージもためらわずに推奨します。VDB はエージェントにガードレールを提供します。npm install/pip install の前にツールを 1 回呼び出すだけです。MCP をまったく必要としない、1 行のプロンプト形式については https://vdb.ai.kr/connect を参照してください。
ライセンス
Elastic License 2.0 — 商業組織や CI 内を含め、無料で利用できます。制限は次のとおりです。このソフトウェアをホスト型またはマネージドサービスとして第三者に提供したり、製品として再販売したりすることはできません。それ以外の商用ライセンスについては、[email protected] までお問い合わせください。API の利用には、呼び出し方法にかかわらず VDB サービス規約が適用されます。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。