手把手搭建本地安全情报工作台:Claude 一键查 CVE
本文手把手教学,15 分钟搭建基于 MCP 协议的安全情报工作台。学完后可让 Claude 直接调用 24 个安全数据源,实现对 CVE 漏洞的一键评估与多源情报聚合,告别在十几个浏览器标签页间来回切换的低效工作流。

凌晨两点的 CVE 告警,你到底要开几个浏览器页面?
团队收到高危 CVE 告警邮件,第一反应通常是打开浏览器——先去 NVD 查 CVSS 分数,再到 CISA KEV 看是否在野生利用目录,接着切 EPSS 看利用概率,然后跑 GitHub 搜 PoC,最后去 VirusTotal 查关联样本。信息拼完,半小时过去了。
如果一天要处理 50 个告警,这活儿根本扛不住。
今天这篇教程,带你用 15 分钟搭建一个安全情报工作台——基于开源项目 cve-mcp-server,利用 MCP(Model Context Protocol)协议让 Claude 直接调用 24 个安全情报源。一个问题问出去,后台自动并行查询所有数据源,返回结构化的风险评估报告。
开 15 个浏览器标签的日子,到此结束。
环境准备
- Python 3.10 或以上(推荐 3.11/3.12)
- 终端(macOS/Linux Terminal 或 Windows PowerShell)
- Claude Desktop 客户端 或 Claude Code CLI(二选一)
- 不需要任何付费服务——8 个核心工具在零 API Key 状态下即可使用
第一步:克隆并安装服务
打开终端,执行以下命令:
bash
git clone https://github.com/mukul975/cve-mcp-server.git
cd cve-mcp-server
## 创建虚拟环境(避免依赖污染全局)
python -m venv venv
source venv/bin/activate # macOS / Linux
## Windows 使用: venv\Scripts\Activate
## 安装项目
pip install -e .
-e 参数表示开发模式安装,修改源代码后无需重新安装即可生效,调试时非常实用。
验证服务能否正常启动:
bash
python -m cve_mcp.server
终端没有报错退出即表示成功(MCP stdio 模式会等待输入,看起来像卡住)。按 Ctrl+C 停止即可。
第二步:配置 Claude Desktop 连接
MCP 协议的核心威力在这里——让 Claude 直接调用你的安全工具。
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": "/你的绝对路径/cve-mcp-server"
}
}
}
必须使用绝对路径。相对路径会因 Claude Desktop 启动位置不同而解析失败。把 ~ 展开成完整的 /Users/你的用户名/cve-mcp-server 或 Windows 下的完整路径。
配置完成后,完全退出 Claude Desktop(macOS 按 Cmd+Q,Windows 按 Alt+F4),再重新打开。输入框旁出现 🔨 锤子图标,说明 MCP 工具已连接。
使用 Claude Code CLI 的用户,一条命令搞定:
bash
claude mcp add cve-mcp -- python -m cve_mcp.server
第三步:零 Key 快速体验
项目设计了渐进式能力,8 个核心工具无需 API Key 即可使用:CVE 查询、EPSS 评分、CISA KEV 检查、CWE 信息、CVSS 解析、MITRE ATT&CK 映射、OSV.dev 依赖扫描、勒索软件查询。
打开 Claude,输入:
"帮我查一下 CVE-2021-44228 的信息。它有没有被主动利用?风险高不高?"
Claude 会在后台自动调用 lookup_cve、get_epss_score 和 check_kev_status,整理出综合结果。
第四步:实战——一键评估 Log4Shell 风险
在 Claude 对话框中输入:
"使用 triage_cve 工具,对 CVE-2021-44228 做一次深度分析,depth 设为 deep。告诉我风险分数、是否需要紧急修复、理由是什么。"
Claude 调用 triage_cve 编排器,后台并行执行:
- 从 NVD 拉取 CVSS 评分和受影响产品列表
- 从 FIRST 获取 EPSS 利用概率
- 检查 CISA KEV 目录是否在列
- 搜索公开 PoC 利用代码
- 计算综合风险分数(CVSS × 20% + EPSS × 35% + KEV × 30% + PoC × 15%)
- depth=deep 时输出 SSVC v2 定性决策
结果示例:
风险评分:97/100(CRITICAL)
- CVSS 3.1: 10.0(远程代码执行,无需认证)
- EPSS 利用概率: 97.5%(历史前 0.01%)
- CISA KEV: ✅ 在列(2021-12-10 收录)
- 公开 PoC: ✅ 300+ 个仓库
建议:24-48 小时内紧急修复
EPSS 占最大权重 35%,因为统计利用概率比理论 CVSS 分数更能反映真实风险。CISA KEV 占 30%——这是野生利用的铁证。KEV 命中存在硬性覆盖:进入 KEV 目录后风险标签永远是 CRITICAL,分数至少 76。
第五步:进阶——加上 NVD API Key 提升查询效率
NVD 免费 API 限制为 30 秒内 5 次请求。批量处理 CVE 时,这个速率会成为瓶颈。注册免费 NVD API Key 后,速率提升至 30 秒 50 次。
项目根目录创建 .env 文件:
bash
echo 'NVD_API_KEY=你的NVD密钥' > .env
更新 Claude Desktop 配置,加上 env 字段:
json
{
"mcpServers": {
"cve-mcp": {
"command": "python",
"args": ["-m", "cve_mcp.server"],
"cwd": "/你的绝对路径/cve-mcp-server",
"env": {
"NVD_API_KEY": "你的NVD密钥"
}
}
}
}
完全退出 Claude Desktop 再重启即生效。
常见问题与踩坑提醒
Q: Claude 输入框没有锤子图标 🔨?
检查 JSON 格式,特别是路径中的斜杠方向(Windows 用 \\ 或正斜杠)。确认使用绝对路径。最后——完全退出再重启 Claude Desktop,仅最小化窗口无效。
Q: NVD 报错 403/503?
NVD 2024 年底升级 API,必须携带 API Key 才能访问。免费版注册等一封邮件即可,拿到后填入 .env。暂时不需要 NVD 时,其他 7 个零 Key 工具不受影响。
Q: 能扫描项目依赖吗?
可以。在 Claude 里说:"扫描这些 Python 依赖:requests==2.28.0, flask==2.2.0, django==3.2.0"——项目通过 OSV.dev 自动比对已知漏洞库并给出升级建议。
Q: Windows 上遇到编码错误?
PowerShell 中先执行:
powershell
$env:PYTHONUTF8 = "1"
$env:PYTHONIOENCODING = "utf-8"
然后启动服务。
总结
回顾完整工作流:
- 克隆并安装 CVE MCP Server
- 配置 Claude Desktop 的 MCP 连接,让 AI 直接调用安全工具
- 零 Key 完成首轮 CVE 查询,体验多源情报聚合
- 用 triage_cve 编排器一键评估 Log4Shell 风险
- 注册 NVD API Key,查询效率提升 10 倍
核心价值很明确:不再需要在 15 个安全情报源之间来回切换。一个问题发出去,后台自动并行查询、关联分析、打分排序,返回经过综合判断的可执行结论。
下一步建议
- 添加 Tier 2 API Key(VirusTotal、Shodan、GreyNoise),解锁 IP 信誉查询和恶意软件分析
- 试试 scan_dependencies 工具,把
requirements.txt或package-lock.json丢给它做安全审计 - 自己扩展工具:项目基于 FastMCP,在
server.py里用@mcp.tool()装饰器注册新工具只需几十行代码——想深入学习 MCP 协议的后端开发者,这是极好的实战素材