Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
工具/GitHubGitHub/mukul975/cve-mcp-server
OSINT (开源情报)侦察漏洞扫描器漏洞分析信息收集DevSecOps威胁情报事件响应API 安全
GitHubmukul975/cve-mcp-server

cve-mcp-server

生产级MCP服务器,为Claude提供27种安全情报工具,涵盖21个API——包括CVE查询、EPSS评分、CISA KEV、MITRE ATT&CK、Shodan、VirusTotal等。

1.1k1851个月前Kitploit 审核通过

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享
cve-mcp-server — 生产级MCP服务器,为Claude提供27种安全情报工具,涵盖21个API——包括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

一个生产级别的模型上下文协议(MCP)服务器,将 Claude 变成全能的安全分析师。无需在 NVD、EPSS、CISA KEV、Shodan、VirusTotal 和 GreyNoise 之间切换 15 个以上的浏览器标签页,只需向 Claude 提出一个问题,即可在数秒内获得关联情报。基于 Python、FastMCP、httpx、aiosqlite、Pydantic v2 和 defusedxml 构建。

问题所在: 对单个 CVE 进行分诊意味着要查询 NVD 获取 CVSS 分数、EPSS 获取利用概率、CISA KEV 获取活跃利用状态、GitHub 获取补丁、VirusTotal 获取恶意软件关联——然后再进行人工关联。对于 50 个 CVE,这需要整整一天的时间。

解决方案: CVE MCP 服务器让 Claude 能够直接访问 28 个安全工具,覆盖 24 个 API——并且由 triage_cve 一键编排器统一调度。只需问“我们是否需要修补 CVE-2024-3400?”,Claude 就会并行查询所有相关源,计算综合风险评分(包含 CISA KEV 硬覆盖),并提供带有证据的优先修复建议。


🌍 GARS-2026 — 全球智能体 AI 就绪度调查

我正在开展一项全球学术研究,衡量安全专业人员、开发者和企业团队对智能体 AI(包括 MCP 服务器、工具调用、治理和人机协同工作流)的实际准备程度。

如果你正在使用此仓库,你的回答将是一个非常有价值的数据点。

📋 参与调查(10 分钟): 调查问卷

  • 60 道题 · 匿名 · 由 SRH Berlin 监督
  • 你将获得 50 个 Casky 代币,用于提前体验 casky.ai
  • 结果将以 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 获取详细 CVE 记录,包括 CVSS 分数、CWE、受影响产品、参考信息和时间线 | 免费 / 无需密钥(建议使用密钥) | `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 的已知被利用漏洞目录中 | 免费 / 无需密钥 | `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 查找常见弱点枚举详细信息 | 免费 / 无需密钥 | `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` | 查询 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` | 查询 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 安全公告 | `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 密钥按优先级组织——首先获取第一层密钥,以免费工具获得最大覆盖率,然后根据需要逐步添加第二层和第三层。

第一层:高优先级(免费、即时访问、最大覆盖)

第二层:推荐(免费账户,显著价值)

第三层:可选(扩展情报)

⚡ 零密钥启动: 八个工具无需任何 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.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,97.5% EPSS 概率,已确认在 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(3 个关键 CVE,包括 SQL 注入),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评为100%恶意,有4,832份滥用报告。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` 工具通过加权四个独立信号生成一个 **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,分数被限制为 ≥ 76,无论 CVSS/EPSS 如何。(一个低 CVSS 和低 EPSS 的 KEV CVE 仍然返回 CRITICAL / 76。)
  • CVSS 被视为严重性信号,而非利用可能性信号(根据 Allodi & Massacci 2014);EPSS 和 KEV 携带利用信号。
  • 可通过 triage_cve(depth="deep") 获得实验性的 SSVC v2 门控决策(CISA 部署者模型 → Act / Attend / Track* / Track),作为 0–100 数字的定性、可解释的替代方案。

为什么是这些权重?

EPSS 获得最高权重(35%),因为它是实际利用的唯一最佳预测器——远优于单独的 CVSS。一个 CVSS 10.0 但 EPSS 0.01 的漏洞在理论上危险但实际上不太可能被利用。KEV 为 30% 是地面真相:确认的利用,而非预测。CVSS 为 20% 捕获了新 CVE 的严重性上下文(这些 CVE 的 EPSS 数据不足)。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 以在 HOST:PORT(默认 ,无状态)上提供可流式 HTTP,而非 stdio。附带一个 。

🌐 数据源


🧪 运行测试```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 炸弹攻击(十亿笑攻击、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 未授权```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容器零安装部署
  • 可流式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 构建 · 柏林,德国
将安全情报转化为对话。

下载工具
环境变量功能获取方式免费层限制必需?
NVD_API_KEYNVD 查询速度提升10倍(每30秒50次请求 vs 5次)在 nvd.nist.gov 上申请每30秒50次请求可选但强烈推荐
GITHUB_TOKENGitHub 安全公告搜索 + 漏洞 PoC 搜索在 github.com/settings/tokens 创建 PAT每小时5,000次请求可选(无则60次/小时)
环境变量功能获取方式免费层限制必需?
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 工具必需
环境变量功能获取方式免费层限制必需?
URLSCAN_KEYURL 扫描和网站分析在 urlscan.io 注册每天5,000次公开扫描可选
CIRCL_PDNS_USERCIRCL 被动 DNS 查询在 circl.lu 申请访问仅合作伙伴访问可选
CIRCL_PDNS_PASSCIRCL 被动 DNS 认证随 CIRCL 注册提供仅合作伙伴访问可选
组件权重捕获内容
CVSS v3.1 基础分数20%理论上最坏情况的严重性
EPSS 概率35%未来30天内被利用的统计可能性
CISA KEV 状态30%确认在野外的活跃利用
PoC 可用性15%公开的漏洞利用代码降低了攻击者的门槛
得分标签建议操作
0 – 25LOW计划在下一个维护窗口进行
26 – 50MEDIUM按 SLA 在 30 天内修补
51 – 75HIGH在 7 天内修补;上报给团队负责人
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 采样攻击向量);新的出站路径通过 scheme/主机白名单控制。
  • #源提供的数据认证速率限制(免费)
    1NVDCVE 详情、CVSS、CWEs、CPEsapiKey 标头(可选)5 请求/30秒(有密钥 50)
    2EPSS利用概率和百分位数无1,000 请求/分钟
    3CISA KEV活跃利用的 CVE 目录无静态文件
    4OSV.dev开源包漏洞无无公布限制
    5GitHub 公告GHSA 公告、补丁、受影响版本Bearer 令牌60/小时(有 PAT 5,000)
    6MITRE ATT&CKTTPs、技术、缓解措施无无公布限制
    7AbuseIPDBIP 滥用置信度、报告、ISP、地理位置Key 标头1,000 次检查/天
    8GreyNoiseIP 噪音/扫描活动、分类key 标头50 次查询/周
    9Shodan开放端口、服务、横幅、CVEkey 查询参数基本查询
    10VirusTotal多引擎扫描结果、信誉x-apikey 标头500/天, 4/分钟
    11MalwareBazaar恶意软件样本、哈希、签名Auth-Key 标头公平使用
    12ThreatFox与恶意软件家族相关的 IOCAuth-Key 标头公平使用
    13Ransomwhere勒索软件 BTC 地址和交易无无公布限制
    14URLScan.ioURL 扫描、截图、DOMAPI-Key 标头5,000 次公共扫描/天
    15CIRCL PDNS历史被动 DNS 记录HTTP 基本认证合作伙伴访问
    16GitHub 代码搜索漏洞利用 PoC 仓库搜索Bearer 令牌与 GHSA 限制共享
    17Exploit-DB公共漏洞利用数据库 CSV无无公布限制
    18Nuclei 模板社区检测模板无无公布限制
    19MSRC微软安全公告无无公布限制
    20Red Hat 安全Red Hat CVE 公告无无公布限制
    21Ubuntu 安全Ubuntu CVE 追踪器无无公布限制
    22VulnCheck NVD++NVD 模式 CVE 记录(透明 NVD 回退)Bearer 令牌(免费社区)根据 VulnCheck 社区层级
    23CIRCL hashlookup已知良好文件元数据(NSRL 等)、hashlookup:trust无尽力而为
    24HIBP Pwned Passwords通过 k-匿名范围 API 的泄露密码计数无无硬性限制