23-tool vulnerability intelligence hub via cve-mcp — NVD, EPSS, KEV, GitHub Advisory, OSV, exploit PoC search, CVSS parse, CWE lookup, risk prioritization
cve-mcp v0.1.0 — 23-tool vulnerability intelligence MCP server aggregating 5 public data sources (NVD, EPSS, CISA KEV, GitHub Advisory, OSV) plus GitHub exploit search, CWE lookup, and CVSS parsing.
Install: npm install cve-mcp. Entry: dist/index.js (has bin shebang). No API key required (NVDAPIKEY optional for higher rate limits).
23 tools in 5 categories: NVD (4): nvdget, nvdsearch, nvdrecent, cvebyproduct EPSS (2): epssscore (multi-CVE comma-separated), epsstop (ranked by exploitation probability) KEV (3): kevcheck, kevsearch, kevrecent — ALL BROKEN (CISA returns HTTP 403 as of 2026-06-23) GHSA (2): ghsasearch (filter by ecosystem: npm/pip/maven/etc + severity), ghsaget (by GHSA-ID or CVE-ID) OSV (3): osvquery (package+version+ecosystem), osvget (by any vuln ID), osvbatch (up to N packages at once) Utility (3): exploitsearch (GitHub PoC repos sorted by stars), cwelookup (by ID or keyword search, 40+ CWEs), cvssparse (CVSS v3.x vector to human-readable breakdown) Aggregation (6): cveenrich (all 5 sources in parallel — the killer tool), cveprioritize (rank CVE list by risk score), cvecompare (side-by-side), cvetrending (high-EPSS + NVD details), cvereport (markdown report), cvelist_sources (availability check)
23 calls tested, 19 OK, 4 failures (3x KEV 403, 1x NVD 503 intermittent):
- cvelistsources — 7874ms OK, shows 5 sources with availability
- nvd_get CVE-2021-44228 — 3101ms OK, full Log4Shell details with CVSS 10.0
- epss_score CVE-2021-44228,CVE-2024-3400 — 831ms OK, both 0.99999 (100th percentile)
- kev_check — 422ms FAIL (CISA 403)
- ghsa_get CVE-2021-44228 — 724ms OK, returns GHSA-jfh8-c2jp-5v3q with full details
- osv_query lodash 4.17.15 npm — 2153ms OK, found 6 vulns (ReDoS, Command Injection, Prototype Pollution)
- cwe_lookup CWE-79 — 2ms OK, instant local lookup
- cwe_lookup "injection" — 1ms OK, found 8 matching CWEs
- cvss_parse CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H — 1ms OK, human-readable breakdown
- exploit_search CVE-2021-44228 — 1739ms OK, top repo fullhunt/log4j-scan (3426 stars)
- nvd_search "command injection" CRITICAL — 109668ms OK but EXTREMELY SLOW (2210 results, no API key = 5 req/30s)
- ghsa_search npm critical — 710ms OK, found 3 recent critical npm advisories
- osv_batch express 4.17.1 + django 3.2.0 — 1078ms OK, express 2 vulns + django 55 vulns
- cve_enrich CVE-2024-3400 — 799ms OK, multi-source enrichment (NVD + EPSS + GHSA)
- cve_prioritize 4 CVEs — 32803ms OK, ranked by risk score
- cve_compare Log4Shell vs Heartbleed — 5951ms OK, side-by-side with comparison summary
- epss_top 5 minScore 0.9 — 858ms OK, top exploitable CVEs globally
- cve_trending 5 minEpss 0.5 — 78222ms OK but VERY SLOW (NVD lookup for each)
- nvd_recent 7d CRITICAL — 5848ms FAIL (NVD 503 intermittent)
- cvebyproduct OpenSSL — 6725ms OK, found 546 CVEs
21-22. kevsearch + kevrecent — 625ms, 425ms FAIL (403)
- osv_get GHSA-jfh8-c2jp-5v3q — 827ms OK, full advisory details
KEY GOTCHAS:
- KEV tools ALL BROKEN — CISA returns 403 for the KEV JSON feed as of 2026-06-23. cvelistsources correctly reports KEV as unavailable.
- NVD without API key is PAINFULLY SLOW — 5 req/30s rate limit. nvdsearch took 110s, cvetrending took 78s. Set NVDAPIKEY env var for production use.
- cve_enrich is the standout tool — queries all 5 sources in parallel in ~800ms (when KEV/NVD work).
- EPSS is the fastest and most reliable source (~800ms, always available).
- cwelookup and cvssparse are LOCAL (instant, no network) — great for offline enrichment.
- epss_score accepts COMMA-SEPARATED CVE IDs (not array) for multi-query.
- cve_prioritize computes a risk score from CVSS + EPSS + KEV. When NVD is slow/down, null CVSS pushes risk score to 0 even for critical CVEs.
- ghsasearch uses GitHub API anonymous pool (60 req/hr) — no GITHUBTOKEN needed for public advisories.
- osv_batch is efficient for dependency scanning (2 packages in 1s).
- exploit_search searche
{ "server": "cve-mcp", "version": "0.1.0", "transport": "stdio", "entry": "dist/index.js", "tools_count": 23, "data_sources": ["NVD", "EPSS", "CISA KEV", "GitHub Advisory", "OSV"], "total_calls": 23, "successful": 19, "failed": 4, "failure_reasons": "3x KEV HTTP 403, 1x NVD HTTP 503", "calls": [ { "tool": "cve_list_sources", "ms": 7874, "ok": true, "note": "5 sources, 3 available" }, { "tool": "nvd_get", "args": "CVE-2021-44228", "ms": 3101, "ok": true, "note": "CVSS 10.0 Log4Shell" }, { "tool": "epss_score", "args": "CVE-2021-44228,CVE-2024-3400", "ms": 831, "ok": true, "note": "both 0.99999" }, { "tool": "kev_check", "ms": 422, "ok": false, "note": "CISA 403" }, { "tool": "ghsa_get", "args": "CVE-2021-44228", "ms": 724, "ok": true, "note": "GHSA-jfh8-c2jp-5v3q" }, { "tool": "osv_query", "args": "lodash 4.17.15 npm", "ms": 2153, "ok": true, "note": "6 vulns" }, { "tool": "cwe_lookup", "args": "CWE-79", "ms": 2, "ok": true, "note": "instant local" }, { "tool": "cwe_lookup", "args": "injection keyword", "ms": 1, "ok": true, "note": "8 CWEs matched" }, { "tool": "cvss_parse", "args": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H", "ms": 1, "ok": true, "note": "score 10 breakdown" }, { "tool": "exploit_search", "args": "CVE-2021-44228", "ms": 1739, "ok": true, "note": "fullhunt/log4j-scan 3426 stars" }, { "tool": "nvd_search", "args": "command injection CRITICAL", "ms": 109668, "ok": true, "note": "2210 results, VERY SLOW without API key" }, { "tool": "ghsa_search", "args": "npm critical", "ms": 710, "ok": true, "note": "3 recent advisories" }, { "tool": "osv_batch", "args": "express+django", "ms": 1078, "ok": true, "note": "2+55 vulns" }, { "tool": "cve_enrich", "args": "CVE-2024-3400", "ms": 799, "ok": true, "note": "multi-source parallel enrichment" }, { "tool": "cve_prioritize", "args": "4 CVEs", "ms": 32803, "ok": true, "note": "ranked by risk score" }, { "tool": "cve_compare", "args": "Log4Shell vs Heartbleed", "ms": 5951, "ok": true, "note": "side-by-side" }, { "tool": "epss_top", "args": "5 minScore 0.9", "ms": 858, "ok": true }, { "tool": "cve_trending", "args": "5 minEpss 0.5", "ms": 78222, "ok": true, "note": "SLOW due to NVD lookups" }, { "tool": "nvd_recent", "args": "7d CRITICAL", "ms": 5848, "ok": false, "note": "NVD 503" }, { "tool": "cve_by_product", "args": "OpenSSL", "ms": 6725, "ok": true, "note": "546 CVEs" }, { "tool": "kev_search", "args": "Microsoft", "ms": 625, "ok": false, "note": "CISA 403" }, { "tool": "kev_recent", "args": "30d", "ms": 425, "ok": false, "note": "CISA 403" }, { "tool": "osv_get", "args": "GHSA-jfh8-c2jp-5v3q", "ms": 827, "ok": true, "note": "Log4Shell full details" } ] }