Skip to content

endoflife.ai — Software Lifecycle Intelligence

by endoflife-ai · remote · no sign-in to list tools · v1.4.0 · published by GitHub user endoflife-ai

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

Changes · 3

10 tools: 3 change things and 7 only read.

Scanned Oct 21, 2026

No check matched anything in the tool definitions. No finding is not a safety guarantee. How the checks work.

claude mcp add --transport http endoflife https://mcp.endoflife.ai

Tools

Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.

10 tools

Changes things 3Claude Code: ask
  • check_eolCheck whether a specific version of a software product is end-of-life (EOL).No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote 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.

    Annotations the server declares

    • title: Check end-of-life status
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • check_sbomAudit a CycloneDX or SPDX JSON software bill of materials.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • title: Check an SBOM
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • scan_stackAudit a whole stack at once.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • title: Scan a stack
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
Only reads 7Claude Code: allow
  • get_edge_device_statusQuery 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 CI…No findings

    Why it is in this group

    • The name "get_edge_device_status" says "get": a word for reading.
    Description, as the server wrote it
    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?".

    Annotations the server declares

    • title: EOS Edge Device status
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • get_kev_exposureThe 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…No findings

    Why it is in this group

    • The name "get_kev_exposure" says "get": a word for reading.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • title: CISA KEV exposure
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • get_product_lifecycleGet the full version history for one product: every tracked version/cycle with its release date, EOL date, support status, and EOL Risk Score.No findings

    Why it is in this group

    • The name "get_product_lifecycle" says "get": a word for reading.
    Description, as the server wrote it
    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".

    Annotations the server declares

    • title: Full lifecycle table
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • get_risk_scoreGet 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).No findings

    Why it is in this group

    • The name "get_risk_score" says "get": a word for reading.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • title: EOL Risk Score
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • get_upcoming_eolWhat reaches end-of-life soon.No findings

    Why it is in this group

    • The name "get_upcoming_eol" says "get": a word for reading.
    Description, as the server wrote it
    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?".

    Annotations the server declares

    • title: Upcoming end-of-life calendar
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • get_upgrade_pathWhere 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 t…No findings

    Why it is in this group

    • The name "get_upgrade_path" says "get": a word for reading.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • title: Upgrade path
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • list_productsList or search the 700+ products endoflife.ai tracks.No findings

    Why it is in this group

    • The name "list_products" says "list": a word for reading.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • title: Find a product slug
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false

This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.

Install

Pinned to version 1.4.0. Values in angle brackets are yours to fill in.

claude mcp add --transport http endoflife https://mcp.endoflife.ai

Run in a terminal.

Claude Code permissions

Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.

.claude/settings.json
{
  "permissions": {
    "allow": [
      "mcp__endoflife__get_risk_score",
      "mcp__endoflife__list_products",
      "mcp__endoflife__get_product_lifecycle",
      "mcp__endoflife__get_kev_exposure",
      "mcp__endoflife__get_upcoming_eol",
      "mcp__endoflife__get_edge_device_status",
      "mcp__endoflife__get_upgrade_path"
    ],
    "ask": [
      "mcp__endoflife__check_eol",
      "mcp__endoflife__scan_stack",
      "mcp__endoflife__check_sbom"
    ],
    "deny": []
  }
}

Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as endoflife. Review it before you use it.