Kodus OSV について
Kodus OSV は、OSV v1 のオープンソース脆弱性検索をエージェントに提供するリモート MCP HTTP サーバーです。単一検索と一括検索に対応し、パッケージまたはコミットを検証済みのパラメーターで指定できます。
主な機能
- 01`/mcp` のストリーミング HTTP エンドポイント
- 02`osv_query` による単一検索
- 03`osv_query_batch` による一括検索
- 04OSV API ベース URL の設定
- 05クエリスキーマの検証
活用シーン
- 01パッケージのバージョンに既知の脆弱性があるか確認
- 02コミットを指定して脆弱性を検索
- 031 回のリクエストで複数パッケージを検索
MCP 対応
リモート MCP サーバーとして、OSV v1 API を検索する `osv_query` と `osv_query_batch` ツールを MCP クライアントに公開します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
OSV MCP サーバー(Bun)
オンデマンドでオープンソースの脆弱性を検索するために、OSV v1 API をラップするリモート Model Context Protocol(MCP)HTTP サーバーです(フィードの例:https://osv.dev/list?q=%40NESTJS%2FCORE&ecosystem=npm)。MCP ツールとして公開されており、エージェントから OSV に直接問い合わせできます。
特長
/mcpにストリーミング可能な HTTP MCP エンドポイントを提供します。- ツール:
osv_query(単一の対象)とosv_query_batch(複数の対象)。 - ベース URL を設定できます(
OSV_API_URL。既定値はhttps://api.osv.dev/v1)。 - LLM を適切に導くための明確なスキーマと検証機能を備えています(commit と version は排他的、purl のルール、ページネーション)。
クイックスタート
必要なもの:Bun。
bun install
PORT=3000 HOST=0.0.0.0 OSV_API_URL=https://api.osv.dev/v1 bun run index.ts
MCP エンドポイント:http://<host>:<port>/mcp。
環境変数:
PORT/HOST:HTTP のバインド先(既定値はそれぞれ3000/0.0.0.0)。OSV_API_URL:OSV ベース URL を上書きします。
MCP クライアントの設定
- Claude Code CLI:
claude mcp add --transport http mcp-osv http://localhost:3000/mcp - VS Code:
code --add-mcp "{\"name\":\"mcp-osv\",\"type\":\"http\",\"url\":\"http://localhost:3000/mcp\"}" - MCP Inspector:
npx @modelcontextprotocol/inspector->http://localhost:3000/mcpに接続します リモートの場合は、localhostをホスト/ポートに置き換えてください。
ツールとパラメーター
osv_query
{
"commit": "sha OR",
"version": "version string OR",
"package": {
"name": "required with ecosystem if not using purl",
"ecosystem": "required with name if not using purl",
"purl": "pkg:pypi/jinja2 // purl OR name+ecosystem; if version is present, omit @version here"
},
"pageToken": "optional pagination token from previous OSV response"
}
ルール:
- commit または version のいずれか一方を指定します(両方を指定することはできません)。
versionを指定する場合は、packageが必須です。packageはpurl、または(name+ecosystem)のいずれかで指定します。versionがあり、package.purlを使用する場合は、purl 内の@versionを省略してください。
osv_query_batch
{
"queries": [
{
"commit": "sha OR",
"version": "version string OR",
"package": {
"name": "pkg name",
"ecosystem": "ecosystem",
"purl": "pkg:ecosys/name"
},
"pageToken": "optional"
}
]
}
ルール:各項目は osv_query と同じルールに従います。
呼び出し例
- PyPI のバージョン:
{"package":{"purl":"pkg:pypi/jinja2"},"version":"3.1.4"} - name と ecosystem を指定した npm:
{"package":{"name":"@nestjs/core","ecosystem":"npm"},"version":"10.2.10"} - commit の検索:
{"commit":"<sha>","package":{"ecosystem":"Go","name":"github.com/foo/bar"}}
デバッグ
- サーバーログ:
OSV MCP server listening on http://<host>:<port>/mcp - Curl での初期化:
curl -H "content-type: application/json" -H "accept: application/json, text/event-stream" -d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-03-26","clientInfo":{"name":"curl","version":"0.0.0"},"capabilities":{}}}' http://localhost:3000/mcp - ツールの一覧表示:同じエンドポイントに
{"jsonrpc":"2.0","id":2,"method":"tools/list","params":{}}を送信します
ライセンス
MIT License。詳細は LICENSE を参照してください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。