npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

cve-mcp

v0.2.0

Published

CVE/vulnerability intelligence MCP server — 41 tools, 11 sources: NVD, EPSS, KEV, GHSA, OSV, Shodan, VulnCheck, Vulners, Nuclei, Metasploit, CIRCL, ATT&CK

Readme


问题所在

漏洞情报分散在多个数据库中。NVD 有 CVE 详情。EPSS 告诉你被利用的概率。CISA KEV 跟踪正在被积极利用的漏洞。GitHub Advisory 覆盖开源包。OSV 将漏洞映射到特定的包版本。没有任何单一工具能聚合它们,也没有能与 AI 代理配合使用的。

传统工作流:
  在 NVD 搜索 CVE 详情            →  操作笨重的 Web 界面
  在 EPSS 检查利用风险             →  独立的 API,独立的格式
  查询 CISA KEV 状态               →  手动下载 JSON 源
  搜索 GitHub 安全公告             →  又一个不同的界面
  在 OSV 查询包影响                →  不同的 API,不同的架构
  关联所有数据                     →  复制粘贴到电子表格
  ──────────────────────────────────
  总计:每个 CVE 30 多分钟,批量分类需要更长时间

cve-mcp 通过 Model Context Protocol 为您的 AI 代理提供 23 个工具。代理并行查询所有五个来源,关联数据,计算风险评分,并准确告诉您什么是重要的。

使用 cve-mcp:
  你:"按实际利用风险对这 10 个 CVE 进行优先级排序"

  代理:→ 从 NVD 获取 CVSS 评分
        → 获取每个 CVE 的 EPSS 利用概率
        → 检查 CISA KEV 是否正在被积极利用
        → 交叉引用 GitHub 安全公告查找补丁
        → "3 个是严重级别:CVE-2024-3400(EPSS 97%,在 KEV 中),
           CVE-2023-44487(HTTP/2 快速重置,EPSS 96%),
           CVE-2021-44228(Log4Shell,EPSS 97%,在 KEV 中)。
           以下是补丁和受影响版本……"

有何不同

现有工具给你原始数据。cve-mcp 让你的 AI 代理能够对漏洞进行推理分析。


快速开始

选项 1:npx(无需安装)

npx cve-mcp

选项 2:克隆

git clone https://github.com/badchars/cve-mcp.git
cd cve-mcp
bun install

环境变量(可选)

# 将 NVD 速率限制从 5 提升到每 30 秒 50 个请求
export NVD_API_KEY=your-nvd-api-key

# 启用 GitHub Advisory 搜索(60 → 5000 请求/小时)
export GITHUB_TOKEN=ghp_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

两者都是可选的。服务器在没有它们的情况下也能工作,只是速率限制较低。

连接到您的 AI 代理

# 使用 npx
claude mcp add cve-mcp -- npx cve-mcp

# 使用本地克隆
claude mcp add cve-mcp -- bun run /path/to/cve-mcp/src/index.ts

添加到 ~/Library/Application Support/Claude/claude_desktop_config.json

{
  "mcpServers": {
    "cve-mcp": {
      "command": "npx",
      "args": ["cve-mcp"],
      "env": {
        "NVD_API_KEY": "optional-key",
        "GITHUB_TOKEN": "optional-token"
      }
    }
  }
}

相同的 JSON 配置格式。将命令指向 npx cve-mcp 或您的安装路径。

开始查询

你:"你知道关于 CVE-2024-3400 的什么信息?"

就是这样。代理会处理剩下的事情。


AI 能做什么

事件响应

你:"我们被 CVE-2024-3400 攻击了。给我所有信息。"

代理:→ cve_enrich {cveId: "CVE-2024-3400"}
      → NVD:PAN-OS 命令注入,CVSS 10.0
      → EPSS:97.2% 利用概率
      → KEV:2024-04-12 添加,截止日期 2024-05-01
      → GHSA:无开源安全公告(商业产品)
      → exploit_search:GitHub 上 23 个 PoC 仓库
      → "严重。正在野外被积极利用。
         PAN-OS GlobalProtect,版本 < 10.2.9-h1。
         立即修补。CISA 截止日期:5 月 1 日。"

漏洞优先级排序

你:"对我们扫描出的这些 CVE 进行优先级排序:CVE-2021-44228、CVE-2024-3400、
     CVE-2023-44487、CVE-2024-21762、CVE-2023-4966"

代理:→ cve_prioritize {cves: [...]}
      → 按 CVSS × EPSS × KEV 乘数排序
      → "#1:CVE-2024-3400(风险:19.44,CVSS 10.0,EPSS 97%,KEV)
         #2:CVE-2021-44228(风险:19.40,CVSS 10.0,EPSS 97%,KEV)
         #3:CVE-2023-4966(风险:19.10,CVSS 9.4,EPSS 97%,KEV)
         全部 5 个都在 CISA KEV 中——立即全部修补。"

依赖审计

你:"检查 lodash 4.17.20 和 django 3.2.0 是否有已知漏洞"

代理:→ osv_batch {queries: [
         {package: "lodash", version: "4.17.20", ecosystem: "npm"},
         {package: "django", version: "3.2.0", ecosystem: "PyPI"}
      ]}
      → "lodash 4.17.20:3 个漏洞(原型污染)
         django 3.2.0:12 个漏洞(SQL 注入、XSS)
         升级 lodash 到 4.17.21+,django 到 4.2+"

威胁监控

你:"当前最可能被利用的 CVE 有哪些?"

代理:→ cve_trending {limit: 10, minEpss: 0.9}
      → "按利用概率排名前 10:
         1. CVE-2024-3400 — PAN-OS(EPSS 97.2%,CVSS 10.0,KEV)
         2. CVE-2023-44487 — HTTP/2 Rapid Reset(EPSS 96.5%,CVSS 7.5,KEV)
         ……"

CVSS 深度分析

你:"分解这个 CVSS 向量:CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H"

代理:→ cvss_parse {vector: "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H"}
      → "评分:10.0(严重)
         网络攻击向量,无需权限,无需用户交互。
         范围变更——可以影响其他组件。
         完全攻陷:机密性、完整性和可用性。"

工具参考(23 个工具)

| 工具 | 描述 | |------|------| | nvd_search | 按关键字、严重性、CWE、日期范围搜索 CVE | | nvd_get | 获取完整 CVE 详情(CVSS、CWE、CPE、参考链接) | | nvd_recent | 最近发布/修改的 CVE | | cve_by_product | 按产品名称搜索 CVE(CPE 关键字匹配) |

| 工具 | 描述 | |------|------| | epss_score | 一个或多个 CVE 的 EPSS 利用概率 | | epss_top | 按利用概率排名的顶级 CVE |

| 工具 | 描述 | |------|------| | kev_check | 检查 CVE 是否在 CISA 已知被利用漏洞目录中 | | kev_search | 按供应商、产品或关键字搜索 KEV | | kev_recent | 最近添加的 KEV 条目 |

| 工具 | 描述 | |------|------| | ghsa_search | 按关键字、生态系统、严重性搜索 GitHub 安全公告 | | ghsa_get | 通过 GHSA ID 或 CVE ID 获取公告详情 |

| 工具 | 描述 | |------|------| | osv_query | 查询特定包版本的漏洞 | | osv_get | 通过 OSV/GHSA/CVE ID 获取漏洞详情 | | osv_batch | 批量查询多个包 |

| 工具 | 描述 | |------|------| | exploit_search | 搜索公开的 PoC 漏洞利用(GitHub 仓库) |

| 工具 | 描述 | |------|------| | cwe_lookup | 通过 ID 查找 CWE 弱点或按关键字搜索 |

| 工具 | 描述 | |------|------| | cvss_parse | 解析并解释 CVSS v3.1 向量字符串及评分计算 |

| 工具 | 描述 | |------|------| | cve_enrich | 完整丰富:NVD + EPSS + KEV + GHSA + OSV 并行查询 | | cve_prioritize | 按风险排序 CVE(CVSS × EPSS × KEV 乘数) | | cve_trending | 按利用概率排列的当前热门 CVE | | cve_compare | 两个 CVE 的并排比较 | | cve_list_sources | 列出所有数据来源及其可用性 | | cve_report | 生成 Markdown 漏洞报告 |


数据来源

| 来源 | 认证 | 提供的数据 | |------|------|-----------| | NVD | 可选 NVD_API_KEY | CVE 详情、CVSS 评分、CWE 映射、CPE 受影响产品、参考链接 | | EPSS | 无需 | 利用概率评分(0-1)和百分位排名 | | CISA KEV | 无需 | 已知被利用漏洞及修复截止日期 | | GitHub Advisory | 可选 GITHUB_TOKEN | 开源安全公告、受影响包、严重性 | | OSV | 无需 | 跨 16+ 生态系统的包级漏洞数据 |

风险评分公式

风险评分 = CVSS 基础评分 × EPSS 评分 × KEV 乘数

其中:
  CVSS 基础评分  = 0-10(来自 NVD 的严重性)
  EPSS 评分      = 0-1(来自 FIRST 的利用概率)
  KEV 乘数       = 如果在 CISA KEV 中为 2,否则为 1

这提供了一个实用的风险评分,平衡了严重性(CVSS)、现实世界利用可能性(EPSS)和已知主动利用(KEV)。


架构

src/
├── index.ts                    入口点 + MCP stdio
├── types/
│   └── index.ts                ToolDef、ToolContext、ToolResult、API 类型
├── protocol/
│   ├── tools.ts                23 个工具定义(Zod schemas)
│   └── mcp-server.ts           MCP 服务器 + stdio 传输
├── nvd/
│   ├── index.ts                NVD API v2 — 搜索、获取、最近
│   └── cpe.ts                  产品/CPE 搜索
├── epss/
│   └── index.ts                EPSS — 评分、排名
├── kev/
│   └── index.ts                KEV — 检查、搜索、最近(已缓存)
├── ghsa/
│   └── index.ts                GitHub Advisory — 搜索、获取
├── osv/
│   └── index.ts                OSV — 查询、获取、批量
├── exploit/
│   └── index.ts                通过 GitHub 仓库搜索 PoC
├── cwe/
│   └── index.ts                CWE 数据库(内嵌 40+ 条目)
├── cvss/
│   └── index.ts                CVSS v3.1 解析器 + 评分计算器
├── meta/
│   ├── enrich.ts               完整 CVE 丰富(所有来源)
│   ├── prioritize.ts           基于风险的 CVE 排序
│   ├── trending.ts             按 EPSS 排列的热门 CVE
│   ├── compare.ts              CVE 并排比较
│   └── sources.ts              数据源健康检查
└── utils/
    ├── rate-limiter.ts          基于队列的速率限制器(NVD)
    └── cache.ts                 TTL 缓存(NVD 结果)

设计决策:

  • 情报,而非审计 — 与 cloud-audit-mcpgithub-security-mcp 不同,这是一个数据工具。没有 CheckResult,没有发现累积。每个查询都是独立且无状态的。
  • 并行丰富cve_enrich 通过 Promise.allSettled 调用所有 5 个来源。如果一个来源不可用,其余的仍然返回数据。
  • 共享速率限制器 — 所有 NVD 模块共享一个 RateLimiter 实例(请求间隔 6 秒)以避免 429 错误。
  • KEV 缓存 — 完整的 KEV 目录(约 1200 条,约 200KB)一次性加载并缓存在内存中,TTL 为 1 小时。
  • NVD 结果缓存 — 单个 CVE 查询以 10 分钟 TTL 缓存,避免丰富过程中的冗余 API 调用。
  • 内嵌 CWE 数据库 — 来自 OWASP/MITRE 的 40+ 顶级 CWE 作为静态数据内嵌。无需外部 API。
  • 完整 CVSS 计算器 — 本地实现 CVSS v3.1 基础评分计算算法。解析任何向量字符串并解释每个指标。
  • 2 个依赖@modelcontextprotocol/sdkzod。没有其他。

限制

  • 不使用 NVD_API_KEY 的 NVD API 限制为每 30 秒 5 个请求。生产环境请设置密钥
  • 不使用 GITHUB_TOKEN 的 GitHub Advisory 搜索限制为每小时 60 个请求
  • Exploit 搜索使用 GitHub 仓库搜索,有其自身的速率限制
  • CVSS 解析器仅支持 v3.1(v2 和 v4 向量不被解析,但 NVD 会返回 v2 评分)
  • CWE 数据库为内嵌式(40+ 条目),非完整版(MITRE 完整数据库中有 1000+ 条目)
  • macOS / Linux(Windows 未测试)

MCP 安全套件的一部分

| 项目 | 领域 | 工具 | |------|------|------| | hackbrowser-mcp | 基于浏览器的安全测试 | 39 个工具,Firefox,注入测试 | | cloud-audit-mcp | 云安全(AWS/Azure/GCP) | 38 个工具,60+ 检查 | | github-security-mcp | GitHub 安全态势 | 39 个工具,45 项检查 | | cve-mcp | 漏洞情报 | 23 个工具,5 个来源 |