mcpField
V
vuln-triage-mcp

vuln-triage-mcp

本地服务
github.com/kimmawla安全01 周前更新

关于 vuln-triage-mcp

vuln-triage-mcp 是用于漏洞排优先级的 MCP 服务,面向需要决定先修复哪些漏洞的 AI Agent。它结合 CVSS、FIRST EPSS 和 CISA KEV 信息,并说明评分依据及数据缺失情况。

主要功能

  1. 01查询 CVE 与 GHSA 漏洞信息
  2. 02查找软件包受影响漏洞
  3. 03获取 EPSS 利用概率评分
  4. 04检查 CISA KEV 已知利用记录
  5. 05综合评分并说明优先级依据

适用场景

  1. 01比较多个漏洞并确定修复顺序
  2. 02查询软件包版本受影响的漏洞
  3. 03检查漏洞是否已在野外利用

MCP 相关

它向 MCP 客户端提供漏洞查询、软件包漏洞查找、EPSS 与 KEV 检查及漏洞分级工具。数据来自 OSV.dev、FIRST EPSS 和 CISA KEV。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"kimmawla-vuln-triage": {
"command": "uvx",
"args": [
"vuln-triage-mcp"
]
}
}
}
启动命令uvx vuln-triage-mcp

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
pypivuln-triage-mcp0.1.0

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

vuln-triage-mcp

使用 OSV.dev、FIRST EPSS 和 CISA KEV,告知你的 AI Agent 应该优先修复哪些漏洞。

PyPI version Python 3.12+ License: MIT Tests

为什么要开发这个项目

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_vulnerabilityvuln_id查询单个 CVE/GHSA 的原始公告详情用户需要确定优先级 -> triage_vulnerability
find_vulns_for_packagename, ecosystem, version=""“软件包 X(版本 Y)有哪些漏洞”用户已经提供了 ID
get_epss_scorecve_id仅查询利用概率用户需要总体优先级 -> triage_vulnerability
check_known_exploitedcve_id“这个漏洞是否正在被实际利用”(CISA KEV)同上
triage_vulnerabilityvuln_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

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。