Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
도구/GitHubGitHub/mukul975/cve-mcp-server
OSINT (Open Source Intelligence)ReconnaissanceVulnerability ScannersVulnerability AnalysisInformation GatheringDevSecOpsThreat IntelligenceIncident ResponseAPI Security
GitHubmukul975/cve-mcp-server

cve-mcp-server

생산 수준의 MCP 서버로, Claude에게 21개의 API를 통해 27개의 보안 인텔리전스 도구를 제공합니다 — CVE 조회, EPSS 점수, CISA KEV, MITRE ATT&CK, Shodan, VirusTotal 등.

1.1k1851개월 전Kitploit 검토 완료

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유
cve-mcp-server — 생산 수준의 MCP 서버로, Claude에게 21개의 API를 통해 27개의 보안 인텔리전스 도구를 제공합니다 — CVE 조회, EPSS 점수, CISA KEV, MITRE ATT&CK, Shodan, VirusTotal 등. | Kitploit
저장소 보기웹사이트

🛡️ CVE MCP 서버

CVE MCP 서버

AI 기반 보안 인텔리전스를 손캊게 — 28개의 도구 + 단일 호출 triage_cve 오케스트레이터, 24개 데이터 소스, 하나의 프로토콜. GARS-2026 설문조사 Python 3.10+ 라이선스: MIT MCP 호환 보안 도구 FastMCP

프로덕션 등급의 Model Context Protocol (MCP) 서버로, Claude를 전방위 보안 분석가로 변환합니다. 15개 이상의 브라우저 탭을 NVD, EPSS, CISA KEV, Shodan, VirusTotal, GreyNoise 사이에서 전환할 필요 없이, Claude에게 한 가지 질문만 하면 수초 내에 상호 연관된 인텔리전스를 얻을 수 있습니다. Python, FastMCP, httpx, aiosqlite, Pydantic v2 및 defusedxml로 구축되었습니다.

문제점: 단일 CVE를 심사하려면 NVD에서 CVSS 점수, EPSS에서 익스플로잇 확률, CISA KEV에서 활성 익스플로잇 상태, GitHub에서 패치, VirusTotal에서 악성코드 연관성을 각각 조회한 다음, 모든 정보를 정신적으로 상호 연관시켜야 합니다. 50개의 CVE라면 하루 종일 걸리는 작업입니다.

해결책: CVE MCP 서버는 Claude에게 24개 API에 걸친 28개의 보안 도구에 직접 접근 권한을 부여하며, 단일 호출 오케스트레이터인 triage_cve 를 앞세웁니다. "CVE-2024-3400에 대해 패치해야 할까요?"라고 물으면 Claude는 모든 관련 소스에 동시에 요청을 분산하고, 복합 위험 점수(CISA KEV 하드 오버라이드 포함)를 계산한 후, 증거와 함께 우선순위가 매겨진 권장 사항을 제공합니다.


🌍 GARS-2026 — 글로벌 에이전틱 AI 준비도 설문조사

보안 전문가, 개발자 및 엔터프라이즈 팀이 에이전틱 AI(MCP 서버, 도구 호출, 거버넌스, 인간-인-더-루프 워크플로우)에 대해 실제로 얼마나 준비되어 있는지 측정하는 글로벌 학술 연구를 진행 중입니다.

이 저장소를 사용하신다면, 여러분의 응답은 매우 가치 있는 데이터 포인트가 될 것입니다.

📋 설문조사 참여 (10분 소요): 설문조사

  • 60개 문항 · 익명 · SRH Berlin 감독
  • casky.ai 조기 액세스를 위한 50 Casky 토큰 증정
  • 결과는 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` | 하나 이상의 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로 공통 약점 열거(CWE) 상세 정보를 조회합니다. | 무료 / 키 없음 | `get_cwe_info("CWE-79")` |
| `get_cve_references` | CVE에 대한 모든 참조 링크를 추출하고 분류합니다(패치, 권고, 익스플로잇). | 무료 / 키 없음 (키 권장) | `get_cve_references("CVE-2023-44487")` |
| `bulk_cve_lookup` | 단일 호출에서 최대 20개의 CVE에 대한 세부 정보를 병렬 보강과 함께 일괄 가져옵니다. | 무료 / 키 없음 (키 권장) | `bulk_cve_lookup(["CVE-2024-3400", "CVE-2023-44487"])` |

### 익스플로잇 및 공격 인텔리전스 (4개 도구)

| 도구 | 설명 | API 키 필요 | 사용 예 |
|------|-------------|-----------------|---------------|
| `search_exploits` | GitHub에서 공개 개념 증명 익스플로잇 및 익스플로잇 코드 저장소를 검색합니다. | `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` | 하나 이상의 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` | IP 스캔/공격 활동, 분류 및 관련 CVE에 대해 GreyNoise를 질의합니다. | `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` | ThreatFox에서 악성코드 패밀리와 연결된 침해 지표(IoC)를 질의합니다. | `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 보안 권고를 검색합니다. | `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

Using 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: 선택 사항 (확장된 인텔리전스)

⚡ 키 없이 시작하기: 총 8개의 도구가 API 키 없이도 작동합니다 — EPSS, CISA KEV, OSV.dev, MITRE ATT&CK, CWE 조회, CVSS 파싱, Ransomwhere, NVD (제한된 속도). 서버를 즉시 사용할 수 있으며, 필요에 따라 키를 점진적으로 추가할 수 있습니다.


⚙️ 구성

환경 변수 (.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 키를 [nvd.nist.gov](https://nvd.nist.gov/developers/request-an-api-key)에서 요청하세요 — 이메일로 즉시 제공되며, 속도 제한이 **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 (CRITICAL). Apache Log4j에서 원격 코드 실행, CVSS 10.0, 97.5% EPSS 확률, CISA KEV에서 확인된 활발한 악용(랜섬웨어 캠페인 포함), 300개 이상의 공개 익스플로잇. 즉시 패치하십시오."

Scenario 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:~
**클로드의 응답:** "패키지에서 **12개의 취약점**을 발견했습니다. **즉시 조치:** Django 3.2.0 (SQL 주입 포함 3개의 심각한 CVE), 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

클로드의 응답: "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 숫자 점수의 기본값이며, 하나의 강제 재정의가 있습니다.

  • 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)은 triage_cve(depth="deep")를 통해 정성적이고 설명 가능한 대안으로 0–100 숫자 대신 사용할 수 있습니다.

이 가중치의 이유는?

**EPSS가 가장 높은 가중치(35%)**를 받는 이유는 실제 악용을 예측하는 가장 좋은 단일 지표이기 때문입니다. CVSS만으로는 훨씬 부족합니다. CVSS 10.0에 EPSS 0.01인 경우 이론적으로는 위험하지만 실제로는 가능성이 낮습니다. **KEV는 30%**로 사실입니다: 예측이 아닌 확인된 악용입니다. **CVSS는 20%**로 EPSS 데이터가 충분하지 않은 새로운 CVE의 심각도 맥락을 포착합니다. **PoC는 15%**로 공개 익스플로잇이 실제 공격을 극적으로 가속화한다는 점을 반영합니다.


🆕 v0.2.0의 새로운 기능

  • triage_cve 오케스트레이터 — 한 번의 도구 호출로 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 범위 API.
  • KEV 강제 재정의 점수 + scoring_version — KEV에 등록된 CVE는 항상 CRITICAL(점수 ≥ 76)입니다. 점수 버전은 triage_cve 및 health_check에 보고됩니다.
  • HTTP 전송 — MCP_TRANSPORT=http를 설정하여 stdio 대신 HOST:PORT(기본값 , 상태 비저장)에서 스트리밍 가능한 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는 git에 무시됨
  • 키는 로그, 캐시 또는 감사 항목에 포함되지 않음

XML 안전

defusedxml은 XML 폭탄 공격(빌리언 래프, XXE 주입)을 방지하기 위해 모든 XML 파싱에 사용됩니다.


🔧 문제 해결

서버가 시작되지 않음```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"

🗺️ 로드맵 및 알려진 제한사항

서버가 수행하지 않는 작업

  • 능동 스캐닝 없음 — 인텔리전스/조회만 수행하며 인프라를 탐색하지 않음
  • 쓰기 작업 없음 — URLScan 제출을 제외하고 외부 API에서만 읽음
  • 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 로컬 계산기
  • KEV 추가 및 CVE 관찰 목록의 EPSS 점수 변경에 대한 웹훅/알림
  • SIEM 통합을 위한 STIX 2.1 내보내기
  • 설치 없이 배포 가능한 Docker 컨테이너
  • 스트리밍 가능 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:~
### 테스트 요구 사항

- 모든 새로운 도구는 모의 응답을 사용한 최소 하나의 오프라인 테스트를 포함해야 합니다
- 위험 점수 변경에는 공식 검증 테스트 케이스가 포함되어야 합니다
- 네트워크 도구는 사설 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배 속도 향상 (30초당 50회 vs 5회)nvd.nist.gov에서 요청30초당 50회 요청선택 사항이지만 강력 권장
GITHUB_TOKENGitHub Advisory 검색 + 익스플로잇 PoC 검색github.com/settings/tokens에서 PAT 생성시간당 5,000회 요청선택 사항 (없으면 시간당 60회)
ENV 변수활성화 기능획득 방법무료 티어 한도필수 여부?
ABUSEIPDB_KEYIP 평판 조회abuseipdb.com에서 등록일일 1,000회 확인IP 도구에 필수
VIRUSTOTAL_KEY파일/URL/도메인/IP 악성코드 검사virustotal.com에서 가입일일 500회 조회, 분당 4회VT 도구에 필수
GREYNOISE_API_KEYIP 노이즈/스캔 활동 인텔리전스viz.greynoise.io에서 가입주당 50회 쿼리 (커뮤니티)GreyNoise 도구에 필수
SHODAN_KEY호스트/포트/서비스 정찰account.shodan.io에서 등록기본 호스트 조회 (무료 티어)Shodan 도구에 필수
ENV 변수활성화 기능획득 방법무료 티어 한도필수 여부?
URLSCAN_KEYURL 검사 및 웹사이트 분석urlscan.io에서 가입일일 5,000회 공개 스캔선택 사항
CIRCL_PDNS_USERCIRCL Passive DNS 조회circl.lu에서 접근 요청파트너 전용선택 사항
CIRCL_PDNS_PASSCIRCL Passive DNS 인증CIRCL 등록 시 제공파트너 전용선택 사항
구성 요소가중치의미
CVSS v3.1 기본 점수20%이론적 최악의 심각도
EPSS 확률35%향후 30일 내 실제 악용될 통계적 가능성
CISA KEV 상태30%야생에서 확인된 활성 악용
PoC 가용성15%공개 익스플로잇 코드가 공격자의 장벽을 낮춤
점수라벨권장 조치
0 – 25LOW다음 유지보수 기간에 예약
26 – 50MEDIUMSLA에 따라 30일 이내 패치
51 – 75HIGH7일 이내 패치; 팀 리드에게 에스컬레이션
76 – 100CRITICAL24~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 헤더 (선택 사항)30초당 5회 (키 사용 시 50회)
    2EPSS악용 확률 및 백분위수없음분당 1,000회
    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악성코드 계열과 연결된 IOCsAuth-Key 헤더적절한 사용
    13Ransomwhere랜섬웨어 BTC 주소 및 거래없음공개된 제한 없음
    14URLScan.ioURL 스캔, 스크린샷, DOMAPI-Key 헤더일일 5,000건 공개 스캔
    15CIRCL PDNS과거 수동 DNS 레코드HTTP 기본 인증파트너 액세스
    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 토큰 (무료 커뮤니티)VulnCheck 커뮤니티 등급 기준
    23CIRCL hashlookup알려진 정상 파일 메타데이터 (NSRL + 기타), hashlookup:trust없음최선의 노력
    24HIBP Pwned Passwordsk-익명성 범위 API를 통한 유출된 비밀번호 개수없음엄격한 제한 없음