English |
简体中文 |
繁體中文 |
한국어 |
Deutsch |
Español |
Français |
Italiano |
Dansk |
日本語 |
Polski |
Русский |
Bosanski |
العربية |
Norsk |
Português (Brasil) |
ไทย |
Türkçe |
Українська |
বাংলা |
Ελληνικά |
Tiếng Việt |
हिन्दी
面向 AI agent 的 CVE 与漏洞情报。
NVD、EPSS、CISA KEV、GitHub Advisory、OSV、Shodan、VulnCheck、Vulners、Nuclei、Metasploit、CIRCL、AttackerKB 以及 MITRE ATT&CK — 统一集成于单个 MCP server 中。
你的 AI agent 将获得按需获取的漏洞情报 ,而不是一份长达 200 页的报告。
痛点 •
独特之处 •
快速开始 •
AI 能力 •
工具 •
数据源 •
架构 •
贡献指南 •
更新日志
## 痛点
漏洞情报散落在多个数据库中。NVD 提供 CVE 详情。EPSS 告诉你被利用的概率。CISA KEV 追踪被积极利用的漏洞。GitHub Advisory 涵盖了开源包。OSV 将漏洞映射到特定的包版本。Shodan 追踪互联网暴露面。Nuclei 和 Metasploit 告诉你是否有可用的 exploit。没有任何单一工具能将它们聚合起来,而且它们都无法与 AI agent 协同工作。
```
Traditional workflow:
search NVD for CVE details → navigate a clunky web UI
check EPSS for exploitation risk → separate API, separate format
look up CISA KEV status → download a JSON feed manually
search GitHub advisories → yet another interface
query OSV for package impact → different API, different schema
check Shodan for exposure → separate subscription
look for Nuclei/MSF exploits → manual GitHub search
map to ATT&CK techniques → separate MITRE lookup
correlate everything → copy-paste into a spreadsheet
──────────────────────────────────
Total: 30+ minutes per CVE, longer for bulk triage
```
**cve-mcp** 通过 [Model Context Protocol](https://modelcontextprotocol.io) 为你的 AI agent 提供 41 个工具。该 agent 可以并行查询 11 个数据源,关联数据,检测武器化信号,计算风险评分,并准确告诉你哪些事情最重要。
```
With cve-mcp:
You: "Prioritize these 10 CVEs by actual exploitation risk"
Agent: → fetches CVSS scores from NVD
→ gets EPSS exploitation probability for each
→ checks CISA KEV for actively exploited
→ cross-references GitHub advisories for patches
→ "3 are critical: CVE-2024-3400 (EPSS 97%, in KEV),
CVE-2023-44487 (HTTP/2 rapid reset, EPSS 96%),
CVE-2021-44228 (Log4Shell, EPSS 97%, in KEV).
Here are patches and affected versions..."
```
## 独特之处
现有工具提供原始数据。cve-mcp 赋予你的 AI agent 对漏洞进行推理的能力。
传统工具
cve-mcp
交互方式
Web UI / CLI / 原始 API 调用
MCP — AI agent 以对话方式调用工具
数据源
一次仅查询一个数据库
并行查询 11 个来源:NVD、EPSS、KEV、GHSA、OSV、Shodan、VulnCheck、Vulners、Nuclei、Metasploit、CIRCL
风险评分
仅基于 CVSS(仅反映严重程度,而非可利用性)
CVSS × EPSS × KEV × Exploit 乘数 (Nuclei/MSF) = 实际风险
关联性
手动复制粘贴
Agent 自动扩充信息:“CVSS 9.8,EPSS 97%,已被收录至 KEV,存在 Nuclei 模板,有可用的 MSF 模块,映射至 T1190”
批量分诊
一次仅处理一个 CVE
Agent 可在单次对话中对 50 个 CVE 进行优先级排序
包影响面
需单独查询 OSV/GHSA
Agent 自动查找受影响的包及版本
依赖项
依赖庞大的 CLI 工具和 Python 环境
仅需 2 个运行时依赖,通过 npx 运行
## 快速开始
### 选项 1:npx(免安装)
```
npx cve-mcp
```
### 选项 2:克隆仓库
```
git clone https://github.com/badchars/cve-mcp.git
cd cve-mcp
bun install
```
### 环境变量(均为可选)
```
# 将 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
# 跨 200+ 来源的 Vulners 漏洞搜索
export VULNERS_API_KEY=your-vulners-key
# AttackerKB 社区评估
export ATTACKERKB_API_KEY=your-attackerkb-key
```
所有配置项均为可选。即使不进行配置,server 也能正常工作 —— 只是部分工具会受到较低的速率限制或返回精简数据。
### 连接到你的 AI agent
Claude Code
```
# 使用 npx
claude mcp add cve-mcp -- npx cve-mcp
# 使用本地 clone
claude mcp add cve-mcp -- bun run /path/to/cve-mcp/src/index.ts
```
Claude Desktop
添加至 `~/Library/Application Support/Claude/claude_desktop_config.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"
}
}
}
}
```
Cursor / Windsurf / 其他 MCP 客户端
使用相同的 JSON 配置格式。将 command 指向 `npx cve-mcp` 或你的安装路径。
### 开始查询
```
You: "What do you know about CVE-2024-3400?"
```
就这样。剩下的交给 agent 处理即可。
## AI 能力
### 事件响应
```
You: "We got hit by CVE-2024-3400. Give me everything."
Agent: → cve_enrich {cveId: "CVE-2024-3400"}
→ NVD: PAN-OS command injection, CVSS 10.0
→ EPSS: 97.2% exploitation probability
→ KEV: Added 2024-04-12, due 2024-05-01
→ Shodan: 4 CPEs, internet-exposed
→ Nuclei: Detection template exists (critical)
→ Metasploit: Exploit module available (excellent rank)
→ "Critical. Weaponized — both Nuclei and MSF modules exist.
PAN-OS GlobalProtect, versions < 10.2.9-h1.
Patch immediately. CISA deadline: May 1."
```
### 漏洞优先级排序
```
You: "Prioritize these CVEs from our scan: CVE-2021-44228, CVE-2024-3400,
CVE-2023-44487, CVE-2024-21762, CVE-2023-4966"
Agent: → cve_prioritize {cves: [...]}
→ Ranks by CVSS × EPSS × KEV multiplier
→ "#1: CVE-2024-3400 (risk: 19.44, CVSS 10.0, EPSS 97%, KEV)
#2: CVE-2021-44228 (risk: 19.40, CVSS 10.0, EPSS 97%, KEV)
#3: CVE-2023-4966 (risk: 19.10, CVSS 9.4, EPSS 97%, KEV)
All 5 are in CISA KEV — patch all immediately."
```
### 依赖审计
```
You: "Check if lodash 4.17.20 and django 3.2.0 have known vulnerabilities"
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 vulnerabilities (prototype pollution)
django 3.2.0: 12 vulnerabilities (SQL injection, XSS)
Upgrade lodash to 4.17.21+, django to 4.2+"
```
### 威胁监控
```
You: "What are the most likely to be exploited CVEs right now?"
Agent: → cve_trending {limit: 10, minEpss: 0.9}
→ "Top 10 by exploitation probability:
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)
```
You: "Break down this 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 — Score: 9.3 (CRITICAL)
Network attack, low complexity, no attack requirements.
No privileges, no user interaction.
Vulnerable system: full C/I/A impact.
Subsequent systems: no impact."
```
### ATT&CK 映射
```
You: "Map CVE-2024-3400 to MITRE ATT&CK techniques"
Agent: → cve_to_attack {cweIds: ["CWE-77"]}
→ "CWE-77 (Command Injection) maps to:
T1059 — Command and Scripting Interpreter (Execution)
T1190 — Exploit Public-Facing Application (Initial Access)"
```
## 工具参考(共 41 个工具)
NVD (4)
| 工具 | 描述 |
|------|-------------|
| `nvd_search` | 通过关键词、严重程度、CWE、日期范围搜索 CVE |
| `nvd_get` | 获取完整的 CVE 详情(CVSS、CWE、CPE、参考链接) |
| `nvd_recent` | 最近发布/修改的 CVE |
| `cve_by_product` | 通过产品名称搜索 CVE(基于 CPE 关键词匹配) |
EPSS (2)
| 工具 | 描述 |
|------|-------------|
| `epss_score` | 获取单个或多个 CVE 的 EPSS 利用概率 |
| `epss_top` | 按利用概率排名靠前的 CVE |
KEV (3)
| 工具 | 描述 |
|------|-------------|
| `kev_check` | 检查 CVE 是否在 CISA 已知被利用漏洞 (KEV) 目录中 |
| `kev_search` | 通过供应商、产品或关键词搜索 KEV |
| `kev_recent` | 最近添加的 KEV 条目 |
GHSA (2)
| 工具 | 描述 |
|------|-------------|
| `ghsa_search` | 通过关键词、生态系统、严重程度搜索 GitHub 安全公告 |
| `ghsa_get` | 通过 GHSA ID 或 CVE ID 获取公告详情 |
OSV (3)
| 工具 | 描述 |
|------|-------------|
| `osv_query` | 查询特定包版本的漏洞 |
| `osv_get` | 通过 OSV/GHSA/CVE ID 获取漏洞详情 |
| `osv_batch` | 批量查询多个包 |
Exploit (1)
| 工具 | 描述 |
|------|-------------|
| `exploit_search` | 搜索公开的 PoC exploit(GitHub 仓库) |
Shodan (3)
| 工具 | 描述 |
|------|-------------|
| `shodan_cve` | 通过 Shodan CVEDB 查询 CVE(集成 EPSS、KEV、CPE,无需认证) |
| `shodan_product` | 通过 Shodan 按产品/供应商名称查找 CVE |
| `shodan_ip_vulns` | 获取某个 IP 地址的已知漏洞(InternetDB) |
VulnCheck (3)
| 工具 | 描述 |
|------|-------------|
| `vulncheck_kev` | 扩展的 KEV 目录(比 CISA 多约 80% 的条目) |
| `vulncheck_cpe` | 通过 CPE 字符串搜索 CVE |
| `vulncheck_purl` | 通过 Package URL (purl) 搜索 CVE |
Vulners (2)
| 工具 | 描述 |
|------|-------------|
| `vulners_lookup` | 从 Vulners 获取 CVE 详情(200+ 数据源,exploit 参考) |
| `vulners_search` | 跨 Vulners 数据库进行全文漏洞搜索 |
Nuclei & Metasploit (2)
| 工具 | 描述 |
|------|-------------|
| `nuclei_check` | 检查某个 CVE 是否存在对应的 Nuclei 检测模板 |
| `msf_check` | 检查某个 CVE 是否存在对应的 Metasploit exploit 模块 |
CPE (2)
| 工具 | 描述 |
|------|-------------|
| `cpe_search` | 通过关键词搜索 NVD CPE 字典 |
| `cpe_match` | 获取特定 CVE 的 CPE 匹配结果 |
CIRCL (1)
| 工具 | 描述 |
|------|-------------|
| `circl_cve` | CIRCL CVE 数据扩充(CAPEC、替代参考链接、影响向量) |
AttackerKB (1)
| 工具 | 描述 |
|------|-------------|
| `attackerkb_assess` | 来自 AttackerKB 的社区评估(攻击者价值、可利用性) |
ATT&CK (1)
| 工具 | 描述 |
|------|-------------|
| `cve_to_attack` | 将 CVE 的 CWE ID 映射到 MITRE ATT&CK 的技术与战术 |
CWE (4)
| 工具 | 描述 |
|------|-------------|
| `cwe_lookup` | 通过 ID 查询或通过关键词搜索 CWE 弱点(静态数据库) |
| `cwe_get` | 通过 MITRE API 获取完整的 CWE 详情(1000+ 个 CWE、缓解措施、示例) |
| `cwe_hierarchy` | 通过 MITRE API 获取 CWE 的父/子层级结构 |
| `cwe_top25` | MITRE CWE Top 25 最危险的软件弱点 |
CVSS (1)
| 工具 | 描述 |
|------|-------------|
| `cvss_parse` | 解析并解释 CVSS v3.1 或 v4.0 的向量字符串并计算得分 |
Meta (6)
| 工具 | 描述 |
|------|-------------|
| `cve_enrich` | 完整的数据扩充:并行获取 NVD + EPSS + KEV + GHSA + OSV + Shodan + Nuclei + MSF |
`cve_prioritize` | 按风险对 CVE 进行排序(CVSS × EPSS × KEV × Exploit 乘数) |
| `cve_trending` | 根据利用概率获取当前热门的 CVE |
| `cve_compare` | 并排对比两个 CVE |
| `cve_list_sources` | 列出全部 11 个数据源及其可用性 |
| `cve_report` | 生成 Markdown 格式的漏洞报告 |
## 数据源
| 来源 | 认证 | 提供内容 |
|--------|------|-----------------|
| [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/) | 无 | 查询 CVE(集成 EPSS/KEV/CPE)及 IP 漏洞扫描 |
| [VulnCheck](https://vulncheck.com/) | 可选 `VULNCHECK_API_KEY` | 扩展的 KEV(比 CISA 多约 80% 条目),基于 CPE/PURL 的漏洞搜索 |
| [Vulners](https://vulners.com/) | 可选 `VULNERS_API_KEY` | 跨越 200+ 来源的漏洞搜索,exploit 参考 |
| [Nuclei Templates](https://github.com/projectdiscovery/nuclei-templates) | 无 | CVE 检测模板存在性检查(严重程度、标签) |
| [Metasploit](https://github.com/rapid7/metasploit-framework) | 无 | Exploit 模块存在性检查(类型、排名、路径) |
| [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+ 个弱点、层级结构、缓解措施) |
### 风险评分公式
```
Risk Score = CVSS Base Score × EPSS Score × KEV Multiplier × Exploit Multiplier
Where:
CVSS Base Score = 0-10 (severity from NVD)
EPSS Score = 0-1 (exploitation probability from FIRST)
KEV Multiplier = 2 if in CISA KEV, 1 otherwise
Exploit Multiplier = 1.5 if Nuclei template OR Metasploit module exists, 1 otherwise
```
这提供了一个实用的风险评分,综合平衡了严重程度 (CVSS)、现实世界中的被利用可能性 (EPSS)、已知的积极利用行为 (KEV) 以及武器化信号(公开的 exploit 工具)。
## 架构
```
src/
├── index.ts Entry point + MCP stdio
├── types/
│ └── index.ts ToolDef, ToolContext, ToolResult, API types
├── protocol/
│ ├── tools.ts 41 tool definitions (Zod schemas)
│ └── mcp-server.ts MCP server + stdio transport
├── nvd/
│ ├── index.ts NVD API v2 — search, get, recent
│ └── cpe.ts Product/CPE search
├── epss/
│ └── index.ts EPSS — score, top
├── kev/
│ └── index.ts KEV — check, search, recent (cached)
├── ghsa/
│ └── index.ts GitHub Advisory — search, get
├── osv/
│ └── index.ts OSV — query, get, batch
├── exploit/
│ └── index.ts PoC search via GitHub repos
├── shodan/
│ └── index.ts Shodan CVEDB + InternetDB (zero-auth)
├── vulncheck/
│ └── index.ts VulnCheck KEV, CPE, PURL
├── vulners/
│ └── index.ts Vulners search + lookup
├── nuclei/
│ └── index.ts Nuclei template existence check
├── metasploit/
│ └── index.ts MSF module check (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 Full CVE enrichment (8 sources parallel)
│ ├── prioritize.ts Risk-based CVE ranking
│ ├── trending.ts Trending CVEs by EPSS
│ ├── compare.ts Side-by-side CVE comparison
│ └── sources.ts 11 source health checks
└── utils/
├── rate-limiter.ts Queue-based rate limiter
└── cache.ts TTL cache
```
**设计决策:**
- **情报优先,而非审计** — 与 [cloud-audit-mcp](https://github.com/badchars/cloud-audit-mcp) 和 [github-security-mcp](https://github.com/badchars/github-security-mcp) 不同,这是一个数据工具。没有 CheckResult,也没有结果累积。每次查询都是独立且无状态的。
- **并行扩充** — `cve_enrich` 通过 `Promise.allSettled` 调用 8 个数据源。如果某个源发生宕机,其余源仍会正常返回数据。
- **武器化检测** — 检查 Nuclei 模板和 Metasploit 模块是否存在,以标记包含公开 exploit 工具的 CVE。
- **共享速率限制器** — 所有 NVD 模块共享一个 `RateLimiter` 实例(请求间隔 6 秒)以避免触发 429 错误。
- **KEV + MSF 缓存** — KEV 目录(约 1200 条记录)和 MSF 模块元数据(约 15MB)仅在首次加载,缓存 TTL 为 1 小时。
- **CWE 双模式** — 使用 MITRE CWE REST API 获取完整详情(1000+ 个 CWE),并在 API 无法访问时启用包含 40+ 条目的静态回退机制。
- **CVSS v3.1 + v4.0** — 根据向量前缀自动检测版本。V4.0 采用 MacroVector 评分方法。
- **ATT&CK 映射** — 使用静态的 CWE 到技术映射表(33 个 CWE 条目 → ATT&CK 技术)。无 API 调用。
- **2 个依赖项** — `@modelcontextprotocol/sdk` 和 `zod`。没有其他依赖。
## 局限性
- 未配置 `NVD_API_KEY` 时,NVD API 的限制为每 30 秒 5 次请求。在生产环境中请务必设置此 key
- 未配置 `GITHUB_TOKEN` 时,GitHub Advisory 搜索限制为每小时 60 次请求
- VulnCheck、Vulners 和 AttackerKB 需要 API key 才能使用全部功能
- Exploit 搜索使用 GitHub 仓库搜索,该功能有其自身的速率限制
- MSF 模块元数据(约 15MB)会在首次使用时加载 —— 初始执行 `msf_check` 调用会较慢
- CVSS v4.0 评分使用 MacroVector 近似算法(精确规范非常复杂)
- ATT&CK 映射涵盖 33 个 CWE 条目 —— 不常见的 CWE 可能无法完成映射
- macOS / Linux(尚未对 Windows 进行测试)
## MCP Security Suite 的一部分
| 项目 | 领域 | 工具 |
|---|---|---|
| [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 个数据源 |
仅用于授权的安全测试与评估。
在对系统进行测试之前,请务必确保已获得适当的授权。
MIT License • 使用 Bun + TypeScript 构建