PostgreSQL CVE & Release Intelligence について
AI アシスタント向けに、CVE、撤回されたリリース、既知のエクスプロイト、アップグレード経路を照会できる MCP サーバーです。手動で整備された PG_CVE データを構造化して返します。
主な機能
- 01バージョン別 CVE と状態の取得
- 02バージョン間の脆弱性比較
- 03修正項目を含む更新案の提示
- 04公開エクスプロイトのある CVE の一覧
- 05データベース概要の確認
活用シーン
- 01PostgreSQL のバージョンに既知の問題があるか確認
- 02更新前後のセキュリティ問題を比較
- 03EOL が近いブランチの更新を計画
- 04公開エクスプロイトのある CVE を特定
MCP 対応
PostgreSQL のセキュリティレポート、バージョン比較、更新案、エクスプロイト一覧、データ概要を MCP ツールとして提供します。stdio と Streamable HTTP に対応します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
5掲載時のツール一覧 · 2 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| version | string | はい |
詳細
pg-cve-mcp — AI エージェント向け PostgreSQL CVE・リリース情報
PostgreSQL のセキュリティ情報(CVE、取り下げられたリリース、既知のエクスプロイト、あらゆるバージョンのアップグレードパス)に、AI アシスタントが直接アクセスできるようにします。閲覧ではなく、問い合わせで取得できます。
pg-cve-mcp を選ぶ理由
CVE ダッシュボードを閲覧するのは人間の習慣です。エージェントに必要なのはページではなく答えです。
pg-cve-mcp は、PG_CVE プロジェクトの厳選されたデータセット(PostgreSQL CVE Dashboard と同じもの)を MCP ツールに変換し、あらゆる AI アシスタント(opencode、Claude Desktop など)から直接呼び出せるようにします。静的なページだったものが、AI ワークフローの中で直接使えるプログラム機能になります。
未加工の NVD フィードとは異なり、PG_CVE のデータセットは、慎重な DBA が行うのと同じ判断を反映するよう手作業で厳選されています。
- 取り下げられたリリースには、実際の理由を記載しています(例:「CONCURRENTLY の使用によるデータ破損」)
- 既知のエクスプロイトは、実際に悪用されていることを確認済みです
- EOL ブランチには印を付け、サポート対象外の報告の先頭に合成
CVE-EOL-WARNING(CVSS 10.0)を付加します - 検証済み CVEにより、自動スクレイピングによる誤検知がありません
エージェントにできること
| エージェントへのプロンプト | 使用するツール | 結果 |
|---|---|---|
| 「PostgreSQL 15.8 は安全ですか?」 | get_cves("15.8") | EOL/取り下げフラグ、リリース日、CVSS 順の全 CVE リスト |
| 「16.3 と 16.4 を比較して」 | compare_versions("16.3", "16.4") | 修正済み/新規/未修正の CVE とリリース日 |
| 「14.10 からアップグレードすべきですか?」 | get_upgrade_path("14.10") | 推奨バージョンと、修正される CVE およびリリース日 |
| 「現在、既知のエクスプロイトはありますか?」 | get_exploits() | 悪用可能な全 CVE を CVSS 順に表示し、リリース日も含めます |
| 「このデータベースは何を追跡していますか?」 | get_summary() | 統計情報、EOL と取り下げられたリリースの概要 |
エージェントファーストの設計
各ツールは、CVSS の高い順に並べた構造化 JSONを返します。ツールはバージョンのメタデータで、取り下げとEOLの状態を明示し、すべてのバージョンのリリース日を含めます。get_upgrade_path は、ブランチがサポート終了間近、または終了している場合、安全なマイナーアップグレードと、必要なメジャーアップグレードを区別するため、エージェントは単なるデータの提示ではなく、アドバイスもできます。
実際のツール出力はライブデモをご覧ください。
クイックスタート
pip install pg-cve-mcp
pg-cve-mcp
または npx を使う方法(インストール不要):
npx -y pg-cve-mcp
MCP ツール
| ツール | 説明 |
|---|---|
get_cves(version) | バージョンの完全なセキュリティレポート:EOL/取り下げの状態、リリース日、統計情報、CVSS 順の CVE(サポート対象外のリリースでは、合成 CVE-EOL-WARNING(10.0)を先頭に付加) |
compare_versions(v1, v2) | 取り下げ・EOL フラグとリリース日を含む、CVE の並列比較(修正済み/新規/未修正) |
get_upgrade_path(from_version) | 推奨アップグレード(デフォルトはマイナー、EOL または EOL 間近の場合はメジャー)と、修正される CVE およびリリース日 |
get_exploits() | 既知の公開エクスプロイトがある全 CVE を、リリース日とともに CVSS 順で表示 |
get_summary() | 追跡対象の CVE データベースの概要(取り下げられたリリースを含む) |
トランスポート
stdio(デフォルト)
opencode、Claude Desktop、その他の stdio MCP クライアント向けに、ローカルで stdio 経由で実行します。
pip install -e .
pg-cve-mcp
Streamable HTTP(セルフホスト)
リモートまたはエンタープライズ環境では、同じツールを HTTP 経由で提供します。
python run_server.py を実行するか、Dockerfile をビルドしてください。サーバーは $PORT
(デフォルトは 8000)の /mcp パスで待ち受けます。
python run_server.py
# MCP endpoint: http://127.0.0.1:8000/mcp
URL を使って任意の MCP クライアントを設定します。例:opencode.json の場合:
{
"mcp": {
"pg-cve-mcp": {
"type": "remote",
"url": "http://127.0.0.1:8000/mcp"
}
}
}
設定
| 環境変数 | デフォルト | 説明 |
|---|---|---|
PG_CVE_MCP_TTL | 86400 | CVE データのキャッシュ TTL(秒) |
PG_CVE_MCP_DATA_URL | https://meob.github.io/PG_CVE/postgresql_cves.json | CVE データソースの URL |
PORT | 8000 | Streamable HTTP サーバー(run_server.py)の HTTP ポート |
開発
テストスイートとリンターを実行します:
python -m pytest
ruff check src tests
mypy src
データソース
データはローカルにキャッシュされ、PG_CVE プロジェクトの GitHub Pages から取得されます。ネットワークが利用できない場合は、同梱されたコピーにフォールバックします。
プロンプトの例
「PostgreSQL 16.4 に影響する CVE は何ですか?」
「PostgreSQL 15.8 は安全に使用できますか?」
「16.3 と 16.4 の CVE を比較してください」
「PostgreSQL 14.10 からのアップグレードパスを教えてください」
ライセンス
Apache 2.0
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。