mcpField
E
endoflife.ai

endoflife.ai

已认证精选远程服务
endoflife.ai开发工具01 周前更新

关于 endoflife.ai

endoflife.ai 是面向开发和运维团队的只读 MCP 服务,用于检查软件支持周期和终止生命周期风险。它整合版本状态、风险评分、技术栈与 SBOM 检查及安全信息源,并在结果中附上来源 URL。

主要功能

  1. 01检查版本支持状态
  2. 02评估终止生命周期风险
  3. 03扫描技术栈和 SBOM
  4. 04查看产品生命周期历史
  5. 05检查 KEV 和设备信息源
  6. 06查找升级路径及即将到期产品

适用场景

  1. 01审计技术栈中的依赖支持情况
  2. 02评估 SBOM 中的生命周期风险
  3. 03在产品停止支持前规划升级
  4. 04检查某产品的 KEV 暴露情况

MCP 相关

通过 Streamable HTTP 向 MCP 客户端提供只读生命周期工具、资源和提示词。工具查询 endoflife.ai API 与已发布的信息源,结果包含来源 URL。

配置

远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。

服务地址https://mcp.endoflife.ai
一键复制安装命令
Claude CodeTerminal
Cursor.cursor/mcp.json
VS Code.vscode/mcp.json
Claude Desktopclaude_desktop_config.json
Windsurf~/.codeium/windsurf/mcp_config.json

命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。

全部服务地址
Streamable HTTPhttps://mcp.endoflife.ai需要授权

工具

5
参数类型必填说明
productstring是产品 slug 或名称,例如:"postgresql"、"nodejs"、"ubuntu"。
versionstring是版本/周期,例如:"14"、"18"、"20.04"。

详细介绍

endoflife.ai — MCP 服务

Node.js EOL 状态 EOL 数据:endoflife.ai

通过 Model Context Protocol(MCP,Streamable HTTP 传输)向 AI Agent 提供 endoflife.ai 的生命周期情报。这是一个无依赖的 Cloudflare Worker,封装了公开的 api.endoflife.ai/v1 端点和网站发布的 feed——不重复存储数据,每个回答都附带来源 URL。

当前版本:1.4.0(位于 src/index.js 的 SERVER_INFO.version、server.json、 package.json、Dockerfile 的 ARG VERSION,以及网站的 endoflife/.well-known/mcp/server-card.json 中——请确保它们一致;注册表和 Glama 会读取 server.json)。

1.4.0:check_sbom 是 API 的 POST /v1/sbom 的轻量代理(所有入口共用一个解析器;版本保留其发行系列,例如 python 3.12、ubuntu 20.04)。 超过层级上限时,会返回已评分的子集以及 limit_note 和 not_scored_count;scan_stack 会对该层级允许的前 N 个项目评分,并将其余项目列在 not_checked 中。在 1.4.0 之前,check_sbom 会将所有版本截断为主版本号,而包含超过 5 个匹配组件的无密钥 SBOM 则不会返回任何结果。

工具(全部为只读)

工具功能数据来源
check_eol产品 X 的版本 Y 是否已终止生命周期?GET /v1/status/:slug/:version
get_risk_scoreEOL 风险评分(0–100)+ 因素明细GET /v1/score/:slug[/:version]
scan_stack一次性评估整个技术栈POST /v1/batch
list_products搜索 700 多个受追踪产品 → 解析 slugGET /v1/products
get_product_lifecycle某个产品的完整版本历史和日期GET /v1/product/:slug
get_kev_exposure归属于某个产品的所有 CISA KEV 条目(添加日期、截止日期、原文所述的必要操作)+ 已遭利用和无法修补的条目endoflife.ai/kev-products.json、exploited-and-unpatchable.json
get_upcoming_eol接下来 N 天内即将终止生命周期的所有项目(整个目录或指定产品列表)endoflife.ai/scanner-db.json
get_edge_device_statusEOS Edge Device feed,包含 BOD 26-02 状态,可按平台/状态/型号筛选endoflife.ai/eos-edge-devices.json
get_upgrade_path支持的目标版本、网站建议、供应商声明的后续版本GET /v1/product/:slug、checker-db.json、edge feed
check_sbomCycloneDX / SPDX JSON → 按包 URL 解析组件(精确匹配、purl-map.json);无 purl 时按名称解析 → 评分数量不超过层级上限,其余计入说明;未匹配项会附带原因列出,绝不猜测POST /v1/sbom

每个工具都声明了 annotations(readOnlyHint、idempotentHint)和宽松的 outputSchema;结果以 JSON 文本和 structuredContent 两种形式返回。查询未命中时会返回“你是否想找”的 slug 建议(基于实时产品列表进行前缀/子串/编辑距离 ≤ 2 匹配)。

资源(resources/list / resources/read):llms.txt、EOS Edge Device feed、已遭利用和无法修补条目、按产品划分的 KEV、edge 变更日志。

提示词(prompts/list / prompts/get):audit_stack、eol_calendar、 edge_device_review。

端点:POST /(JSON-RPC)、GET /(信息页)、GET /health(存活状态 JSON)、 GET /.well-known/mcp/server-card.json(发现卡片)。

使用遥测

配置 USAGE Analytics Engine 绑定(见 wrangler.toml,数据集 endoflife_mcp_usage)后,每次方法/工具调用都会写入一个数据点:工具名称、 客户端 user agent、成功/错误、有密钥/匿名、延迟(毫秒)。不记录请求正文。可通过 Cloudflare Analytics Engine SQL API 查询,例如:

SELECT blob1 AS tool, count() AS calls, sum(_sample_interval) AS weighted
FROM endoflife_mcp_usage WHERE timestamp > NOW() - INTERVAL '7' DAY
GROUP BY tool ORDER BY calls DESC

该绑定为可选项;未配置时,代码不会执行任何操作。

部署

生产环境部署通过 GitHub Actions 执行,不要在本地运行 wrangler:

gh workflow run mcp-server-deploy.yml

(.github/workflows/mcp-server-deploy.yml,使用固定版本的 wrangler;需要设置仓库机密 CLOUDFLARE_API_TOKEN / CLOUDFLARE_ACCOUNT_ID。)本地仍可使用 wrangler dev 进行开发;默认环境和 production 环境都声明了 API 服务绑定和 USAGE 数据集。

自定义域名(mcp.endoflife.ai)

wrangler.toml 中的 route 要求 mcp.endoflife.ai 通过 Cloudflare 解析: 添加一个 AAAA 记录,名称为 mcp,IPv6 地址为 100::,并启用代理。此记录已配置。

部署前测试

Node 测试框架会针对实时 API 和数据源测试每个方法(该模块无需修改即可在 Node 中运行,只需设置 env.API = { fetch }):

node scratch/mcp_test.mjs   # see the session scratchpad; 22 RPC calls, expects 0 failures

离线单元测试(模拟 fetch,不访问网络):在 mcp-server/ 中运行 npm test (node --test test/)。

作为容器运行(Red Hat UBI)

server.mjs 在普通 Node.js 进程中运行与 mcp.endoflife.ai 相同的处理程序;Dockerfile 则基于 registry.access.redhat.com/ubi9/nodejs-22-minimal 打包该程序,用于集群部署(OpenShift AI MCP 目录所需的形式)。无需构建步骤,也没有依赖项;容器通过 HTTPS 与 https://api.endoflife.ai 通信,并以权限受限的 UBI 用户(uid 1001)运行。

docker build -t endoflife-mcp mcp-server/
docker run --rm -p 8080:8080 endoflife-mcp
curl -s localhost:8080/health

端点与 Worker 自身的端点相同:POST /(Streamable HTTP JSON-RPC)、GET /health(就绪状态)、GET /.well-known/mcp/server-card.json。设置 ENDOFLIFE_API_KEY(docker run -e ENDOFLIFE_API_KEY=...),服务器便会在每次未携带自身密钥的调用中,将其作为 X-API-Key 发送。从 2026 年 11 月 16 日 00:00 UTC 起,自托管服务器需要设置该密钥,届时 API 将不再响应不带密钥的数据请求;只有 mcp.endoflife.ai 上托管的端点仍无需密钥。访问 https://endoflife.ai/api#free-key 可立即通过邮件获取免费密钥(每天 150 次请求,无有效期限制;更高用量需使用付费密钥)。.github/workflows/rhel-validation.yml 已在 RHEL 9 和 10 上通过 Node 20 和 22 验证(证据见 docs/company/redhat-validation-evidence.md)。

从 MCP 客户端连接

Claude Desktop / Cursor / VS Code(mcpServers):

{
  "mcpServers": {
    "endoflife": { "command": "npx", "args": ["mcp-remote", "https://mcp.endoflife.ai"] }
  }
}

支持原生远程 MCP 的客户端可直接使用此 URL:

{ "mcpServers": { "endoflife": { "url": "https://mcp.endoflife.ai" } } }

无需客户端即可测试

# tools/list
curl -s https://mcp.endoflife.ai -X POST -H 'Content-Type: application/json' \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}' | jq

# KEV exposure for a product
curl -s https://mcp.endoflife.ai -X POST -H 'Content-Type: application/json' \
  -d '{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{"name":"get_kev_exposure","arguments":{"product":"ivanti-connect-secure"}}}' | jq

# health + discovery card
curl -s https://mcp.endoflife.ai/health | jq
curl -s https://mcp.endoflife.ai/.well-known/mcp/server-card.json | jq

身份验证与套餐

通过托管端点 mcp.endoflife.ai 进行个人使用和评估时,读取工具无需密钥(每个 Agent 每天可请求 200 次,每次调用最多 5 个组件)。直接调用 API 或自行运行此服务器时,仅在 2026 年 11 月 16 日 00:00 UTC 之前无需密钥(匿名套餐:每天 50 次请求,每次 SBOM 或批量调用最多 3 个组件);此后,每个数据请求都需要密钥(在自托管服务器上设置 ENDOFLIFE_API_KEY;访问 https://endoflife.ai/api#free-key 获取免费密钥)。在公司工具中运行、检查库存或按计划调用的 Agent 属于生产用途,应使用付费密钥:Starter(每月 89 美元,每天 10,000 次请求,每次调用最多 25 个组件)或 Pro(每月 199 美元,不限每日请求次数,每次调用最多 50 个组件);在 https://endoflife.ai/api?utm_source=mcp#get-key 结账时即可获取。将密钥放入 X-API-Key 请求头;Worker 会将其直接传递给 api.endoflife.ai。

备注

  • 同一区域陷阱:api.endoflife.ai 是此区域中的 Worker;直接对其调用普通 fetch() 会访问源站并失败。在生产环境中必须使用 API 服务绑定。
  • 静态数据源从站点源站获取,并设置 cf.cacheTtl = 600,同时在隔离环境中缓存 10 分钟。
  • **按客户端限流:**依赖上游 API 的限流机制。如果 MCP 流量增长,请在调用上游之前添加一个以 CF-Connecting-IP 为键的 KV 限流器。
  • 发现卡片也通过主站提供,地址为 https://endoflife.ai/.well-known/mcp/server-card.json。

评论

支持 Markdown

第一次接触 MCP?

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

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