EOL dates, risk scores, CISA KEV exposure, SBOM audits and edge-device EOS for 500+ products.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Optional endoflife.ai Pro API key for higher limits. Works without one.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Check whether a specific version of a software product is end-of-life (EOL). Returns lifecycle status, the EOL date, days remaining or days past EOL, the latest release, and eol_date_source (where the date comes from: vendor-override, vendor-fetched, vendor-verified, custom, upstream, or discrepancy) with its source URL. Use this for "is X version Y still supported?" questions.
Product slug or name, e.g. "postgresql", "nodejs", "ubuntu".
Version/cycle, e.g. "14", "18", "20.04".
Check whether a specific version of a software product is end-of-life (EOL). Returns lifecycle status, the EOL date, days remaining or days past EOL, the latest release, and eol_date_source (where the date comes from: vendor-override, vendor-fetched, vendor-verified, custom, upstream, or discrepancy) with its source URL. Use this for "is X version Y still supported?" questions.
| Argument | Type | Description |
|---|---|---|
| product* | string | Product slug or name, e.g. "postgresql", "nodejs", "ubuntu". |
| version* | string | Version/cycle, e.g. "14", "18", "20.04". |
{
"type": "object",
"required": [
"product",
"version"
],
"properties": {
"product": {
"type": "string",
"description": "Product slug or name, e.g. \"postgresql\", \"nodejs\", \"ubuntu\"."
},
"version": {
"type": "string",
"description": "Version/cycle, e.g. \"14\", \"18\", \"20.04\"."
}
}
}Audit a CycloneDX or SPDX JSON software bill of materials. Components are mapped to tracked products and scored for EOL risk; unmatched components are listed honestly rather than guessed. Pass the SBOM as a JSON string or object. Versions resolve to their release family (python 3.12, php 7.4, ubuntu 20.04). Without a key up to 5 matched components are scored per call; Starter 25; Pro 50. Larger SBOMs return the scored subset plus a note of how many were not checked.
| Argument | Type | Description |
|---|---|---|
| sbom* | any | The SBOM document (JSON string or object). CycloneDX (bomFormat/components) or SPDX (spdxVersion/packages). |
| max_items | integer | Optional: return at most this many scored components (the tier cap applies first). |
{
"type": "object",
"required": [
"sbom"
],
"properties": {
"sbom": {
"description": "The SBOM document (JSON string or object). CycloneDX (bomFormat/components) or SPDX (spdxVersion/packages)."
},
"max_items": {
"type": "integer",
"description": "Optional: return at most this many scored components (the tier cap applies first)."
}
}
}Query the EOS Edge Device Intelligence feed — firewalls, VPN gateways and appliances, ADCs, router and switch operating systems — with end-of-support status in the vocabulary of CISA BOD 26-02 (eos, within-12-months, scheduled, no-date-announced). Filter by platform or vendor name, by status, or by model/line. Each platform carries its KEV summary, vendor-stated successor and provenance. Use for "which of our edge devices are past support or expire within 12 months?".
| Argument | Type | Description |
|---|---|---|
| model | string | Optional substring matched against the line / model name, e.g. "ISA6000", "7.2", "SMA 100". |
| status | string | Optional status filter. |
| platform | string | Optional substring matched against platform slug, name, vendor or category, e.g. "fortinet", "ivanti", "vpn". |
{
"type": "object",
"required": [],
"properties": {
"model": {
"type": "string",
"description": "Optional substring matched against the line / model name, e.g. \"ISA6000\", \"7.2\", \"SMA 100\"."
},
"status": {
"enum": [
"eos",
"within-12-months",
"scheduled",
"no-date-announced"
],
"type": "string",
"description": "Optional status filter."
},
"platform": {
"type": "string",
"description": "Optional substring matched against platform slug, name, vendor or category, e.g. \"fortinet\", \"ivanti\", \"vpn\"."
}
}
}The exploited-vulnerability record for a product: every CVE CISA lists against it in the Known Exploited Vulnerabilities catalog, with the date added, the federal due date and CISA's required-action text verbatim (the "discontinue use" entries are the ones that matter for end-of-life versions), plus any entries from endoflife.ai's Exploited & Unpatchable feed (exploited CVEs whose affected versions will never receive a fix). Pass an optional version to include its support status alongside.
| Argument | Type | Description |
|---|---|---|
| product* | string | Product slug or name, e.g. "ivanti-connect-secure", "fortios". |
| version | string | Optional version/cycle to check support status for. |
{
"type": "object",
"required": [
"product"
],
"properties": {
"product": {
"type": "string",
"description": "Product slug or name, e.g. \"ivanti-connect-secure\", \"fortios\"."
},
"version": {
"type": "string",
"description": "Optional version/cycle to check support status for."
}
}
}Get the full version history for one product: every tracked version/cycle with its release date, EOL date, support status, and EOL Risk Score. Use for "give me the whole EOL schedule for X".
| Argument | Type | Description |
|---|---|---|
| product* | string | Product slug or name, e.g. "postgresql". |
{
"type": "object",
"required": [
"product"
],
"properties": {
"product": {
"type": "string",
"description": "Product slug or name, e.g. \"postgresql\"."
}
}
}Get the proprietary EOL Risk Score (0-100) for a product version, with the four-factor breakdown (EOL recency, attack surface, CISA KEV exposure, extended support). Omit "version" to score the product's highest-risk (most recently end-of-lifed) release. Use this to quantify how dangerous it is to keep running something.
| Argument | Type | Description |
|---|---|---|
| product* | string | Product slug or name, e.g. "openssl", "python". |
| version | string | Optional version/cycle. Omit for the highest-risk release. |
{
"type": "object",
"required": [
"product"
],
"properties": {
"product": {
"type": "string",
"description": "Product slug or name, e.g. \"openssl\", \"python\"."
},
"version": {
"type": "string",
"description": "Optional version/cycle. Omit for the highest-risk release."
}
}
}What reaches end-of-life soon. Returns every tracked version whose EOL date falls within the next N days (default 90), optionally limited to a list of products, sorted by date. Also lists versions that went EOL within the last "recent_past_days" days when set. Use for "what in our stack expires this quarter?".
| Argument | Type | Description |
|---|---|---|
| days | integer | Look-ahead window in days (default 90, max 730). |
| products | array | Optional product slugs or names to restrict to (max 50). Omit for the whole catalog. |
| recent_past_days | integer | Also include versions that went EOL within this many days in the past (default 0). |
{
"type": "object",
"required": [],
"properties": {
"days": {
"type": "integer",
"description": "Look-ahead window in days (default 90, max 730)."
},
"products": {
"type": "array",
"items": {
"type": "string"
},
"description": "Optional product slugs or names to restrict to (max 50). Omit for the whole catalog."
},
"recent_past_days": {
"type": "integer",
"description": "Also include versions that went EOL within this many days in the past (default 0)."
}
}
}Where to move a product version: the current version's support status and score, the supported releases with the longest remaining support, endoflife.ai's recommended target, and the vendor's stated successor where one is published (edge appliances). Use after check_eol says a version is EOL.
| Argument | Type | Description |
|---|---|---|
| product* | string | Product slug or name. |
| version | string | Optional current version/cycle. |
{
"type": "object",
"required": [
"product"
],
"properties": {
"product": {
"type": "string",
"description": "Product slug or name."
},
"version": {
"type": "string",
"description": "Optional current version/cycle."
}
}
}List or search the 700+ products endoflife.ai tracks. Pass an optional "query" substring to find the canonical slug for a product before calling the other tools (e.g. "postgres" → "postgresql"). Returns matching product slugs.
| Argument | Type | Description |
|---|---|---|
| query | string | Optional case-insensitive substring filter. |
{
"type": "object",
"required": [],
"properties": {
"query": {
"type": "string",
"description": "Optional case-insensitive substring filter."
}
}
}Audit a whole stack at once. Provide a list of products (optionally with versions) — e.g. parsed from a package.json or Dockerfile — and get an EOL Risk Score for each, so you can see what is unsupported and dangerous in one call. For CycloneDX or SPDX documents use check_sbom instead. Without a key: up to 5 items per call; Starter 25; Pro 50. Items beyond the limit are listed as not checked, with a note.
| Argument | Type | Description |
|---|---|---|
| items* | array | List of stack components to score. |
{
"type": "object",
"required": [
"items"
],
"properties": {
"items": {
"type": "array",
"items": {
"type": "object",
"required": [
"product"
],
"properties": {
"product": {
"type": "string",
"description": "Product slug or name."
},
"version": {
"type": "string",
"description": "Optional version/cycle. Omit for highest-risk release."
}
}
},
"description": "List of stack components to score."
}
}
}