Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
cve-mcp-server — 本番グレードのMCPサーバー。Claudeに21のAPIにわたる27のセキュリティインテリジェンスツールを提供 — CVE検索、EPSSスコアリング、CISA KEV、MITRE ATT&CK、Shodan、VirusTotalなど。 | Kitploit
ツール/GitHubGitHub/mukul975/cve-mcp-server
OSINT (オープンソースインテリジェンス)偵察脆弱性スキャナー脆弱性分析情報収集DevSecOps脅威インテリジェンスインシデントレスポンスAPIセキュリティ
GitHubmukul975/cve-mcp-server

cve-mcp-server

本番グレードのMCPサーバー。Claudeに21のAPIにわたる27のセキュリティインテリジェンスツールを提供 — CVE検索、EPSSスコアリング、CISA KEV、MITRE ATT&CK、Shodan、VirusTotalなど。

1.1k1852ヶ月前Kitploit レビュー済み

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有
リポジトリを見るウェブサイト

🛡️ CVE MCP Server

CVE MCP Server

AI搭載のセキュリティインテリジェンスをあなたの手元に — 28のツール + ワンコールの triage_cve オーケストレーター、24のデータソース、1つのプロトコル。 GARS-2026 Survey Python 3.10+ License: MIT MCP Compatible Security Tool FastMCP

Claudeをフルスペクトラムのセキュリティアナリストに変える、本番グレードの Model Context Protocol (MCP) サーバーです。NVD、EPSS、CISA KEV、Shodan、VirusTotal、GreyNoiseをまたいで15以上のブラウザタブを切り替える代わりに、Claudeに1つの質問をするだけで、相関付けられたインテリジェンスを数秒で得られます。Python、FastMCP、httpx、aiosqlite、Pydantic v2、defusedxmlで構築されています。

問題: 1件のCVEをトリアージするには、NVDでCVSSスコア、EPSSで悪用可能性、CISA KEVで積極的悪用の有無、GitHubでパッチ、VirusTotalでマルウェアとの関連を照会し、その後すべてを頭の中で相関付ける必要があります。50件のCVEであれば、丸1日を失うことになります。

解決策: CVE MCP Serverは、Claudeに24のAPIにわたる28のセキュリティツールへの直接アクセスを提供します — 最前面には triage_cve ワンコールオーケストレーターを配置。「CVE-2024-3400にパッチを当てるべきですか?」と質問すると、Claudeは関連するすべてのソースに並行して展開し、複合リスクスコア(CISA KEVによるハードオーバーライド付き)を計算し、証拠付きの優先順位付けされた推奨事項を提供します。


🌍 GARS-2026 — Global Agentic AI Readiness Survey

私は、セキュリティ専門家、開発者、エンタープライズチームがエージェントAI(MCPサーバー、ツール呼び出し、ガバナンス、人間参加型ワークフロー)に対して実際にどの程度準備ができているかを測定する、グローバルな学術研究を実施しています。

このリポジトリを利用されている場合、あなたの回答は非常に価値のあるデータポイントになります。

📋 アンケートに回答する(10分): Survey

  • 60問 · 匿名 · SRH Berlin監督
  • casky.ai への早期アクセス用に 50 Casky Tokens がもらえます
  • 結果はCC-BY 4.0のもとオープンアクセスで公開されます

📑 目次

  • アーキテクチャ
  • ツールカタログ
  • インストール
  • APIキーの設定
  • 設定
  • クイックスタート
  • 使用例
  • リスクスコアの解説
  • データソース
  • テストの実行
  • アーキテクチャの詳細
  • セキュリティとプライバシー
  • トラブルシューティング
  • ロードマップと既知の制限事項
  • コントリビューション
  • ライセンス

🏗️ アーキテクチャ```

┌─────────────────────────────────────────────────────────────────────┐ │ Claude Desktop / Claude Code │ │ (MCP Client via stdio) │ └──────────────────────────────┬──────────────────────────────────────┘ │ Model Context Protocol (stdio) ▼ ┌─────────────────────────────────────────────────────────────────────┐ │ CVE MCP Server (Python) │ │ ┌─────────────┐ ┌──────────────┐ ┌───────────────┐ │ │ │ 27 MCP │ │ Composite │ │ SQLite Cache │ │ │ │ Tools │ │ Risk Engine │ │ + Audit Log │ │ │ └──────┬──────┘ └──────┬───────┘ └───────┬───────┘ │ │ │ │ │ │ │ ┌──────┴────────────────┴───────────────────┴──────┐ │ │ │ Async HTTP Client (httpx) │ │ │ │ Rate Limiter · Response Cache │ │ │ └──────────────────────┬───────────────────────────┘ │ └─────────────────────────┼───────────────────────────────────────────┘ │ HTTPS (outbound only) ┌───────────────┼───────────────────────────┐ ▼ ▼ ▼ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │ VULNERABILITY│ │ NETWORK │ │ THREAT │ │ INTELLIGENCE │ │ INTELLIGENCE │ │ INTELLIGENCE │ ├──────────────┤ ├──────────────┤ ├──────────────┤ │ NVD API 2.0 │ │ AbuseIPDB │ │ VirusTotal │ │ EPSS / FIRST │ │ GreyNoise v3 │ │ MalwareBazaar│ │ CISA KEV │ │ Shodan │ │ ThreatFox │ │ OSV.dev │ │ CIRCL PDNS │ │ Ransomwhere │ │ GitHub GHSA │ │ │ │ AlienVault │ │ MITRE ATT&CK │ │ │ │ URLScan.io │ └──────────────┘ └──────────────┘ └──────────────┘

root@kitploit:~
すべてのトラフィックは**送信HTTPSのみ**です — インバウンドポートは一切開放されません。APIキーは環境変数から読み込まれ、ログに記録されることはありません。プライベート/内部IPアドレスはすべての照会ツールからブロックされます。

---

## 🔍 ツールカタログ(28ツール)

### ⭐ オーケストレーション (v0.2.0) — ここから始める

| ツール | 説明 | APIキー要件 | 使用例 |
|------|-------------|-----------------|---------------|
| `triage_cve` | ワンコールのトリアージ。NVD + EPSS + CISA KEV(`depth != "quick"` の場合は公開PoCも)を並行してファンアウトし、KEVハードオーバーライド付きの複合リスクスコアを計算。NIST NVDがスロットリングされた場合はVulnCheck NVD++にフォールバックし、`depth="deep"` ではSSVC v2のゲート判定を出力します。 | 無料 / キー不要(キー推奨) | `triage_cve("CVE-2021-44228", depth="deep")` |

> **MCPプリミティブ経由でも公開** — リソース: `kev://catalog`, `epss://scores/{cve_id}`, `manifest://tool-hash`(登録済みツールサーフェスに対するSHA-256。改ざん検出用)。プロンプト: `patch_decision`, `compare_and_prioritize`, `dependency_triage`。

### コア脆弱性インテリジェンス(8ツール)

| ツール | 説明 | APIキー要件 | 使用例 |
|------|-------------|-----------------|---------------|
| `lookup_cve` | NVDからCVSSスコア、CWE、影響を受ける製品、参照情報、タイムラインを含む詳細なCVEレコードを取得 | 無料 / キー不要(キー推奨) | `lookup_cve("CVE-2024-3400")` |
| `search_cves` | キーワード、製品名、深刻度、日付範囲でNVDのCVEを検索 | 無料 / キー不要(キー推奨) | `search_cves(keyword="Apache Log4j", severity="CRITICAL")` |
| `get_epss_score` | 1つ以上のCVEについてEPSS悪用確率(0–1)とパーセンタイルを取得 | 無料 / キー不要 | `get_epss_score("CVE-2024-3400")` |
| `check_kev_status` | CVEがCISAの既知の悪用済み脆弱性(KEV)カタログに掲載されているか確認 | 無料 / キー不要 | `check_kev_status("CVE-2021-44228")` |
| `get_cvss_details` | CVSS v3.1ベクター文字列を解析し、メトリックごとの内訳付きで説明 | 無料 / キー不要 | `get_cvss_details("CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H")` |
| `get_cwe_info` | 組み込みデータベースからCWE IDでCommon Weakness Enumerationの詳細を検索 | 無料 / キー不要 | `get_cwe_info("CWE-79")` |
| `get_cve_references` | CVEのすべての参照リンクを抽出して分類(パッチ、アドバイザリ、エクスプロイト) | 無料 / キー不要(キー推奨) | `get_cve_references("CVE-2023-44487")` |
| `bulk_cve_lookup` | 並列エンリッチメントにより、1回の呼び出しで最大20件のCVE詳細をバッチ取得 | 無料 / キー不要(キー推奨) | `bulk_cve_lookup(["CVE-2024-3400", "CVE-2023-44487"])` |

### エクスプロイト&攻撃インテリジェンス(4ツール)

| ツール | 説明 | APIキー要件 | 使用例 |
|------|-------------|-----------------|---------------|
| `search_exploits` | GitHubで公開されている概念実証(PoC)エクスプロイトとエクスプロイトコードリポジトリを検索 | `GITHUB_TOKEN`(任意) | `search_exploits("CVE-2024-3400")` |
| `get_mitre_techniques` | CVEまたはCWEを関連するMITRE ATT&CKの手法、戦術、緩和策にマッピング | 無料 / キー不要 | `get_mitre_techniques("CVE-2021-44228")` |
| `check_poc_availability` | 複数のソースにまたがって、CVEの既知の概念実証コードが存在するか判定 | `GITHUB_TOKEN`(任意) | `check_poc_availability("CVE-2024-3400")` |
| `get_attack_patterns` | CWEまたはCVEに関連付けられたCAPEC攻撃パターンの詳細を取得 | 無料 / キー不要 | `get_attack_patterns("CWE-89")` |

### フェーズ3: 高度なリスク&レポート(4ツール)

| ツール | 説明 | APIキー要件 | 使用例 |
|------|-------------|-----------------|---------------|
| `calculate_risk_score` | CVSS、EPSS、KEVステータス、PoCの有無を使用して0–100の複合リスクスコアを計算 | 無料 / キー不要(キー推奨) | `calculate_risk_score("CVE-2024-3400")` |
| `generate_risk_report` | 1つ以上のCVEについて、推奨事項付きの整形された経営層向けセキュリティレポートを生成 | 無料 / キー不要(キー推奨) | `generate_risk_report(["CVE-2024-3400", "CVE-2023-44487"])` |
| `prioritize_cves` | トリアージの優先順位付けのために、複合リスクスコアでCVEリストをランク付け | 無料 / キー不要(キー推奨) | `prioritize_cves(["CVE-2024-3400", "CVE-2023-4966", "CVE-2023-44487"])` |
| `get_trending_cves` | 高いEPSSスコアと最近のKEV追加に基づいて注目のCVEを取得 | 無料 / キー不要 | `get_trending_cves(days=7, min_epss=0.5)` |

### ネットワークインテリジェンス(4ツール)

| ツール | 説明 | APIキー要件 | 使用例 |
|------|-------------|-----------------|---------------|
| `lookup_ip_reputation` | AbuseIPDB経由でIPアドレスの不正利用履歴と信頼度スコアを確認 | `ABUSEIPDB_API_KEY` | `lookup_ip_reputation("185.220.101.34")` |
| `check_ip_noise` | GreyNoiseにIPのスキャン/攻撃アクティビティ、分類、関連CVEを問い合わせ | `GREYNOISE_API_KEY` | `check_ip_noise("185.220.101.34")` |
| `shodan_host_lookup` | Shodan経由でIPのオープンポート、サービス、バナー、脆弱性を取得 | `SHODAN_API_KEY` | `shodan_host_lookup("8.8.8.8")` |
| `passive_dns_lookup` | CIRCL Passive DNSからドメインの履歴DNS解決データを取得 | `CIRCL_PDNS_USER` + `CIRCL_PDNS_PASSWORD` | `passive_dns_lookup("example.com")` |

### 脅威インテリジェンス(4ツール)

| ツール | 説明 | APIキー要件 | 使用例 |
|------|-------------|-----------------|---------------|
| `virustotal_lookup` | ファイルハッシュ、URL、ドメイン、IPを70以上のアンチウイルスエンジンで分析 | `VIRUSTOTAL_API_KEY` | `virustotal_lookup(hash="44d88612fea8a8f36de82e1278abb02f")` |
| `search_malware` | ハッシュ、タグ、シグネチャでMalwareBazaarのマルウェアサンプルを検索 | `ABUSECH_AUTH_KEY`(任意) | `search_malware(tag="Emotet")` |
| `search_iocs` | マルウェアファミリーに関連する侵害インジケーター(IOC)をThreatFoxに問い合わせ | `ABUSECH_AUTH_KEY`(任意) | `search_iocs(malware="CobaltStrike")` |
| `check_ransomware` | Ransomwhereからランサムウェアの支払いアドレスと取引データを検索 | 無料 / キー不要 | `check_ransomware(address="bc1q...")` |

### DevSecOps(3ツール)

| ツール | 説明 | APIキー要件 | 使用例 |
|------|-------------|-----------------|---------------|
| `scan_dependencies` | OSV.devに対してパッケージ名とバージョンをスキャンし、既知の脆弱性を検出 | 無料 / キー不要 | `scan_dependencies(ecosystem="PyPI", packages={"requests": "2.28.0"})` |
| `scan_github_advisories` | エコシステム、パッケージ、深刻度でGitHub Security Advisoriesを検索 | `GITHUB_TOKEN`(任意) | `scan_github_advisories(ecosystem="pip", package="django")` |
| `urlscan_check` | URLをスキャン用に提出するか、URLScan.ioから過去のスキャン結果を取得 | `URLSCAN_API_KEY` | `urlscan_check("https://suspicious-site.com")` |

---

## 📦 インストール

### 前提条件

- **Python 3.10+**(3.11または3.12推奨)
- **pip**または**uv**パッケージマネージャー
- リポジトリをクローンするための**Git**
- 環境変数にアクセスできるターミナル

### ステップバイステップのセットアップ```bash
# 1. Clone the repository
git clone https://github.com/mukul975/cve-mcp-server.git
cd cve-mcp-server

# 2. Create and activate a virtual environment
python -m venv venv

# macOS / Linux:
source venv/bin/activate

# Windows (PowerShell):
.\venv\Scripts\Activate.ps1

# Windows (CMD):
venv\Scripts\activate.bat

# 3. Install dependencies
pip install -e .

# 4. Copy and configure environment variables
cp .env.example .env
# Edit .env with your API keys (see API Keys Setup section below)

# 5. Verify the server starts
python -m cve_mcp.server

uv の使用 (より高速な代替手段)```bash

git clone https://github.com/mukul975/cve-mcp-server.git cd cve-mcp-server uv venv source .venv/bin/activate # or .venv\Scripts\activate on Windows uv pip install -e . cp .env.example .env

root@kitploit:~
### テスト依存関係を含める```bash
pip install -e ".[test]"

🔑 API キーの設定

API キーは優先度順に整理されています。まず Tier 1 のキーを取得して、無料ツールで最大のカバレッジを確保し、必要に応じて Tier 2 と Tier 3 を段階的に追加してください。

Tier 1: 高優先度(無料、即時アクセス、最大カバレッジ)

Tier 2: 推奨(無料アカウント、大きな価値)

Tier 3: 任意(拡張インテリジェンス)

⚡ ゼロキースタート: EPSS、CISA KEV、OSV.dev、MITRE ATT&CK、CWE ルックアップ、CVSS パース、Ransomwhere、NVD(低レート)の 8 つのツールは API キーなしで動作します。サーバーをすぐに使い始め、キーを段階的に追加できます。


⚙️ 設定

環境変数(.env.example)```env

NVD API key — free at https://nvd.nist.gov/developers/request-an-api-key

Without key: 5 req/30s | With key: 50 req/30s

NVD_API_KEY=

GitHub token — increases rate limit from 60/hr to 5000/hr (no scopes needed)

GITHUB_TOKEN=

Threat intelligence keys (all optional — tools degrade gracefully without them)

ABUSEIPDB_KEY= # https://www.abuseipdb.com/account/api VIRUSTOTAL_KEY= # https://www.virustotal.com/gui/join-us URLSCAN_KEY= # https://urlscan.io/user/signup SHODAN_KEY= # https://account.shodan.io/register

GreyNoise — uses /v3/ip/{ip} endpoint (NOT the deprecated /v3/community)

GREYNOISE_API_KEY= # https://viz.greynoise.io/signup

CIRCL Passive DNS — requires partner registration

CIRCL_PDNS_USER= CIRCL_PDNS_PASS=

Optional overrides

CACHE_DB_PATH= # defaults to ~/.cve-mcp/cache.db AUDIT_LOG_PATH= # defaults to ~/.cve-mcp/audit.log REQUEST_TIMEOUT=30 # HTTP timeout in seconds MAX_RETRIES=3 # retries on transient errors

root@kitploit:~
### Claude Desktop の設定

**macOS:** `~/Library/Application Support/Claude/claude_desktop_config.json`
**Windows:** `%APPDATA%\Claude\claude_desktop_config.json````json
{
  "mcpServers": {
    "cve-mcp": {
      "command": "python",
      "args": ["-m", "cve_mcp.server"],
      "cwd": "/absolute/path/to/cve-mcp-server",
      "env": {
        "NVD_API_KEY": "your-key-here",
        "GITHUB_TOKEN": "ghp_xxxxxxxxxxxxxxxxxxxx",
        "ABUSEIPDB_KEY": "your-abuseipdb-key",
        "GREYNOISE_API_KEY": "your-greynoise-key",
        "SHODAN_KEY": "your-shodan-key"
      }
    }
  }
}

⚠️ 重要: 常に絶対パスを使用してください。設定を変更した後は、Claude Desktop を完全に終了してください(Cmd+Q / Alt+F4)。再読み込みでは不十分です。

Claude Code の設定```bash

Basic setup

claude mcp add cve-mcp -- python -m cve_mcp.server

With environment variables (repeat -e for each key)

claude mcp add cve-mcp -e NVD_API_KEY=your_key -e VULNCHECK_TOKEN=your_token -- python -m cve_mcp.server

Or just run from the project directory — python-dotenv auto-loads .env on startup

Verify it's connected

claude mcp list

root@kitploit:~
---

## 🚀 クイックスタート

### ステップ 1: インストール(2分)```bash
git clone https://github.com/mukul975/cve-mcp-server.git
cd cve-mcp-server
python -m venv venv && source venv/bin/activate
pip install -e .

ステップ 2: まず無料ツールでテストする

.env ファイルは不要です。サーバーを Claude Desktop または Claude Code に追加して、試してみてください:

「CVE-2021-44228 とは何ですか? 活発に悪用されていますか?」

Claude は lookup_cve(NVD)、get_epss_score(EPSS)、check_kev(CISA KEV)を使用します。すべて無料で、キーは不要です。

「これらの Python パッケージに脆弱性がないかスキャンしてください:requests 2.28.0、flask 2.2.0、django 3.2.0」

ステップ 3: 最初のキーを追加してパフォーマンスを 10 倍に```bash

echo 'NVD_API_KEY=your-key-here' > .env

root@kitploit:~
[nvd.nist.gov](https://nvd.nist.gov/developers/request-an-api-key) で無料のNVDキーをリクエスト — メールで即座に発行され、レート制限が**30秒あたり5リクエストから50リクエスト**に引き上げられます。

### ステップ 4: フルパワーモード

Tier 1とTier 2のキーを追加したら:

> **「CVE-2024-3400のリスクスコアを計算して、すぐにパッチを適用すべきか教えてください。」**

---

## 💬 使用例

### シナリオ 1: 「Log4Shellにすぐパッチを適用すべきでしょうか?」

> **あなた:** CVE-2021-44228(Log4Shell)に即時パッチが必要かどうか分析してください。リスクスコアとあなたの推奨事項を教えてください。

Claudeは舞台裏で複数のツールをオーケストレーションします:```
→ lookup_cve("CVE-2021-44228")
  CVSS 3.1: 10.0 (CRITICAL) | AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H

→ get_epss_score("CVE-2021-44228")
  EPSS: 0.97531 (97.5%) | Percentile: 99.99%

→ check_kev("CVE-2021-44228")
  ✅ IN CISA KEV — Added 2021-12-10 | Known ransomware use: Yes

→ check_poc_exists("CVE-2021-44228")
  ✅ WEAPONIZED — 300+ public PoC repositories found

→ calculate_risk_score("CVE-2021-44228")
  Risk Score: 97/100 (CRITICAL) | Urgency: PATCH IMMEDIATELY

Claudeの応答: 「CVE-2021-44228 のスコアは 97/100(重大)。Apache Log4j におけるリモートコード実行、CVSS 10.0、EPSS 確率 97.5%、ランサムウェアキャンペーンを含む CISA KEV での活発な悪用が確認されており、公開エクスプロイトは 300 件以上。直ちにパッチを適用してください。

シナリオ 2: 「Python の requirements.txt をスキャン」

あなた: 次の依存関係をスキャンしてください: requests==2.28.0, flask==2.2.0, django==3.2.0, pillow==9.0.0, cryptography==37.0.0``` → scan_dependencies(ecosystem="PyPI", packages={...}) Found 12 vulnerabilities across 4 packages

root@kitploit:~
**Claudeの応答:** "お使いのパッケージ全体で**12件の脆弱性**を検出しました。**至急の対応:** Django 3.2.0(SQLインジェクションを含む重大なCVE 3件)、Pillow 9.0.0(ヒープオーバーフロー)、cryptography 37.0.0(OpenSSLチェーン)。アップグレード先: django>=4.2.16, pillow>=10.3.0, cryptography>=42.0.0."

### シナリオ3: "不審なIPの調査"

> **あなた:** 不審なIP 185.220.101.34を調査 — これは悪意のあるものですか?```
→ check_ip_reputation("185.220.101.34")
  AbuseIPDB Confidence: 100% | Reports: 4,832 | ISP: Tor Exit Node

→ check_ip_noise("185.220.101.34")
  GreyNoise: MALICIOUS | Tags: [Tor Exit Node, Web Scanner]
  CVEs targeted: CVE-2024-3400, CVE-2023-46805

→ shodan_host_lookup("185.220.101.34")
  Open ports: 22, 80, 443, 9001 | OS: Linux

Claudeの回答: 「185.220.101.34 は既知のTor出口ノードです AbuseIPDBで4,832件の悪用報告に基づき、100%悪意があると評価されています。 GreyNoiseはCVE-2024-3400 (Palo Alto) および CVE-2023-46805 (Ivanti) に対するアクティブスキャンを確認しています。 推奨事項: ファイアウォールでブロックしてください。」

シナリオ4: 「エグゼクティブ向けセキュリティレポートの生成」

あなた: エグゼクティブ向けセキュリティレポートを生成してください: CVE-2024-3400, CVE-2023-44487, CVE-2023-4966, CVE-2024-21887``` → compare_cves([...]) Compiles: NVD, EPSS, KEV, PoC availability, MITRE ATT&CK mapping Generates: Ranked risk table, remediation timeline, executive summary

root@kitploit:~
## 📊 リスクスコアの説明

`calculate_risk_score` ツールは、4つの独立したシグナルを重み付けして **0から100までの複合リスクスコア** を生成します。

### 計算式```
Risk Score = (CVSS × 0.20) + (EPSS × 0.35) + (KEV × 0.30) + (PoC × 0.15)

ブースト倍率

  • KEV + アクティブな PoC → ×1.15
  • CVSS ≥ 9.0 + EPSS > 0.7 → ×1.10
  • 公開から7日未満 → ×1.05

スコアは100で上限が設定されます。

リスクスコアリング — v1 (2026-06)

数値スコアラーは scoring_version 1.0 です(triage_cve、calculate_risk_score、health_check で表示されます)。上記の線形加重合計は 数値 スコアの v1 デフォルトであり、1つのハードオーバーライドがあります:

  • CISA KEV ハードオーバーライド: KEV にリストされた CVE は野外で悪用されることが確認されており、最も強い悪用シグナルです。そのラベルは CRITICAL より下になることはなく、スコアは CVSS/EPSS に関係なく ≥ 76 にクランプされます。(低い CVSS と低い EPSS の KEV CVE でも CRITICAL / 76 が返ります。)
  • CVSS は(Allodi & Massacci 2014 に従い)深刻度 シグナルとして扱われ、悪用可能性シグナルとしては扱われません。EPSS と KEV が悪用シグナルを担います。
  • 実験的な SSVC v2 ゲート判定(CISA Deployer モデル → Act / Attend / Track* / Track)は、0〜100 の数値に代わる定性的で説明可能な選択肢として、triage_cve(depth="deep") 経由で利用できます。

これらの重みの根拠

EPSS が最も高い重み(35%)を得ているのは、実際の悪用を予測する唯一の最良の指標だからです。CVSS 単独よりもはるかに優れています。CVSS 10.0 でも EPSS 0.01 であれば、理論上は危険ですが実際には可能性が低いです。KEV の30% はグラウンドトゥルース(正解データ)です。予測ではなく、悪用の確認済み情報です。CVSS の20% は、EPSS データが不十分な新しい CVE の深刻度コンテキストを捉えます。PoC の15% は、公開されたエクスプロイトが現実世界の攻撃を劇的に加速させることを反映しています。


🆕 v0.2.0 の新機能

  • triage_cve オーケストレーター — 1回のツール呼び出しで、NVD + EPSS + CISA KEV(+ depth != "quick" の場合の公開 PoC 検出)を並行してファンアウトし、複合リスクスコアを計算して、クリーンなレポートを返します。depth は quick / standard(デフォルト)/ deep のいずれかです。deep はさらに SSVC v2 ゲート判定を出力します。
  • 新しいアップストリームソース — VulnCheck NVD++(NIST NVD が到達不能またはスロットルされた場合に triage_cve 内で自動的に使用される透過的な NVD フォールバック)、CIRCL hashlookup、HIBP Pwned Passwords range API です。
  • KEV ハードオーバーライドスコアリング + scoring_version — KEV リスト掲載の CVE は常に CRITICAL(スコア ≥ 76)です。スコアリングバージョンは triage_cve と health_check で報告されます。
  • HTTP トランスポート — MCP_TRANSPORT=http を設定すると、stdio の代わりに HOST:PORT(デフォルト 、ステートレス)で streamable-HTTP を提供します。 が同梱されています。

🌐 データソース


🧪 テストの実行```bash

Run the full test suite

pytest tests/ -v

Run specific test files

pytest tests/test_validators.py tests/test_risk_scorer.py -v

Run with coverage

pytest tests/ -v --cov=src/cve_mcp --cov-report=term-missing

root@kitploit:~
### MCP Inspector でテストする```bash
npx @modelcontextprotocol/inspector python -m cve_mcp.server

http://localhost:6274 で開きます — 各ツールを対話的にテストし、入力スキーマを表示し、レスポンス形式を確認できます。

テストの対象

  • ユニットテスト: リスクスコア計算、CVSSベクター解析、入力検証
  • 統合テスト: ツール登録、パラメータ検証、キー欠落時のエラー処理
  • キャッシュテスト: SQLiteキャッシュ書き込み、TTL期限切れ、キャッシュヒット/ミス
  • セキュリティテスト: プライベートIPブロック、XML爆弾対策(defusedxml)、入力サニタイズ

🏛️ アーキテクチャ詳細

ファイル構造```

src/cve_mcp/ ├── server.py # FastMCP server — all 27 @mcp.tool() definitions ├── config.py # Environment config and API base URLs ├── models.py # Pydantic models (CVERecord, KEVEntry, EPSSScore, ...) ├── audit.py # Rotating audit log (50MB, 5 backups) ├── api/ │ ├── nvd_client.py # NVD REST API v2.0 │ ├── osv_client.py # OSV.dev package vulnerability API │ ├── epss_client.py # FIRST EPSS API │ ├── kev_client.py # CISA KEV catalog │ ├── ip_intel.py # AbuseIPDB + GreyNoise │ ├── domain_intel.py # crt.sh + CIRCL passive DNS │ ├── shodan_client.py # Shodan host intelligence │ ├── hash_intel.py # MalwareBazaar + VirusTotal │ ├── url_safety.py # URLScan.io │ ├── malware_intel.py # ThreatFox IOC lookup │ ├── ransomware_intel.py# Ransomwhere Bitcoin address lookup │ ├── exploit_intel.py # GitHub PoC/exploit search │ ├── vendor_advisory.py # MSRC + Red Hat + Ubuntu advisories │ ├── attack_mapping.py # MITRE ATT&CK STIX mapping │ ├── cve_timeline.py # CVE event timeline builder │ ├── dependency_scan.py # OSV-based dependency scanning │ ├── poc_checker.py # GitHub + Exploit-DB + Nuclei PoC search │ ├── report_generator.py# Vuln report + CVE comparison matrix │ └── rate_limiter.py # Token bucket rate limiter for NVD ├── cache/ │ └── sqlite_cache.py # Async SQLite cache with per-key TTL └── utils/ ├── validators.py # CVE ID normalization, IP/hash validation └── risk_scorer.py # Composite risk score computation

root@kitploit:~
### キャッシュ戦略

| リソース | TTL |
|----------|-----|
| CVE レコード (NVD) | 1 時間 |
| EPSS スコア | 6 時間 |
| KEV カタログ | 1 時間 |
| IP / ドメインインテル | 1 時間 |
| Exploit-DB CSV | 24 時間 |
| ATT&CK STIX データ | 24 時間 |
| ランサムウェアインテル | 24 時間 |

### 監査ログ

すべてのツール呼び出しが `~/.cve-mcp/audit.log` に記録されます。```json
{
  "timestamp": "2026-04-14T10:23:45.123Z",
  "tool": "lookup_cve",
  "parameters": {"cve_id": "CVE-2024-3400"},
  "duration_ms": 342,
  "cache_hit": false,
  "status": "ok"
}

API キーとレスポンスペイロードは 監査ログに書き込まれることはありません。


🔐 セキュリティとプライバシー

マシンから送信されるデータ

  • 送信 HTTPS のみ — 受信ポートは開かれず、テレメトリもありません
  • CVE ID、IP アドレス、ハッシュ、ドメイン、パッケージ名は、検索のためにそれぞれの API に送信されます
  • API レスポンスは SQLite にローカルにキャッシュされます — キャッシュされたデータはマシンに残ります

プライベート IP のブロック

すべてのネットワークインテリジェンスツールは、外部 API 呼び出しの前にプライベートおよび予約済み IP レンジをブロックします:

  • 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16 (RFC 1918)
  • 127.0.0.0/8 (ループバック), 169.254.0.0/16 (リンクローカル)
  • ::1, fc00::/7 (IPv6 プライベート)

API キーの保護

  • キーは環境変数のみから読み込まれます — ハードコードされることはありません
  • .env は gitignore されています
  • キーがログに記録されたり、キャッシュされたり、監査エントリに含まれることはありません

XML の安全性

すべての XML 解析に defusedxml が使用され、XML 爆弾攻撃(billion laughs、XXE インジェクション)を防ぎます。


🔧 トラブルシューティング

サーバーが起動しない```bash

Ensure virtual environment is activated and package is installed

pip install -e . python --version # must be 3.10+

root@kitploit:~
**Claude Desktop にハンマーアイコン (🔨) が表示されない**
- 設定の JSON 構文エラー(末尾のカンマ)を確認する
- **絶対パス**を使用する — 相対パスは静かに失敗する
- Claude Desktop を完全に終了(Cmd+Q / Alt+F4)して再起動する

### NVD のレート制限```bash
# Add your free NVD API key to .env
NVD_API_KEY=your-key-here
# https://nvd.nist.gov/developers/request-an-api-key

サーバーは過剰なリクエストを自動的にキューに入れますが、キーを使用すると10倍のスループットが得られます。

GreyNoise 401 Unauthorized```bash

Verify your key works:

curl -H "key: YOUR_KEY" https://api.greynoise.io/v3/ip/8.8.8.8

The server uses /v3/ip/{ip} — NOT the deprecated /v3/community endpoint

root@kitploit:~
### Windowsのエンコーディング問題```powershell
$env:PYTHONUTF8 = "1"
$env:PYTHONIOENCODING = "utf-8"

🗺️ ロードマップと既知の制限事項

サーバーが行わないこと

  • アクティブスキャンなし — インテリジェンス/ルックアップのみで、お使いのインフラストラクチャをプローブしません
  • 書き込み操作なし — 外部APIからの読み取りのみ(URLScanへの提出を除く)
  • CVSS v4.0スコアリングなし — 組み込みの計算機はv3.1のみ対応しています。NVD提供のv4.0スコアは表示されますが再計算はされません

既知のAPI制限事項

  • NVDはクエリごとに最大2,000件の結果を返します
  • 発表されたばかりのCVE(24時間未満)のEPSSスコアはまだ存在しない場合があります
  • CISA KEVは米国の営業日のみ更新されます
  • GreyNoiseのコミュニティティア: 週50クエリ
  • VirusTotalの無料ティア: 毎分4リクエスト
  • CIRCL PDNSは手動登録と承認が必要です
  • Ransomwhereは新しいアドレスに90日間のエンバーゴを設定しています

計画中の改善

  • CVSS v4.0ローカル計算機
  • CVEウォッチリスト上のKEV追加とEPSSスコア変更に対するWebhook/アラート
  • SIEM統合のためのSTIX 2.1エクスポート
  • ゼロインストールで展開できるDockerコンテナ
  • Streamable HTTPトランスポート(MCP SSE)
  • 追加ソース: Censys、SecurityTrails、VulnCheck

🤝 コントリビューション

コントリビューションを歓迎します。

新しいツールの追加

  1. server.py に @mcp.tool() デコレータを使用してツール関数を追加します

  2. utils/validators.py に入力検証を追加します

  3. api/ にAPIクライアントを実装します

  4. tests/ にテストを追加します

  5. このREADMEを更新します```python @mcp.tool() async def my_new_tool(param: str, ctx: Context = None) -> str: """ One-line description for Claude to know when to use this tool.

    Args: param: Description of the parameter """ app = _get_app(ctx)

    validate → cache check → API call → cache write → audit → return

root@kitploit:~
### テスト要件

- すべての新しいツールには、モックされたレスポンスを使用したオフラインテストが少なくとも1つ必要です
- リスクスコアの変更には、計算式の検証テストケースを含める必要があります
- ネットワークツールには、プライベートIPアドレスのブロックを検証するテストを含める必要があります
- すべてのテストが成功すること: `pytest tests/ -v`

---

## 📄 ライセンス

MITライセンス — 詳細は [LICENSE](https://github.com/mukul975/cve-mcp-server/blob/HEAD/LICENSE) を参照してください。```
Copyright (c) 2025-2026 Mahipal Jangra (mukul975)

🔐 を使用して Mahipal Jangra が構築 · ベルリン、ドイツ
セキュリティインテリジェンスを会話に変える。

ツールをダウンロード
ENV 変数有効になる機能取得方法無料枠の制限必須?
NVD_API_KEYNVD ルックアップを 10 倍高速化(50 req/30s 対 5)nvd.nist.gov でリクエスト30秒あたり50リクエスト任意(強く推奨)
GITHUB_TOKENGitHub Advisory の検索 + エクスプロイト PoC の検索github.com/settings/tokens で PAT を作成1時間あたり5,000リクエスト任意(未設定時は 60/時)
ENV 変数有効になる機能取得方法無料枠の制限必須?
ABUSEIPDB_KEYIP レピュテーションのルックアップabuseipdb.com で登録1日あたり1,000回のチェックIP ツールには必須
VIRUSTOTAL_KEYファイル/URL/ドメイン/IP のマルウェアスキャンvirustotal.com でサインアップ1日あたり500件のルックアップ、毎分4件VT ツールには必須
GREYNOISE_API_KEYIP ノイズ/スキャン活動のインテリジェンスviz.greynoise.io でサインアップ週50クエリ(コミュニティ)GreyNoise ツールには必須
SHODAN_KEYホスト/ポート/サービスのリコネサンスaccount.shodan.io で登録基本的なホストルックアップ(無料枠)Shodan ツールには必須
ENV 変数有効になる機能取得方法無料枠の制限必須?
URLSCAN_KEYURL スキャンとウェブサイト分析urlscan.io でサインアップ1日あたり5,000件のパブリックスキャン任意
CIRCL_PDNS_USERCIRCL Passive DNS ルックアップcircl.lu でアクセスをリクエストパートナーアクセスのみ任意
CIRCL_PDNS_PASSCIRCL Passive DNS 認証CIRCL 登録時に提供パートナーアクセスのみ任意
コンポーネント重み内容
CVSS v3.1 Base Score20%理論上の最悪ケースの深刻度
EPSS Probability35%今後30日以内に悪用される統計的な可能性
CISA KEV Status30%野外で活発に悪用されているとの確認済み情報
PoC Availability15%公開されたエクスプロイトコードが攻撃者のハードルを下げる
スコアラベル推奨アクション
0 – 25LOW次のメンテナンスウィンドウにスケジュール
26 – 50MEDIUMSLA に従い30日以内にパッチ適用
51 – 75HIGH7日以内にパッチ適用、チームリーダーにエスカレーション
76 – 100CRITICAL**24〜48時間以内にパッチ適用。**緊急変更ウィンドウ。
0.0.0.0:8000
Dockerfile
  • リソースとプロンプト — リソース kev://catalog、epss://scores/{cve_id}、manifest://tool-hash(登録済みツールサーフェス上の SHA-256)。プロンプト patch_decision、compare_and_prioritize、dependency_triage。
  • セキュリティ態勢 — サーバーはサンプリングハンドラーを登録せず、sampling/createMessage を発行しません(Unit 42 の MCP サンプリング攻撃ベクトル)。新しいアウトバウンドパスはスキーム/ホスト許可リストで制限されています。
  • #ソース提供データ認証レート制限(無料)
    1NVDCVE の詳細、CVSS、CWE、CPEapiKey ヘッダー(任意)5 req/30秒(キー使用時 50)
    2EPSS悪用確率とパーセンタイルなし1,000 req/分
    3CISA KEV実際に悪用されている CVE カタログなし静的ファイル
    4OSV.devオープンソースパッケージの脆弱性なし公表されている制限なし
    5GitHub AdvisoriesGHSA アドバイザリ、パッチ、影響を受けるバージョンBearer トークン60/時間(PAT 使用時 5,000)
    6MITRE ATT&CKTTP、戦術、緩和策なし公表されている制限なし
    7AbuseIPDBIP の悪用信頼度、レポート、ISP、地理位置情報Key ヘッダー1,000回/日
    8GreyNoiseIP のノイズ/スキャン活動、分類key ヘッダー50回/週
    9Shodanオープンポート、サービス、バナー、CVEkey クエリパラメータ基本的なルックアップ
    10VirusTotalマルチ AV スキャン結果、評価(レピュテーション)x-apikey ヘッダー500/日、4/分
    11MalwareBazaarマルウェアサンプル、ハッシュ、シグネチャAuth-Key ヘッダーフェアユース
    12ThreatFoxマルウェアファミリーに関連する IOCAuth-Key ヘッダーフェアユース
    13Ransomwhereランサムウェアの BTC アドレスと取引なし公表されている制限なし
    14URLScan.ioURL スキャン、スクリーンショット、DOMAPI-Key ヘッダー5,000回の公開スキャン/日
    15CIRCL PDNS過去のパッシブ DNS レコードHTTP Basic 認証パートナーアクセス
    16GitHub Code Searchエクスプロイト PoC リポジトリの検索Bearer トークンGHSA と共通の制限
    17Exploit-DB公開エクスプロイトデータベース CSVなし公表されている制限なし
    18Nuclei Templatesコミュニティ検出テンプレートなし公表されている制限なし
    19MSRCMicrosoft セキュリティアドバイザリなし公表されている制限なし
    20Red Hat SecurityRed Hat CVE アドバイザリなし公表されている制限なし
    21Ubuntu SecurityUbuntu CVE トラッカーなし公表されている制限なし
    22VulnCheck NVD++NVD スキーマの CVE レコード(透過的な NVD フォールバック)Bearer トークン(無料 Community)VulnCheck Community ティアによる
    23CIRCL hashlookup既知の正常なファイルメタデータ(NSRL など)、hashlookup:trustなしベストエフォート
    24HIBP Pwned Passwordsk-匿名性レンジ API による侵害済みパスワードの件数なし厳密な制限なし