protogrid

Search / io.github.endoflife-ai/endoflife-mcp

endoflife.ai — Software Lifecycle Intelligence

R0· no sign-in

EOL dates, risk scores, CISA KEV exposure, SBOM audits and edge-device EOS for 500+ products.

v1.4.0 · active · repository · website · descriptor JSON · versions

An agent can connect right now, no human step.Remote endpoint, no authentication, reachable on the last probe.
Quality91strong
Trust97of 100
Uptime, 30 days100%
Latency p50197 ms

Connect

8 clients · secrets stay placeholders
{
  "mcpServers": {
    "endoflife-mcp": {
      "type": "http",
      "url": "https://mcp.endoflife.ai",
      "headers": {
        "X-API-Key": "${X_API_KEY}"
      }
    }
  }
}
claude mcp add --transport http endoflife-mcp https://mcp.endoflife.ai --header "X-API-Key: ${X_API_KEY}"
[mcp_servers.endoflife-mcp]
url = "https://mcp.endoflife.ai"
env_http_headers = { "X-API-Key" = "X_API_KEY" }
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "endoflife-mcp": {
      "type": "remote",
      "url": "https://mcp.endoflife.ai",
      "enabled": true,
      "headers": {
        "X-API-Key": "{env:X_API_KEY}"
      }
    }
  }
}
{
  "mcpServers": {
    "endoflife-mcp": {
      "type": "http",
      "url": "https://mcp.endoflife.ai",
      "headers": {
        "X-API-Key": "${X_API_KEY}"
      }
    }
  },
  "deeplink": "cursor://anysphere.cursor-deeplink/mcp/install?name=endoflife-mcp&config=eyJ0eXBlIjoiaHR0cCIsInVybCI6Imh0dHBzOi8vbWNwLmVuZG9mbGlmZS5haSIsImhlYWRlcnMiOnsiWC1BUEktS2V5IjoiJHtYX0FQSV9LRVl9In19"
}
{
  "servers": {
    "endoflife-mcp": {
      "type": "http",
      "url": "https://mcp.endoflife.ai",
      "headers": {
        "X-API-Key": "${X_API_KEY}"
      }
    }
  }
}
{
  "mcpServers": {
    "endoflife-mcp": {
      "httpUrl": "https://mcp.endoflife.ai",
      "headers": {
        "X-API-Key": "${X_API_KEY}"
      }
    }
  }
}
extensions:
  "endoflife-mcp":
    enabled: true
    name: "endoflife-mcp"
    type: streamable_http
    uri: "https://mcp.endoflife.ai"
    headers:
      "X-API-Key": "${X_API_KEY}"
    timeout: 300

Placeholders to fill from your own secret store: ${X_API_KEY}. The registry never accepts secret values.

Quality 91 / 100strong

protocol75 · weight 25
  • warn
    protocol.modernnewest supported version is 2025-11-25; 2026-07-28 not supported, older versions are deprecated until 2027-07-28
  • n/a
    protocol.statelessonly applies to 2026-07-28 servers
  • pass
    protocol.transportstreamable HTTP
  • n/a
    protocol.list_ttlonly applies to 2026-07-28 servers
authorizationn/a · weight 15
  • n/a
    auth.prm, auth.as_metadata, auth.cimdno remote uses OAuth
  • n/a
    auth.secret_in_urlno templated URL
tool hygiene100 · weight 30
  • pass
    tools.descriptionsevery tool has a description
  • pass
    tools.description_lengthdescriptions are concise
  • pass
    tools.schemasevery tool has an object input schema
  • pass
    tools.annotations10 of 10 tools declare readOnlyHint or destructiveHint
  • pass
    tools.directory_hintsevery tool declares readOnlyHint, destructiveHint, idempotentHint and openWorldHint
  • pass
    tools.token_costabout 1,933 tokens to load every tool
  • pass
    tools.api_dumptools are not a one-to-one API dump
stability100 · weight 15
  • pass
    stability.changes3 tool changes in 30 days
  • pass
    stability.rug_pullno tool changed its meaning under the same name
dependenciesn/a · weight 15
  • n/a
    deps.known_vulns, deps.mcp_sdk_version, deps.resolvableno npm or PyPI package

10 tools, about 1,933 tokens to load them all · tool set 016be57e2fa2 · tools last changed 2026-10-18 · checked 2026-10-19 13:05 UTC

Tool changes

  • list_productschangeddescription
    before

    List or search the products endoflife.ai tracks (500+). 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.

    after · 94% of words in common

    List or search the products endoflife.ai tracks (600+). 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.

  • check_sbomchangeddescription, input schema
    before

    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. Free tier scores up to 5 matched components per call; Pro up to 50.

    after · 56% of words in common

    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.

  • scan_stackchangeddescription
    before

    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. Free tier: up to 5 items; Pro: up to 50.

    after · 77% of words in common

    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.

Full history: list_changes · trend: quality JSON.

Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed. How it is computed.

Trust 97 / 100

provenance90
liveness100
freshness100
hygiene100

+repository +namespace-matches-repo +website +reachable +uptime-100% +updated-8d-ago

Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed. How it is computed.

Endpoints

remoteauthreachableuptime 30dp50protocollast ok
https://mcp.endoflife.ai streamable-httpnoneyes100%197 ms2025-11-252026-10-19

Tools (10)

check_eolread-onlyCheck 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.
check_sbomread-onlyAudit 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.
get_edge_device_statusread-onlyQuery 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?".
get_kev_exposureread-onlyThe 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.
get_product_lifecycleread-onlyGet 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".
get_risk_scoreread-onlyGet 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.
get_upcoming_eolread-onlyWhat 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?".
get_upgrade_pathread-onlyWhere 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.
list_productsread-onlyList or search the products endoflife.ai tracks (600+). 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.
scan_stackread-onlyAudit 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.

Schemas: list_tools.

Similar MCP servers

Official server.json
{
  "name": "io.github.endoflife-ai/endoflife-mcp",
  "title": "endoflife.ai — Software Lifecycle Intelligence",
  "$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
  "remotes": [
    {
      "url": "https://mcp.endoflife.ai",
      "type": "streamable-http",
      "headers": [
        {
          "name": "X-API-Key",
          "isSecret": true,
          "description": "Optional endoflife.ai Pro API key for higher limits. Works without one."
        }
      ]
    }
  ],
  "version": "1.4.0",
  "repository": {
    "url": "https://github.com/endoflife-ai/endoflife-mcp",
    "source": "github"
  },
  "websiteUrl": "https://endoflife.ai/mcp",
  "description": "EOL dates, risk scores, CISA KEV exposure, SBOM audits and edge-device EOS for 500+ products."
}