<p align="center">
  <a href="README.md">English</a> |
  <a href="README.zh.md">简体中文</a> |
  <a href="README.zh-TW.md">繁體中文</a> |
  <strong>한국어</strong> |
  <a href="README.ja.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>
</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">AI 에이전트를 위한 CVE 및 취약점 인텔리전스.</h3>

<p align="center">
  NVD, EPSS, CISA KEV, GitHub Advisory, OSV, Shodan, VulnCheck, Vulners, Nuclei, Metasploit, CIRCL, AttackerKB, MITRE ATT&amp;CK &mdash; 단일 MCP 서버로 통합.<br>
  AI 에이전트가 200페이지 보고서가 아닌 <b>온디맨드 취약점 인텔리전스</b>를 제공합니다.
</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은 실제 동작하는 익스플로잇이 있는지 알려줍니다. 이들을 통합하는 단일 도구는 없으며, AI 에이전트와 연동되는 것도 없습니다.

```
기존 워크플로:
  NVD에서 CVE 세부 정보 검색        →  투박한 Web UI 탐색
  EPSS에서 악용 위험 확인            →  별도의 API, 별도의 형식
  CISA KEV 상태 조회                →  JSON 피드 수동 다운로드
  GitHub 보안 권고 검색              →  또 다른 인터페이스
  OSV에서 패키지 영향 조회           →  다른 API, 다른 스키마
  Shodan에서 노출 확인              →  별도의 구독
  Nuclei/MSF 익스플로잇 검색        →  수동 GitHub 검색
  ATT&CK 기술에 매핑               →  별도의 MITRE 조회
  모든 정보 상관관계 분석            →  스프레드시트에 복사-붙여넣기
  ──────────────────────────────────
  총 소요 시간: CVE당 30분 이상, 대량 분류 시 더 오래 걸림
```

**cve-mcp**는 [Model Context Protocol](https://modelcontextprotocol.io)을 통해 AI 에이전트에 41개의 도구를 제공합니다. 에이전트가 11개의 소스를 병렬로 조회하고, 데이터를 상관 분석하고, 무기화 신호를 탐지하고, 위험 점수를 계산하여 정확히 무엇이 중요한지 알려줍니다.

```
cve-mcp 사용 시:
  사용자: "이 10개 CVE를 실제 악용 위험도로 우선순위 정해줘"

  에이전트: → NVD에서 CVSS 점수 조회
            → 각 CVE의 EPSS 악용 확률 조회
            → CISA KEV에서 활발한 악용 여부 확인
            → GitHub 보안 권고에서 패치 교차 참조
            → "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 에이전트에게 취약점에 대한 추론 능력을 부여합니다.

<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 에이전트가 대화형으로 도구 호출</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>에이전트가 자동 보강: "CVSS 9.8, EPSS 97%, KEV 등재, Nuclei 템플릿 존재, MSF 모듈 사용 가능, T1190에 매핑"</td>
</tr>
<tr>
<td><b>대량 분류</b></td>
<td>한 번에 하나의 CVE</td>
<td>에이전트가 한 번의 대화에서 50개 CVE 우선순위 지정</td>
</tr>
<tr>
<td><b>패키지 영향</b></td>
<td>별도의 OSV/GHSA 조회</td>
<td>에이전트가 자동으로 영향받는 패키지 + 버전 검색</td>
</tr>
<tr>
<td><b>의존성</b></td>
<td>무거운 CLI 도구, Python 환경</td>
<td>런타임 의존성 2개, npx로 실행</td>
</tr>
</tbody>
</table>

---

## 빠른 시작

### 옵션 1: npx (설치 불필요)

```bash
npx cve-mcp
```

### 옵션 2: 클론

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

### 환경 변수 (선택사항)

```bash
# NVD 요청 제한을 30초당 5개에서 50개로 증가
export NVD_API_KEY=your-nvd-api-key

# GitHub Advisory 검색 활성화 (60 → 5000 요청/시간)
export GITHUB_TOKEN=ghp_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

# VulnCheck 확장 KEV, CPE, PURL 검색
export VULNCHECK_API_KEY=your-vulncheck-key

# Vulners 200+ 소스 취약점 검색
export VULNERS_API_KEY=your-vulners-key

# AttackerKB 커뮤니티 평가
export ATTACKERKB_API_KEY=your-attackerkb-key
```

모두 선택사항입니다. 서버는 이것들 없이도 작동하며, 일부 도구의 요청 제한이 낮거나 데이터가 줄어들 뿐입니다.

### AI 에이전트에 연결

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

```bash
# npx 사용
claude mcp add cve-mcp -- npx cve-mcp

# 로컬 클론 사용
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 클라이언트</b></summary>

동일한 JSON 설정 형식입니다. 명령을 `npx cve-mcp` 또는 설치 경로로 지정하세요.

</details>

### 쿼리 시작

```
사용자: "CVE-2024-3400에 대해 뭘 알고 있어?"
```

이게 전부입니다. 에이전트가 나머지를 처리합니다.

---

## AI가 할 수 있는 것

### 인시던트 대응

```
사용자: "CVE-2024-3400에 당했어. 모든 정보를 줘."

에이전트: → cve_enrich {cveId: "CVE-2024-3400"}
          → NVD: PAN-OS 명령 주입, CVSS 10.0
          → EPSS: 97.2% 악용 확률
          → KEV: 2024-04-12 추가, 기한 2024-05-01
          → Shodan: 4개 CPE, 인터넷 노출
          → Nuclei: 탐지 템플릿 존재 (치명적)
          → Metasploit: 익스플로잇 모듈 사용 가능 (excellent 등급)
          → "치명적. 무기화됨 — Nuclei와 MSF 모듈 모두 존재.
             PAN-OS GlobalProtect, 버전 < 10.2.9-h1.
             즉시 패치. CISA 기한: 5월 1일."
```

### 취약점 우선순위 지정

```
사용자: "스캔 결과 이 CVE들 우선순위 정해줘: CVE-2021-44228, CVE-2024-3400,
        CVE-2023-44487, CVE-2024-21762, CVE-2023-4966"

에이전트: → 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에 있음 — 모두 즉시 패치."
```

### 의존성 감사

```
사용자: "lodash 4.17.20과 django 3.2.0에 알려진 취약점이 있는지 확인해줘"

에이전트: → osv_batch {queries: [
             {package: "lodash", version: "4.17.20", ecosystem: "npm"},
             {package: "django", version: "3.2.0", ecosystem: "PyPI"}
          ]}
          → "lodash 4.17.20: 3개 취약점 (프로토타입 오염)
             django 3.2.0: 12개 취약점 (SQL 인젝션, XSS)
             lodash는 4.17.21+로, django는 4.2+로 업그레이드"
```

### 위협 모니터링

```
사용자: "지금 가장 악용될 가능성이 높은 CVE는?"

에이전트: → 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 벡터를 분석해줘: 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_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 (치명적)
             네트워크 공격, 낮은 복잡도, 공격 요구사항 없음.
             권한 불필요, 사용자 상호작용 불필요.
             취약 시스템: 기밀성/무결성/가용성 완전 영향.
             후속 시스템: 영향 없음."
```

### ATT&CK 매핑

```
사용자: "CVE-2024-3400을 MITRE ATT&CK 기술에 매핑해줘"

에이전트: → cve_to_attack {cweIds: ["CWE-77"]}
          → "CWE-77 (명령 주입)이 매핑됨:
             T1059 — Command and Scripting Interpreter (실행)
             T1190 — Exploit Public-Facing Application (초기 접근)"
```

---

## 도구 참조 (41개 도구)

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

| 도구 | 설명 |
|------|------|
| `nvd_search` | 키워드, 심각도, CWE, 날짜 범위로 CVE 검색 |
| `nvd_get` | 전체 CVE 세부 정보 조회 (CVSS, CWE, CPE, 참조) |
| `nvd_recent` | 최근 게시/수정된 CVE |
| `cve_by_product` | 제품명으로 CVE 검색 (CPE 키워드 매칭) |

</details>

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

| 도구 | 설명 |
|------|------|
| `epss_score` | 하나 이상의 CVE에 대한 EPSS 악용 확률 |
| `epss_top` | 악용 확률 상위 CVE |

</details>

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

| 도구 | 설명 |
|------|------|
| `kev_check` | CVE가 CISA 알려진 악용 취약점 카탈로그에 있는지 확인 |
| `kev_search` | 공급업체, 제품 또는 키워드로 KEV 검색 |
| `kev_recent` | 최근 추가된 KEV 항목 |

</details>

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

| 도구 | 설명 |
|------|------|
| `ghsa_search` | 키워드, 에코시스템, 심각도로 GitHub 보안 권고 검색 |
| `ghsa_get` | 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 익스플로잇 검색 (GitHub 저장소) |

</details>

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

| 도구 | 설명 |
|------|------|
| `shodan_cve` | Shodan CVEDB를 통한 CVE 조회 (EPSS, KEV, CPE 통합, 인증 불필요) |
| `shodan_product` | Shodan을 통해 제품/벤더명으로 CVE 검색 |
| `shodan_ip_vulns` | IP 주소의 알려진 취약점 조회 (InternetDB) |

</details>

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

| 도구 | 설명 |
|------|------|
| `vulncheck_kev` | 확장 KEV 카탈로그 (CISA 대비 약 80% 더 많은 항목) |
| `vulncheck_cpe` | CPE 문자열로 CVE 검색 |
| `vulncheck_purl` | Package URL (purl)로 CVE 검색 |

</details>

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

| 도구 | 설명 |
|------|------|
| `vulners_lookup` | Vulners에서 CVE 세부 정보 (200+ 소스, 익스플로잇 참조) |
| `vulners_search` | Vulners 데이터베이스 전체 텍스트 취약점 검색 |

</details>

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

| 도구 | 설명 |
|------|------|
| `nuclei_check` | CVE에 대한 Nuclei 탐지 템플릿 존재 여부 확인 |
| `msf_check` | CVE에 대한 Metasploit 익스플로잇 모듈 존재 여부 확인 |

</details>

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

| 도구 | 설명 |
|------|------|
| `cpe_search` | 키워드로 NVD CPE 사전 검색 |
| `cpe_match` | 특정 CVE에 대한 CPE 매치 조회 |

</details>

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

| 도구 | 설명 |
|------|------|
| `circl_cve` | CIRCL CVE 보강 (CAPEC, 대체 참조, 영향 벡터) |

</details>

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

| 도구 | 설명 |
|------|------|
| `attackerkb_assess` | AttackerKB의 커뮤니티 평가 (공격자 가치, 악용 가능성) |

</details>

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

| 도구 | 설명 |
|------|------|
| `cve_to_attack` | CVE CWE ID를 MITRE ATT&CK 기술 및 전술에 매핑 |

</details>

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

| 도구 | 설명 |
|------|------|
| `cwe_lookup` | ID로 CWE 약점 조회 또는 키워드로 검색 (정적 DB) |
| `cwe_get` | MITRE API에서 전체 CWE 세부 정보 (1000+ CWE, 완화 방안, 예제) |
| `cwe_hierarchy` | MITRE API에서 CWE 부모/자식 계층 구조 |
| `cwe_top25` | MITRE CWE Top 25 가장 위험한 소프트웨어 약점 |

</details>

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

| 도구 | 설명 |
|------|------|
| `cvss_parse` | CVSS v3.1 또는 v4.0 벡터 문자열 파싱 및 점수 계산 설명 |

</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` | 오픈소스 보안 권고, 영향 패키지, 심각도 |
| [OSV](https://osv.dev/) | 없음 | 16개 이상 에코시스템의 패키지 수준 취약점 데이터 |
| [Shodan CVEDB](https://cvedb.shodan.io/) | 없음 | EPSS/KEV/CPE 통합 CVE 조회, IP 취약점 스캔 |
| [VulnCheck](https://vulncheck.com/) | 선택사항 `VULNCHECK_API_KEY` | 확장 KEV (CISA 대비 약 80% 더 많은 항목), CPE/PURL 취약점 검색 |
| [Vulners](https://vulners.com/) | 선택사항 `VULNERS_API_KEY` | 200+ 소스 취약점 검색, 익스플로잇 참조 |
| [Nuclei Templates](https://github.com/projectdiscovery/nuclei-templates) | 없음 | CVE 탐지 템플릿 존재 여부 확인 (심각도, 태그) |
| [Metasploit](https://github.com/rapid7/metasploit-framework) | 없음 | 익스플로잇 모듈 존재 여부 확인 (유형, 등급, 경로) |
| [CIRCL](https://cve.circl.lu/) | 없음 | CAPEC 매핑, 대체 참조, 영향 벡터가 포함된 CVE 보강 |
| [AttackerKB](https://attackerkb.com/) | 선택사항 `ATTACKERKB_API_KEY` | 커뮤니티 평가 (공격자 가치, 악용 가능성 등급) |
| [MITRE ATT&CK](https://attack.mitre.org/) | 없음 | CWE에서 ATT&CK 기술로의 매핑 (전술, 기술) |
| [MITRE CWE](https://cwe-api.mitre.org/) | 없음 | 전체 CWE 데이터베이스 (1000+ 약점, 계층 구조, 완화 방안) |

### 위험 점수 공식

```
위험 점수 = CVSS 기본 점수 × EPSS 점수 × KEV 배율 × Exploit 배율

여기서:
  CVSS 기본 점수  = 0-10 (NVD의 심각도)
  EPSS 점수       = 0-1 (FIRST의 악용 확률)
  KEV 배율        = CISA KEV에 있으면 2, 아니면 1
  Exploit 배율    = Nuclei 템플릿 또는 Metasploit 모듈이 존재하면 1.5, 아니면 1
```

이 공식은 심각도(CVSS), 실제 악용 가능성(EPSS), 알려진 활발한 악용(KEV), 무기화 신호(공개 익스플로잇 도구)를 균형 있게 반영하는 실용적인 위험 점수를 제공합니다.

---

## 아키텍처

```
src/
├── index.ts                    진입점 + MCP stdio
├── types/
│   └── index.ts                ToolDef, ToolContext, ToolResult, API 타입
├── protocol/
│   ├── tools.ts                41개 도구 정의 (Zod schemas)
│   └── mcp-server.ts           MCP 서버 + stdio 전송
├── nvd/
│   ├── index.ts                NVD API v2 — 검색, 조회, 최근
│   └── cpe.ts                  제품/CPE 검색
├── epss/
│   └── index.ts                EPSS — 점수, 상위
├── kev/
│   └── index.ts                KEV — 확인, 검색, 최근 (캐시됨)
├── ghsa/
│   └── index.ts                GitHub Advisory — 검색, 조회
├── osv/
│   └── index.ts                OSV — 쿼리, 조회, 일괄
├── exploit/
│   └── index.ts                GitHub 저장소를 통한 PoC 검색
├── shodan/
│   └── index.ts                Shodan CVEDB + InternetDB (인증 불필요)
├── vulncheck/
│   └── index.ts                VulnCheck KEV, CPE, PURL
├── vulners/
│   └── index.ts                Vulners 검색 + 조회
├── nuclei/
│   └── index.ts                Nuclei 템플릿 존재 여부 확인
├── metasploit/
│   └── index.ts                MSF 모듈 확인 (캐시된 메타데이터)
├── cpe/
│   └── index.ts                NVD CPE 사전 API
├── circl/
│   └── index.ts                CIRCL CVE 보강
├── attackerkb/
│   └── index.ts                AttackerKB 평가
├── attack/
│   └── index.ts                CWE → MITRE ATT&CK 매핑
├── cwe/
│   └── index.ts                CWE API (MITRE) + 정적 폴백
├── cvss/
│   └── index.ts                CVSS v3.1 + v4.0 파서 + 계산기
├── meta/
│   ├── enrich.ts               전체 CVE 보강 (8개 소스 병렬)
│   ├── prioritize.ts           위험도 기반 CVE 순위
│   ├── trending.ts             EPSS 기준 트렌딩 CVE
│   ├── 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 없음, 발견 사항 누적 없음. 각 쿼리는 독립적이고 상태 비저장입니다.
- **병렬 보강** &mdash; `cve_enrich`는 `Promise.allSettled`를 통해 8개 소스를 호출합니다. 하나의 소스가 다운되어도 나머지는 데이터를 반환합니다.
- **무기화 탐지** &mdash; Nuclei 템플릿과 Metasploit 모듈 존재 여부를 확인하여 공개 익스플로잇 도구가 있는 CVE를 표시합니다.
- **공유 속도 제한기** &mdash; 모든 NVD 모듈이 단일 `RateLimiter` 인스턴스를 공유하여 (요청 간 6초) 429 오류를 방지합니다.
- **KEV + MSF 캐싱** &mdash; KEV 카탈로그 (~1200개 항목)와 MSF 모듈 메타데이터 (~15MB)가 한 번 로드되어 1시간 TTL로 캐시됩니다.
- **CWE 듀얼 모드** &mdash; MITRE CWE REST API로 전체 세부 정보 (1000+ CWE)를 제공하며, API 접근 불가 시 40+ 항목 정적 폴백을 사용합니다.
- **CVSS v3.1 + v4.0** &mdash; 벡터 접두사로 버전을 자동 감지합니다. V4.0은 MacroVector 스코어링 방식을 사용합니다.
- **ATT&CK 매핑** &mdash; 정적 CWE-기술 매핑 테이블 (33개 CWE 항목 → ATT&CK 기술). API 호출 없음.
- **2개 의존성** &mdash; `@modelcontextprotocol/sdk`과 `zod`. 그 외 없음.

---

## 제한 사항

- `NVD_API_KEY` 없이 NVD API는 30초당 5개 요청으로 제한됩니다. 프로덕션 사용 시 키를 설정하세요
- `GITHUB_TOKEN` 없이 GitHub Advisory 검색은 시간당 60개 요청으로 제한됩니다
- VulnCheck, Vulners, AttackerKB는 전체 기능을 위해 API 키가 필요합니다
- Exploit 검색은 GitHub 저장소 검색을 사용하며 자체 속도 제한이 있습니다
- MSF 모듈 메타데이터 (~15MB)는 첫 사용 시 로드됨 — 초기 `msf_check` 호출이 느립니다
- CVSS v4.0 점수는 MacroVector 근사값을 사용합니다 (정확한 사양은 매우 복잡)
- ATT&CK 매핑은 33개 CWE 항목을 포함함 — 드문 CWE는 매핑되지 않을 수 있습니다
- macOS / Linux (Windows 미테스트)

---

## MCP 보안 제품군의 일부

| 프로젝트 | 영역 | 도구 |
|----------|------|------|
| [hackbrowser-mcp](https://github.com/badchars/hackbrowser-mcp) | 브라우저 기반 보안 테스트 | 39개 도구, Firefox, 인젝션 테스트 |
| [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 라이선스</a> &bull; Bun + TypeScript로 빌드
</p>
