
Vuln Triage Mcp
io.github.kimmawla由 GitHub 帳號 kimmawla 發布v0.1.0更新於 Nov 5, 2026
Tells your AI agent which vulnerabilities to fix first, using OSV.dev, FIRST EPSS, and CISA KEV.
概覽
本機 MCP 伺服器,結合 OSV.dev 公告、FIRST EPSS 利用機率與 CISA KEV 已知利用資訊,為漏洞排出修補優先順序。
- 可以做什麼
- 查詢單一 CVE 或 GHSA 編號的原始公告細節
- 依生態系、套件名稱與版本找出受影響的漏洞公告
- 取得 EPSS 利用機率分數,並檢查是否列入 CISA KEV
- 對漏洞進行分級,給出 critical、high、medium、low 或 unknown 等級、分數與推理說明
- 回報部分結果、結果截斷、KEV 快取過期以及缺少的資料來源
- 適用情境
- 適合助理需要回答「先修哪個漏洞」「這個 CVE 是否已被實際利用」等問題的情況,也適合在單看嚴重程度不足以判斷風險時使用。查詢某個套件版本是否有已知漏洞時同樣有用。
- 執行需求
- 以 stdio 方式在本機執行,通常透過 uvx 啟動 PyPI 套件 vuln-triage-mcp。需要 Python 3.12 以上版本,並能連線至 OSV.dev、FIRST EPSS 與 CISA KEV 三個公開 API。不需要 API 金鑰或憑證。
安裝
在 SourceWeft 中
- 開啟 儀表板中的 Vuln Triage Mcp,將其新增到工作區。
- 為需要使用其工具的對話啟用該服務。
Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。
其他 MCP 客戶端
參照 儲存庫 中的啟動說明。
README
vuln-triage-mcp
Tells your AI agent which vulnerabilities to fix first, using OSV.dev, FIRST EPSS, and CISA KEV.
[PyPI version] [Python 3.12+] [License: MIT] [Tests]
Why this exists
Two or three sentences. CVSS alone ranks by severity, not by likelihood of exploitation. This server adds exploit probability (EPSS) and known exploitation (KEV), and shows its reasoning. Example: a CVSS 9.8 nobody exploits ranks below a CVSS 8.8 that is being exploited in the wild.
Quick start
Claude Code
claude mcp add vuln-triage -- uvx vuln-triage-mcp
Claude Desktop / other clients
JSON config snippet using uvx.
Requires: Python 3.12+, no API keys.
Try it
Three example prompts and what to expect:
- "Which is most urgent: CVE-2021-44228, CVE-2023-4863, CVE-2019-10744?"
- "Is lodash 4.17.15 vulnerable? What should I upgrade to?"
- "Is CVE-XXXX actively exploited?"
Tools
How scoring works
- Formula: CVSS (base) x 40 + EPSS x 35 + KEV +25; KEV-listed floors at 80
- Buckets: see the table below
- Missing data: component omitted, named in
reasoning, lowersconfidence - Link to docs/scoring-spec.md
unknown takes precedence over high, medium, and low; it never applies to a KEV-listed vulnerability.
Reliability and limits
- Partial results: if EPSS or KEV fails, the result names the missing source
- Truncation:
truncated,found_countvsreturned_count,ranking_note - Stale KEV cache:
staleandcatalog_fetched_at - Timeouts and retry policy (one line)
- Package queries return at most 50 advisories, sorted by severity
Security
- Advisory text is untrusted third-party content (prompt injection vector):
sanitized, length-capped, returned under
untrusted_text, and flagged to the model in the server instructions - Input validation on all IDs and ecosystems
- No credentials required or stored; read-only calls to three public APIs
- Reporting vulnerabilities in this project: SECURITY.md or email
Evaluation
Golden set: 17 entries (16 CVEs, 1 GHSA) with expected buckets, confidence, and ordering, recorded 10/21/2026.
Result: 17/17 match on the recorded fixtures (uv run pytest tests/test_golden.py), and 17/17 against the live APIs on 10/21/2026 (uv run pytest -m live tests/test_golden.py). EPSS drifts daily, so the live run can diverge over time; re-record the fixtures with uv run python scripts/record_golden_fixtures.py when the golden set or scoring spec changes.
Data sources and attribution
OSV.dev, FIRST EPSS (cite per their usage terms), CISA KEV. Not affiliated with any of them.
Development
uv sync, uv run pytest, running the Inspector, live-test marker.
License
MIT
來源:README.md,提交 9545145
工具
0版本歷史
1- v0.1.0最新Oct 21, 2026
評分
已滿足適用檢查項的 50%
該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。
- 近 30 天內可連通25 分
請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。
- 已宣告認證方式10 分
請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。
- 已列出工具15 分
請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。
- 描述必需15 分
- 圖示10 分
- 文件15 分
- 授權條款10 分