<p align="center">
  <a href="README.md">English</a> |
  <a href="README.zh.md">简体中文</a> |
  <a href="README.zh-TW.md">繁體中文</a> |
  <a href="README.ko.md">한국어</a> |
  <a href="README.de.md">Deutsch</a> |
  <a href="README.es.md">Español</a> |
  <a href="README.fr.md">Français</a> |
  <a href="README.it.md">Italiano</a> |
  <a href="README.da.md">Dansk</a> |
  <a href="README.ja.md">日本語</a> |
  <a href="README.pl.md">Polski</a> |
  <a href="README.ru.md">Русский</a> |
  <a href="README.bs.md">Bosanski</a> |
  <a href="README.ar.md">العربية</a> |
  <a href="README.no.md">Norsk</a> |
  <a href="README.pt-BR.md">Português (Brasil)</a> |
  <strong>ไทย</strong> |
  <a href="README.tr.md">Türkçe</a> |
  <a href="README.uk.md">Українська</a> |
  <a href="README.bn.md">বাংলা</a> |
  <a href="README.el.md">Ελληνικά</a> |
  <a href="README.vi.md">Tiếng Việt</a> |
  <a href="README.hi.md">हिन्दी</a>
</p>

<p align="center">
  <br>
  <picture>
    <source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/badchars/cve-mcp/main/.github/banner-dark.svg">
    <source media="(prefers-color-scheme: light)" srcset="https://raw.githubusercontent.com/badchars/cve-mcp/main/.github/banner-light.svg">
    <img alt="cve-mcp" src="https://raw.githubusercontent.com/badchars/cve-mcp/main/.github/banner-dark.svg" width="700">
  </picture>
</p>

<h3 align="center">CVE และข้อมูลช่องโหว่สำหรับ AI agents</h3>

<p align="center">
  NVD, EPSS, CISA KEV, GitHub Advisory, OSV, Shodan, VulnCheck, Vulners, Nuclei, Metasploit, CIRCL, AttackerKB และ MITRE ATT&amp;CK &mdash; รวมเป็นหนึ่งเดียวใน MCP server<br>
  AI agent ของคุณได้รับ<b>ข้อมูลช่องโหว่ตามความต้องการ</b> ไม่ใช่รายงาน 200 หน้า
</p>

<br>

<p align="center">
  <a href="#ปัญหา">ปัญหา</a> &bull;
  <a href="#แตกต่างอย่างไร">แตกต่างอย่างไร</a> &bull;
  <a href="#เริ่มต้นใช้งาน">เริ่มต้นใช้งาน</a> &bull;
  <a href="#สิ่งที่-ai-ทำได้">สิ่งที่ AI ทำได้</a> &bull;
  <a href="#เครื่องมือทั้งหมด-41-เครื่องมือ">เครื่องมือ</a> &bull;
  <a href="#แหล่งข้อมูล">แหล่งข้อมูล</a> &bull;
  <a href="#สถาปัตยกรรม">สถาปัตยกรรม</a>
</p>

<p align="center">
  <a href="https://www.npmjs.com/package/cve-mcp"><img src="https://img.shields.io/npm/v/cve-mcp.svg" alt="npm"></a>
  <a href="LICENSE"><img src="https://img.shields.io/badge/license-MIT-blue.svg" alt="License"></a>
  <img src="https://img.shields.io/badge/runtime-Bun-f472b6" alt="Bun">
  <img src="https://img.shields.io/badge/protocol-MCP-8b5cf6" alt="MCP">
  <img src="https://img.shields.io/badge/tools-41-f97316" alt="41 Tools">
  <img src="https://img.shields.io/badge/sources-11-ef4444" alt="11 Sources">
</p>

---

## ปัญหา

ข้อมูลช่องโหว่กระจัดกระจายอยู่ในฐานข้อมูลหลายแห่ง NVD มีรายละเอียด CVE EPSS บอกความน่าจะเป็นในการถูกโจมตี CISA KEV ติดตามช่องโหว่ที่ถูกโจมตีจริง GitHub Advisory ครอบคลุมแพ็คเกจโอเพนซอร์ส OSV แมปช่องโหว่กับเวอร์ชันแพ็คเกจเฉพาะ Shodan ติดตามการเปิดเผยบนอินเทอร์เน็ต Nuclei และ Metasploit บอกคุณว่ามี exploit ที่ใช้งานได้หรือไม่ ไม่มีเครื่องมือใดที่รวมทั้งหมดเข้าด้วยกัน และไม่มีเครื่องมือใดทำงานร่วมกับ AI agents

```
ขั้นตอนการทำงานแบบเดิม:
  ค้นหา NVD สำหรับรายละเอียด CVE        →  ใช้งาน Web UI ที่ซับซ้อน
  ตรวจสอบ EPSS สำหรับความเสี่ยงการโจมตี  →  API แยก, รูปแบบแยก
  ตรวจสอบสถานะ CISA KEV                  →  ดาวน์โหลด JSON feed ด้วยตนเอง
  ค้นหา GitHub advisories                →  อินเทอร์เฟซอีกตัวหนึ่ง
  สอบถาม OSV สำหรับผลกระทบต่อแพ็คเกจ    →  API ต่างกัน, schema ต่างกัน
  ตรวจสอบ Shodan สำหรับการเปิดเผย        →  สมัครสมาชิกแยกต่างหาก
  ค้นหา Nuclei/MSF exploits              →  ค้นหา GitHub ด้วยตนเอง
  แมปกับ ATT&CK techniques               →  ค้นหา MITRE แยกต่างหาก
  เชื่อมโยงทุกอย่าง                      →  คัดลอก-วางลงสเปรดชีต
  ──────────────────────────────────
  รวม: 30+ นาทีต่อ CVE หนึ่งรายการ, นานกว่านั้นสำหรับการคัดกรองจำนวนมาก
```

**cve-mcp** ให้เครื่องมือ 41 รายการแก่ AI agent ของคุณผ่าน [Model Context Protocol](https://modelcontextprotocol.io) Agent จะสอบถามแหล่งข้อมูลทั้ง 11 แห่งพร้อมกัน เชื่อมโยงข้อมูล ตรวจจับสัญญาณการสร้างอาวุธ คำนวณคะแนนความเสี่ยง และบอกคุณว่าอะไรสำคัญ

```
ด้วย cve-mcp:
  คุณ: "จัดลำดับความสำคัญ CVE 10 รายการนี้ตามความเสี่ยงการถูกโจมตีจริง"

  Agent: → ดึงคะแนน CVSS จาก NVD
         → ดึงความน่าจะเป็นการถูกโจมตี EPSS สำหรับแต่ละรายการ
         → ตรวจสอบ CISA KEV สำหรับช่องโหว่ที่ถูกโจมตีจริง
         → อ้างอิงข้าม GitHub advisories สำหรับแพตช์
         → "3 รายการวิกฤต: CVE-2024-3400 (EPSS 97%, อยู่ใน KEV),
            CVE-2023-44487 (HTTP/2 rapid reset, EPSS 96%),
            CVE-2021-44228 (Log4Shell, EPSS 97%, อยู่ใน KEV)
            นี่คือแพตช์และเวอร์ชันที่ได้รับผลกระทบ..."
```

---

## แตกต่างอย่างไร

เครื่องมือที่มีอยู่ให้ข้อมูลดิบ cve-mcp ให้ AI agent ของคุณมีความสามารถในการวิเคราะห์ช่องโหว่

<table>
<thead>
<tr>
<th></th>
<th>เครื่องมือแบบเดิม</th>
<th>cve-mcp</th>
</tr>
</thead>
<tbody>
<tr>
<td><b>อินเทอร์เฟซ</b></td>
<td>Web UI / CLI / การเรียก API โดยตรง</td>
<td>MCP &mdash; AI agent เรียกใช้เครื่องมือผ่านการสนทนา</td>
</tr>
<tr>
<td><b>แหล่งข้อมูล</b></td>
<td>ฐานข้อมูลทีละแห่ง</td>
<td>11 แหล่งข้อมูลพร้อมกัน: NVD, EPSS, KEV, GHSA, OSV, Shodan, VulnCheck, Vulners, Nuclei, Metasploit, CIRCL</td>
</tr>
<tr>
<td><b>การให้คะแนนความเสี่ยง</b></td>
<td>CVSS เท่านั้น (ความรุนแรง ไม่ใช่ความเป็นไปได้ในการถูกโจมตี)</td>
<td>CVSS &times; EPSS &times; KEV &times; ตัวคูณ Exploit (Nuclei/MSF) = ความเสี่ยงจริง</td>
</tr>
<tr>
<td><b>การเชื่อมโยง</b></td>
<td>คัดลอก-วางด้วยตนเอง</td>
<td>Agent เสริมข้อมูล: "CVSS 9.8, EPSS 97%, KEV, มี Nuclei template, มี MSF module, แมปกับ T1190"</td>
</tr>
<tr>
<td><b>การคัดกรองจำนวนมาก</b></td>
<td>ทีละ CVE หนึ่งรายการ</td>
<td>Agent จัดลำดับความสำคัญ CVE 50 รายการในการสนทนาเดียว</td>
</tr>
<tr>
<td><b>ผลกระทบต่อแพ็คเกจ</b></td>
<td>ค้นหา OSV/GHSA แยกต่างหาก</td>
<td>Agent ค้นหาแพ็คเกจและเวอร์ชันที่ได้รับผลกระทบโดยอัตโนมัติ</td>
</tr>
<tr>
<td><b>การพึ่งพา</b></td>
<td>เครื่องมือ CLI หนัก, สภาพแวดล้อม Python</td>
<td>runtime dependencies 2 รายการ, ใช้งานด้วย npx</td>
</tr>
</tbody>
</table>

---

## เริ่มต้นใช้งาน

### ตัวเลือกที่ 1: npx (ไม่ต้องติดตั้ง)

```bash
npx cve-mcp
```

### ตัวเลือกที่ 2: Clone

```bash
git clone https://github.com/badchars/cve-mcp.git
cd cve-mcp
bun install
```

### ตัวแปรสภาพแวดล้อม (ไม่บังคับ)

```bash
# เพิ่ม rate limit ของ NVD จาก 5 เป็น 50 คำขอต่อ 30 วินาที
export NVD_API_KEY=your-nvd-api-key

# เปิดใช้งานการค้นหา GitHub Advisory (60 → 5000 คำขอ/ชั่วโมง)
export GITHUB_TOKEN=ghp_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

# VulnCheck extended KEV, CPE, PURL search
export VULNCHECK_API_KEY=your-vulncheck-key

# Vulners vulnerability search ข้าม 200+ แหล่งข้อมูล
export VULNERS_API_KEY=your-vulners-key

# AttackerKB community assessments
export ATTACKERKB_API_KEY=your-attackerkb-key
```

ทั้งหมดไม่บังคับ เซิร์ฟเวอร์ทำงานได้โดยไม่มี เพียงแต่เครื่องมือบางตัวมี rate limit ต่ำกว่าหรือข้อมูลน้อยลง

### เชื่อมต่อกับ AI agent ของคุณ

<details open>
<summary><b>Claude Code</b></summary>

```bash
# ด้วย npx
claude mcp add cve-mcp -- npx cve-mcp

# ด้วย local clone
claude mcp add cve-mcp -- bun run /path/to/cve-mcp/src/index.ts
```

</details>

<details>
<summary><b>Claude Desktop</b></summary>

เพิ่มใน `~/Library/Application Support/Claude/claude_desktop_config.json`:

```json
{
  "mcpServers": {
    "cve-mcp": {
      "command": "npx",
      "args": ["cve-mcp"],
      "env": {
        "NVD_API_KEY": "optional-key",
        "GITHUB_TOKEN": "optional-token",
        "VULNCHECK_API_KEY": "optional-key",
        "VULNERS_API_KEY": "optional-key",
        "ATTACKERKB_API_KEY": "optional-key"
      }
    }
  }
}
```

</details>

<details>
<summary><b>Cursor / Windsurf / MCP clients อื่น ๆ</b></summary>

รูปแบบ JSON config เดียวกัน ชี้คำสั่งไปที่ `npx cve-mcp` หรือเส้นทางการติดตั้งของคุณ

</details>

### เริ่มสอบถาม

```
คุณ: "คุณรู้อะไรเกี่ยวกับ CVE-2024-3400?"
```

แค่นั้น Agent จะจัดการส่วนที่เหลือ

---

## สิ่งที่ AI ทำได้

### การตอบสนองต่อเหตุการณ์

```
คุณ: "เราถูกโจมตีด้วย CVE-2024-3400 ให้ข้อมูลทุกอย่าง"

Agent: → cve_enrich {cveId: "CVE-2024-3400"}
       → NVD: PAN-OS command injection, CVSS 10.0
       → EPSS: ความน่าจะเป็นในการถูกโจมตี 97.2%
       → KEV: เพิ่มเมื่อ 2024-04-12, กำหนดเส้นตาย 2024-05-01
       → Shodan: 4 CPEs, เปิดเผยบนอินเทอร์เน็ต
       → Nuclei: มี detection template (วิกฤต)
       → Metasploit: มี exploit module (excellent rank)
       → "วิกฤต มีอาวุธแล้ว — ทั้ง Nuclei และ MSF modules มีอยู่
          PAN-OS GlobalProtect, เวอร์ชัน < 10.2.9-h1
          แพตช์ทันที กำหนดเส้นตาย CISA: 1 พฤษภาคม"
```

### การจัดลำดับความสำคัญของช่องโหว่

```
คุณ: "จัดลำดับความสำคัญ CVE เหล่านี้จากการสแกนของเรา: CVE-2021-44228, CVE-2024-3400,
      CVE-2023-44487, CVE-2024-21762, CVE-2023-4966"

Agent: → cve_prioritize {cves: [...]}
       → จัดอันดับตาม CVSS × EPSS × ตัวคูณ KEV
       → "#1: CVE-2024-3400 (ความเสี่ยง: 19.44, CVSS 10.0, EPSS 97%, KEV)
          #2: CVE-2021-44228 (ความเสี่ยง: 19.40, CVSS 10.0, EPSS 97%, KEV)
          #3: CVE-2023-4966 (ความเสี่ยง: 19.10, CVSS 9.4, EPSS 97%, KEV)
          ทั้ง 5 รายการอยู่ใน CISA KEV — แพตช์ทั้งหมดทันที"
```

### การตรวจสอบ Dependencies

```
คุณ: "ตรวจสอบว่า lodash 4.17.20 และ django 3.2.0 มีช่องโหว่ที่ทราบหรือไม่"

Agent: → osv_batch {queries: [
          {package: "lodash", version: "4.17.20", ecosystem: "npm"},
          {package: "django", version: "3.2.0", ecosystem: "PyPI"}
       ]}
       → "lodash 4.17.20: 3 ช่องโหว่ (prototype pollution)
          django 3.2.0: 12 ช่องโหว่ (SQL injection, XSS)
          อัพเกรด lodash เป็น 4.17.21+, django เป็น 4.2+"
```

### การติดตามภัยคุกคาม

```
คุณ: "CVE ใดมีแนวโน้มถูกโจมตีมากที่สุดในตอนนี้?"

Agent: → cve_trending {limit: 10, minEpss: 0.9}
       → "10 อันดับแรกตามความน่าจะเป็นในการถูกโจมตี:
          1. CVE-2024-3400 — PAN-OS (EPSS 97.2%, CVSS 10.0, KEV)
          2. CVE-2023-44487 — HTTP/2 Rapid Reset (EPSS 96.5%, CVSS 7.5, KEV)
          ..."
```

### การวิเคราะห์เชิงลึก CVSS (v3.1 & v4.0)

```
คุณ: "อธิบาย CVSS v4.0 vector นี้: CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N"

Agent: → cvss_parse {vector: "CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N"}
       → "CVSS v4.0 — คะแนน: 9.3 (วิกฤต)
          โจมตีผ่านเครือข่าย ความซับซ้อนต่ำ ไม่ต้องมีข้อกำหนดการโจมตี
          ไม่ต้องใช้สิทธิ์ ไม่ต้องมีการโต้ตอบจากผู้ใช้
          ระบบที่มีช่องโหว่: ผลกระทบเต็มที่ต่อ C/I/A
          ระบบถัดไป: ไม่มีผลกระทบ"
```

### ATT&CK Mapping

```
คุณ: "แมป CVE-2024-3400 กับ MITRE ATT&CK techniques"

Agent: → cve_to_attack {cweIds: ["CWE-77"]}
       → "CWE-77 (Command Injection) แมปกับ:
          T1059 — Command and Scripting Interpreter (Execution)
          T1190 — Exploit Public-Facing Application (Initial Access)"
```

---

## เครื่องมือทั้งหมด (41 เครื่องมือ)

<details>
<summary><b>NVD (4)</b></summary>

| เครื่องมือ | คำอธิบาย |
|------|-------------|
| `nvd_search` | ค้นหา CVE ด้วยคำสำคัญ, ความรุนแรง, CWE, ช่วงวันที่ |
| `nvd_get` | ดึงรายละเอียด CVE ทั้งหมด (CVSS, CWE, CPE, ข้อมูลอ้างอิง) |
| `nvd_recent` | CVE ที่เผยแพร่/แก้ไขล่าสุด |
| `cve_by_product` | ค้นหา CVE ตามชื่อผลิตภัณฑ์ (การจับคู่คำสำคัญ CPE) |

</details>

<details>
<summary><b>EPSS (2)</b></summary>

| เครื่องมือ | คำอธิบาย |
|------|-------------|
| `epss_score` | ความน่าจะเป็นในการถูกโจมตี EPSS สำหรับ CVE หนึ่งหรือหลายรายการ |
| `epss_top` | CVE อันดับต้น ๆ ตามความน่าจะเป็นในการถูกโจมตี |

</details>

<details>
<summary><b>KEV (3)</b></summary>

| เครื่องมือ | คำอธิบาย |
|------|-------------|
| `kev_check` | ตรวจสอบว่า CVE อยู่ในแคตตาล็อก CISA Known Exploited Vulnerabilities หรือไม่ |
| `kev_search` | ค้นหา KEV ตามผู้ขาย, ผลิตภัณฑ์ หรือคำสำคัญ |
| `kev_recent` | รายการ KEV ที่เพิ่มเข้ามาล่าสุด |

</details>

<details>
<summary><b>GHSA (2)</b></summary>

| เครื่องมือ | คำอธิบาย |
|------|-------------|
| `ghsa_search` | ค้นหา GitHub security advisories ตามคำสำคัญ, ระบบนิเวศ, ความรุนแรง |
| `ghsa_get` | ดึงรายละเอียด advisory ด้วย GHSA ID หรือ CVE ID |

</details>

<details>
<summary><b>OSV (3)</b></summary>

| เครื่องมือ | คำอธิบาย |
|------|-------------|
| `osv_query` | สอบถามช่องโหว่สำหรับเวอร์ชันแพ็คเกจเฉพาะ |
| `osv_get` | ดึงรายละเอียดช่องโหว่ด้วย OSV/GHSA/CVE ID |
| `osv_batch` | สอบถามหลายแพ็คเกจพร้อมกัน |

</details>

<details>
<summary><b>Exploit (1)</b></summary>

| เครื่องมือ | คำอธิบาย |
|------|-------------|
| `exploit_search` | ค้นหา PoC exploits สาธารณะ (GitHub repositories) |

</details>

<details>
<summary><b>Shodan (3)</b></summary>

| เครื่องมือ | คำอธิบาย |
|------|-------------|
| `shodan_cve` | ค้นหา CVE ผ่าน Shodan CVEDB (EPSS, KEV, CPE รวม, ไม่ต้องยืนยันตัวตน) |
| `shodan_product` | ค้นหา CVE ตามชื่อผลิตภัณฑ์/ผู้ขายผ่าน Shodan |
| `shodan_ip_vulns` | ดึงช่องโหว่ที่ทราบสำหรับ IP address (InternetDB) |

</details>

<details>
<summary><b>VulnCheck (3)</b></summary>

| เครื่องมือ | คำอธิบาย |
|------|-------------|
| `vulncheck_kev` | แคตตาล็อก KEV แบบขยาย (~80% มากกว่า CISA) |
| `vulncheck_cpe` | ค้นหา CVE ตาม CPE string |
| `vulncheck_purl` | ค้นหา CVE ตาม Package URL (purl) |

</details>

<details>
<summary><b>Vulners (2)</b></summary>

| เครื่องมือ | คำอธิบาย |
|------|-------------|
| `vulners_lookup` | รายละเอียด CVE จาก Vulners (200+ แหล่งข้อมูล, exploit refs) |
| `vulners_search` | ค้นหาช่องโหว่แบบ full-text ข้ามฐานข้อมูล Vulners |

</details>

<details>
<summary><b>Nuclei & Metasploit (2)</b></summary>

| เครื่องมือ | คำอธิบาย |
|------|-------------|
| `nuclei_check` | ตรวจสอบว่ามี Nuclei detection template สำหรับ CVE หรือไม่ |
| `msf_check` | ตรวจสอบว่ามี Metasploit exploit module สำหรับ CVE หรือไม่ |

</details>

<details>
<summary><b>CPE (2)</b></summary>

| เครื่องมือ | คำอธิบาย |
|------|-------------|
| `cpe_search` | ค้นหา NVD CPE dictionary ด้วยคำสำคัญ |
| `cpe_match` | ดึง CPE matches สำหรับ CVE เฉพาะ |

</details>

<details>
<summary><b>CIRCL (1)</b></summary>

| เครื่องมือ | คำอธิบาย |
|------|-------------|
| `circl_cve` | CIRCL CVE enrichment (CAPEC, alt references, impact vectors) |

</details>

<details>
<summary><b>AttackerKB (1)</b></summary>

| เครื่องมือ | คำอธิบาย |
|------|-------------|
| `attackerkb_assess` | การประเมินจากชุมชน AttackerKB (attacker value, exploitability) |

</details>

<details>
<summary><b>ATT&CK (1)</b></summary>

| เครื่องมือ | คำอธิบาย |
|------|-------------|
| `cve_to_attack` | แมป CVE CWE IDs กับ MITRE ATT&CK techniques และ tactics |

</details>

<details>
<summary><b>CWE (4)</b></summary>

| เครื่องมือ | คำอธิบาย |
|------|-------------|
| `cwe_lookup` | ค้นหาจุดอ่อน CWE ด้วย ID หรือค้นหาด้วยคำสำคัญ (ฐานข้อมูลคงที่) |
| `cwe_get` | รายละเอียด CWE เต็มรูปแบบจาก MITRE API (1000+ CWEs, มาตรการลดผลกระทบ, ตัวอย่าง) |
| `cwe_hierarchy` | ลำดับชั้น CWE parent/child จาก MITRE API |
| `cwe_top25` | MITRE CWE Top 25 Most Dangerous Software Weaknesses |

</details>

<details>
<summary><b>CVSS (1)</b></summary>

| เครื่องมือ | คำอธิบาย |
|------|-------------|
| `cvss_parse` | แยกวิเคราะห์และอธิบาย CVSS v3.1 หรือ v4.0 vector string พร้อมการคำนวณคะแนน |

</details>

<details>
<summary><b>Meta (6)</b></summary>

| เครื่องมือ | คำอธิบาย |
|------|-------------|
| `cve_enrich` | เสริมข้อมูลเต็มรูปแบบ: NVD + EPSS + KEV + GHSA + OSV + Shodan + Nuclei + MSF พร้อมกัน |
| `cve_prioritize` | จัดอันดับ CVE ตามความเสี่ยง (CVSS &times; EPSS &times; KEV &times; ตัวคูณ Exploit) |
| `cve_trending` | CVE ที่กำลังเป็นที่นิยมตามความน่าจะเป็นในการถูกโจมตี |
| `cve_compare` | เปรียบเทียบ CVE สองรายการแบบเคียงข้างกัน |
| `cve_list_sources` | แสดงรายการแหล่งข้อมูลทั้ง 11 แห่งและความพร้อมใช้งาน |
| `cve_report` | สร้างรายงานช่องโหว่ในรูปแบบ markdown |

</details>

---

## แหล่งข้อมูล

| แหล่งข้อมูล | การยืนยันตัวตน | สิ่งที่ให้ |
|--------|------|-----------------|
| [NVD](https://nvd.nist.gov/) | `NVD_API_KEY` ไม่บังคับ | รายละเอียด CVE, คะแนน CVSS, การแมป CWE, ผลิตภัณฑ์ที่ได้รับผลกระทบ CPE, ข้อมูลอ้างอิง |
| [EPSS](https://www.first.org/epss/) | ไม่มี | คะแนนความน่าจะเป็นในการถูกโจมตี (0-1) และอันดับเปอร์เซ็นไทล์ |
| [CISA KEV](https://www.cisa.gov/known-exploited-vulnerabilities-catalog) | ไม่มี | ช่องโหว่ที่ถูกโจมตีจริงพร้อมกำหนดเวลาแก้ไข |
| [GitHub Advisory](https://github.com/advisories) | `GITHUB_TOKEN` ไม่บังคับ | advisories ด้านความปลอดภัยโอเพนซอร์ส, แพ็คเกจที่ได้รับผลกระทบ, ความรุนแรง |
| [OSV](https://osv.dev/) | ไม่มี | ข้อมูลช่องโหว่ระดับแพ็คเกจครอบคลุม 16+ ระบบนิเวศ |
| [Shodan CVEDB](https://cvedb.shodan.io/) | ไม่มี | ค้นหา CVE พร้อม EPSS/KEV/CPE รวม, สแกนช่องโหว่ IP |
| [VulnCheck](https://vulncheck.com/) | `VULNCHECK_API_KEY` ไม่บังคับ | Extended KEV (~80% มากกว่า CISA), ค้นหาช่องโหว่ CPE/PURL |
| [Vulners](https://vulners.com/) | `VULNERS_API_KEY` ไม่บังคับ | ค้นหาช่องโหว่ข้าม 200+ แหล่งข้อมูล, exploit references |
| [Nuclei Templates](https://github.com/projectdiscovery/nuclei-templates) | ไม่มี | ตรวจสอบการมีอยู่ของ CVE detection template (ความรุนแรง, tags) |
| [Metasploit](https://github.com/rapid7/metasploit-framework) | ไม่มี | ตรวจสอบการมีอยู่ของ exploit module (ประเภท, rank, path) |
| [CIRCL](https://cve.circl.lu/) | ไม่มี | CVE enrichment พร้อม CAPEC mapping, alt references, impact vectors |
| [AttackerKB](https://attackerkb.com/) | `ATTACKERKB_API_KEY` ไม่บังคับ | การประเมินจากชุมชน (attacker value, exploitability ratings) |
| [MITRE ATT&CK](https://attack.mitre.org/) | ไม่มี | แมป CWE-to-ATT&CK technique (tactics, techniques) |
| [MITRE CWE](https://cwe-api.mitre.org/) | ไม่มี | ฐานข้อมูล CWE เต็มรูปแบบ (1000+ จุดอ่อน, ลำดับชั้น, มาตรการลดผลกระทบ) |

### สูตรคะแนนความเสี่ยง

```
คะแนนความเสี่ยง = คะแนนพื้นฐาน CVSS × คะแนน EPSS × ตัวคูณ KEV × ตัวคูณ Exploit

โดยที่:
  คะแนนพื้นฐาน CVSS  = 0-10 (ความรุนแรงจาก NVD)
  คะแนน EPSS          = 0-1 (ความน่าจะเป็นในการถูกโจมตีจาก FIRST)
  ตัวคูณ KEV           = 2 ถ้าอยู่ใน CISA KEV, 1 ถ้าไม่อยู่
  ตัวคูณ Exploit       = 1.5 ถ้ามี Nuclei template หรือ Metasploit module, 1 ถ้าไม่มี
```

สิ่งนี้ให้คะแนนความเสี่ยงที่ใช้งานได้จริง ซึ่งสมดุลระหว่างความรุนแรง (CVSS) กับความน่าจะเป็นในการถูกโจมตีจริง (EPSS) การถูกโจมตีจริงที่ทราบ (KEV) และสัญญาณการสร้างอาวุธ (เครื่องมือ exploit สาธารณะ)

---

## สถาปัตยกรรม

```
src/
├── index.ts                    จุดเริ่มต้น + MCP stdio
├── types/
│   └── index.ts                ToolDef, ToolContext, ToolResult, ประเภท API
├── protocol/
│   ├── tools.ts                นิยามเครื่องมือ 41 รายการ (Zod schemas)
│   └── mcp-server.ts           MCP server + stdio transport
├── nvd/
│   ├── index.ts                NVD API v2 — search, get, recent
│   └── cpe.ts                  การค้นหาผลิตภัณฑ์/CPE
├── epss/
│   └── index.ts                EPSS — score, top
├── kev/
│   └── index.ts                KEV — check, search, recent (แคช)
├── ghsa/
│   └── index.ts                GitHub Advisory — search, get
├── osv/
│   └── index.ts                OSV — query, get, batch
├── exploit/
│   └── index.ts                การค้นหา PoC ผ่าน GitHub repos
├── shodan/
│   └── index.ts                Shodan CVEDB + InternetDB (ไม่ต้องยืนยันตัวตน)
├── vulncheck/
│   └── index.ts                VulnCheck KEV, CPE, PURL
├── vulners/
│   └── index.ts                Vulners search + lookup
├── nuclei/
│   └── index.ts                ตรวจสอบการมีอยู่ของ Nuclei template
├── metasploit/
│   └── index.ts                ตรวจสอบ MSF module (cached metadata)
├── cpe/
│   └── index.ts                NVD CPE dictionary API
├── circl/
│   └── index.ts                CIRCL CVE enrichment
├── attackerkb/
│   └── index.ts                AttackerKB assessments
├── attack/
│   └── index.ts                CWE → MITRE ATT&CK mapping
├── cwe/
│   └── index.ts                CWE API (MITRE) + static fallback
├── cvss/
│   └── index.ts                CVSS v3.1 + v4.0 parser + calculator
├── meta/
│   ├── enrich.ts               การเสริมข้อมูล CVE เต็มรูปแบบ (8 แหล่งข้อมูลพร้อมกัน)
│   ├── prioritize.ts           การจัดอันดับ CVE ตามความเสี่ยง
│   ├── trending.ts             CVE ที่กำลังเป็นที่นิยมตาม EPSS
│   ├── compare.ts              การเปรียบเทียบ CVE แบบเคียงข้างกัน
│   └── sources.ts              การตรวจสอบสุขภาพแหล่งข้อมูล 11 แห่ง
└── utils/
    ├── rate-limiter.ts          ตัวจำกัดอัตราแบบคิว
    └── cache.ts                 แคช TTL
```

**การตัดสินใจด้านการออกแบบ:**

- **ข่าวกรอง ไม่ใช่การตรวจสอบ** &mdash; ไม่เหมือนกับ [cloud-audit-mcp](https://github.com/badchars/cloud-audit-mcp) และ [github-security-mcp](https://github.com/badchars/github-security-mcp) นี่คือเครื่องมือข้อมูล ไม่มี CheckResult ไม่มีการสะสม findings แต่ละคำสอบถามเป็นอิสระและไม่เก็บสถานะ
- **การเสริมข้อมูลแบบขนาน** &mdash; `cve_enrich` เรียก 8 แหล่งข้อมูลผ่าน `Promise.allSettled` หากแหล่งใดแหล่งหนึ่งล่ม แหล่งอื่นยังคงส่งข้อมูลกลับ
- **การตรวจจับการสร้างอาวุธ** &mdash; ตรวจสอบการมีอยู่ของ Nuclei template และ Metasploit module เพื่อระบุ CVE ที่มีเครื่องมือ exploit สาธารณะ
- **ตัวจำกัดอัตราที่ใช้ร่วมกัน** &mdash; โมดูล NVD ทั้งหมดใช้ `RateLimiter` instance เดียวร่วมกัน (6 วินาทีระหว่างคำขอ) เพื่อหลีกเลี่ยงข้อผิดพลาด 429
- **การแคช KEV + MSF** &mdash; แคตตาล็อก KEV (~1200 รายการ) และ MSF module metadata (~15MB) โหลดครั้งเดียวและแคชด้วย TTL 1 ชั่วโมง
- **CWE dual-mode** &mdash; MITRE CWE REST API สำหรับรายละเอียดเต็มรูปแบบ (1000+ CWEs) พร้อม static fallback 40+ รายการเมื่อ API ไม่พร้อมใช้งาน
- **CVSS v3.1 + v4.0** &mdash; ตรวจจับเวอร์ชันอัตโนมัติจาก vector prefix V4.0 ใช้แนวทางการคำนวณ MacroVector
- **ATT&CK mapping** &mdash; ตาราง CWE-to-technique แบบคงที่ (33 CWE entries → ATT&CK techniques) ไม่ต้องเรียก API
- **2 dependencies** &mdash; `@modelcontextprotocol/sdk` และ `zod` ไม่มีอย่างอื่น

---

## ข้อจำกัด

- NVD API โดยไม่มี `NVD_API_KEY` จำกัดอยู่ที่ 5 คำขอต่อ 30 วินาที ตั้ง key สำหรับการใช้งานจริง
- การค้นหา GitHub Advisory โดยไม่มี `GITHUB_TOKEN` จำกัดอยู่ที่ 60 คำขอต่อชั่วโมง
- VulnCheck, Vulners และ AttackerKB ต้องมี API keys สำหรับฟังก์ชันเต็มรูปแบบ
- การค้นหา Exploit ใช้การค้นหา GitHub repository ซึ่งมี rate limit ของตัวเอง
- MSF module metadata (~15MB) โหลดเมื่อใช้ครั้งแรก — การเรียก `msf_check` ครั้งแรกจะช้ากว่า
- การคำนวณ CVSS v4.0 ใช้ MacroVector approximation (ข้อกำหนดที่แน่นอนมีความซับซ้อนมาก)
- ATT&CK mapping ครอบคลุม 33 CWE entries — CWE ที่ไม่ค่อยพบอาจไม่สามารถแมปได้
- macOS / Linux (ไม่ได้ทดสอบบน Windows)

---

## ส่วนหนึ่งของ MCP Security Suite

| โปรเจกต์ | ขอบเขต | เครื่องมือ |
|---|---|---|
| [hackbrowser-mcp](https://github.com/badchars/hackbrowser-mcp) | การทดสอบความปลอดภัยผ่านเบราว์เซอร์ | 39 เครื่องมือ, Firefox, การทดสอบ injection |
| [cloud-audit-mcp](https://github.com/badchars/cloud-audit-mcp) | ความปลอดภัยคลาวด์ (AWS/Azure/GCP) | 38 เครื่องมือ, 60+ การตรวจสอบ |
| [github-security-mcp](https://github.com/badchars/github-security-mcp) | ระดับความปลอดภัย GitHub | 39 เครื่องมือ, 45 การตรวจสอบ |
| **cve-mcp** | ข่าวกรองช่องโหว่ | 41 เครื่องมือ, 11 แหล่งข้อมูล |

---

<p align="center">
<b>สำหรับการทดสอบและประเมินความปลอดภัยที่ได้รับอนุญาตเท่านั้น</b><br>
ตรวจสอบให้แน่ใจเสมอว่าคุณมีการอนุญาตที่เหมาะสมก่อนทดสอบระบบ
</p>

<p align="center">
  <a href="LICENSE">MIT License</a> &bull; สร้างด้วย Bun + TypeScript
</p>
