关于 vuln-triage-mcp
vuln-triage-mcp 是用于漏洞排优先级的 MCP 服务,面向需要决定先修复哪些漏洞的 AI Agent。它结合 CVSS、FIRST EPSS 和 CISA KEV 信息,并说明评分依据及数据缺失情况。
主要功能
- 01查询 CVE 与 GHSA 漏洞信息
- 02查找软件包受影响漏洞
- 03获取 EPSS 利用概率评分
- 04检查 CISA KEV 已知利用记录
- 05综合评分并说明优先级依据
适用场景
- 01比较多个漏洞并确定修复顺序
- 02查询软件包版本受影响的漏洞
- 03检查漏洞是否已在野外利用
MCP 相关
它向 MCP 客户端提供漏洞查询、软件包漏洞查找、EPSS 与 KEV 检查及漏洞分级工具。数据来自 OSV.dev、FIRST EPSS 和 CISA KEV。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
vuln-triage-mcp
使用 OSV.dev、FIRST EPSS 和 CISA KEV,告知你的 AI Agent 应该优先修复哪些漏洞。
为什么要开发这个项目
CVSS 单独使用只能按严重程度排序,无法反映漏洞被利用的可能性。 此服务会补充利用概率(EPSS)和已知利用情况(KEV),并展示评估依据。 例如,没人利用的 CVSS 9.8 漏洞,优先级低于正在被实际利用的 CVSS 8.8 漏洞。
快速开始
Claude Code
claude mcp add vuln-triage -- uvx vuln-triage-mcp
Claude Desktop / 其他客户端
使用 uvx 的 JSON 配置片段。
要求:Python 3.12+,无需 API 密钥。
试用
以下是三个示例提示词及预期结果:
- “哪个最紧急:CVE-2021-44228、CVE-2023-4863、CVE-2019-10744?”
- “lodash 4.17.15 是否存在漏洞?我应该升级到哪个版本?”
- “CVE-XXXX 是否正在被利用?”
工具
| 工具 | 参数 | 适用场景 | 优先使用其他工具的场景 |
|---|---|---|---|
| lookup_vulnerability | vuln_id | 查询单个 CVE/GHSA 的原始公告详情 | 用户需要确定优先级 -> triage_vulnerability |
| find_vulns_for_package | name, ecosystem, version="" | “软件包 X(版本 Y)有哪些漏洞” | 用户已经提供了 ID |
| get_epss_score | cve_id | 仅查询利用概率 | 用户需要总体优先级 -> triage_vulnerability |
| check_known_exploited | cve_id | “这个漏洞是否正在被实际利用”(CISA KEV) | 同上 |
| triage_vulnerability | vuln_id | 用户询问“有多紧急 / 我应该先修复什么” | 仅查询原始详情 -> lookup_vulnerability |
评分方式
- 公式:CVSS(基础分)x 40 + EPSS x 35 + KEV +25;列入 KEV 的漏洞最低得分为 80
- 等级:见下表
- 数据缺失:省略相应评分项,在
reasoning中注明,并降低confidence - 文档链接:docs/scoring-spec.md
| 等级 | 判定条件 |
|---|---|
| critical | 得分 >= 80,或列入 CISA KEV(无论置信度如何,最低得分始终为 80) |
| high | 得分 60-79 |
| medium | 得分 40-59 |
| low | 得分 < 40 |
| unknown | 未列入 KEV,且没有 CVSS 严重性等级,或置信度较低(3 个信号中仅有 0-1 个)。数据不足以分类;仍会返回得分,并在 reasoning 中指出缺失的信息。这不代表风险低。 |
unknown 优先于 high、medium 和 low;列入 KEV 的漏洞永远不会被归为此等级。
可靠性与限制
- 部分结果:如果 EPSS 或 KEV 查询失败,结果会注明缺失的数据来源
- 截断:提供
truncated、found_count与returned_count的对比,以及ranking_note - KEV 缓存过期:提供
stale和catalog_fetched_at - 超时与重试策略(简述)
- 软件包查询最多返回 50 条公告,并按严重程度排序
安全
- 公告文本属于不可信的第三方内容(可能包含提示词注入):
会经过清理、限制长度、以
untrusted_text返回,并在服务指令中向模型标明 - 对所有 ID 和生态系统进行输入验证
- 无需或存储任何凭据;仅以只读方式调用三个公共 API
- 如需报告本项目中的漏洞:请查看 SECURITY.md 或发送电子邮件
评估
黄金测试集:17 条记录(16 个 CVE、1 个 GHSA),包含预期等级、置信度和排序,记录于 10/21/2026。
结果:在记录的测试样例中,17/17 项匹配(uv run pytest tests/test_golden.py);在 10/21/2026 对实时 API 的测试中,17/17 项匹配(uv run pytest -m live tests/test_golden.py)。EPSS 每日变动,因此实时测试结果可能随时间出现偏差;黄金测试集或评分规范变更时,请使用 uv run python scripts/record_golden_fixtures.py 重新记录测试样例。
数据来源与归属
OSV.dev、FIRST EPSS(根据其使用条款注明来源)、CISA KEV。与以上任何机构均无关联。
开发
uv sync、uv run pytest、运行 Inspector、live-test 标记。
许可证
MIT
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。