logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

mcp-software-lifecycle-tracker

Queries the endoflife.date service to furnish current software deprecation timelines and operational sustainment standing, offering dynamic insights into product maturity and security posture.

Author

mcp-software-lifecycle-tracker logo

ducthinh993

MIT License

Quick Info

GitHub GitHub Stars 3
NPM Weekly Downloads 0
Tools 1
Last Updated 2026-02-19

Tags

endoflifeapiapisserver endoflifeendoflife checksendoflife date

Software Lifecycle Status MCP Endpoint 💡

This Model Context Protocol (MCP) interface allows advanced language models, such as Claude, to interrogate the endoflife.date repository for up-to-the-minute data concerning software retirement dates and ongoing maintenance commitments. This capability ensures AI outputs reflect precise facts about a given tool's operational lifespan and security standing.

EOL Server MCP server

Understanding MCP 🤔

The Model Context Protocol (MCP) establishes a standardized communication layer facilitating integration between sophisticated AI applications (e.g., Claude Desktop) and various external data feeds or operational utilities. It promotes secure, controlled access to external resources by the assistant.

Operational Scope 🚀

The Lifecycle Tracker MCP agent performs the following key functions: - Retrieves official End-of-Life (EOL) milestones and support statuses. - Analyzes specific software builds for known Common Vulnerabilities and Exposures (CVEs). - Delivers comparative analysis between versions and suggests necessary migration steps. - Interprets conversational, non-structured inquiries regarding product longevity. - Manages data retrieval across a diverse catalog of software (e.g., Python environments, Node.js frameworks, Ubuntu releases). - Implements transient data caching for repeated inquiries.

Key Capabilities ✨

Primary Functions

  • Instantaneous EOL date verification
  • Assessment of current version maintenance tier
  • Security exposure evaluation
  • Detailed cross-version comparison matrices
  • Semantic query interpretation
  • Rigorous lifecycle validation checks

Available Procedures

  1. check_version
  2. Fetch EOL deadlines and support tier
  3. Ascertain the most current patch release
  4. Confirm Long-Term Support (LTS) designation
  5. Establish timeline validity

  6. get_all_details (Enhanced!)

  7. Retrieve exhaustive lifecycle documentation
  8. Review complete version progression maps
  9. Determine future support cutoffs
  10. Output validation reports
  11. Compute remaining support duration in days

  12. compare_versions

  13. Contrast active vs. deprecated releases
  14. Offer actionable upgrade guidance
  15. Check interoperability metrics
  16. Gauge migration priority
  17. Confirm viable upgrade pathways

  18. check_cve

  19. Execute vulnerability enumeration scans
  20. Confirm associated support status
  21. Validate security patch applicability
  22. Query vendor maintenance coverage

  23. list_products

  24. Catalog accessible software entities
  25. Support filtered and precise searching
  26. Authenticate product identifiers
  27. Fetch metadata for listed items

Predefined Interaction Models

  1. check_software_status
  2. Confirm version maintenance status
  3. Look up EOL dates
  4. Report current security standing

  5. compare_versions

  6. Scrutinize differences between releases
  7. Generate upgrade suggestions
  8. Assess compatibility risks

  9. analyze_security

  10. Perform detailed vulnerability profiling
  11. Verify active support status
  12. Confirm patch deployment adequacy

  13. natural_language_query

  14. Parse fluid user input
  15. Generate context-aware replies
  16. Intelligently deduce target version specification

  17. validate_version

  18. Verify suggested version choices
  19. Check ongoing support status
  20. Confirm associated security ramifications

Sample Outputs

Version Validation Outcome

{
  "current_date": "2024-02-20T00:00:00.000Z",
  "validations": {
    "current": {
      "version": "1.20",
      "eol_check": {
        "date": "2024-02-06",
        "valid": false,
        "days_remaining": -14,
        "message": "Version 1.20 EOL date 2024-02-06 is invalid, -14 days from now"
      },
      "support": {
        "status": "not supported",
        "lts": "not LTS"
      }
    }
  },
  "recommendation": {
    "needs_update": true,
    "urgency": "critical",
    "message": "Current version needs urgent upgrade - use a supported version"
  }
}

Comprehensive Details Output (New!)

{
  "product": "go",
  "current_date": "2024-02-20T00:00:00.000Z",
  "cycles": [
    {
      "cycle": "1.22",
      "releaseDate": "2024-02-06",
      "eol": "2025-02-06",
      "latest": "1.22.0",
      "validation": {
        "is_valid": true,
        "days_to_eol": 351,
        "is_supported": true,
        "message": "Version 1.22 EOL date 2025-02-06 is valid, +351 days from now"
      }
    }
  ]
}

Illustrative Dialogues 💬

  1. Fundamental Status Query:
Human: Is Python 3.8 maintainable presently?
Claude: Fetching the sustainment profile for Python 3.8.
[Uses check_version tool]
Analysis for Python 3.8:
- Security Patch Cessation: October 2024
- Current Maintenance Level: Only critical security patches apply
Guidance: Strongly advise migrating to Python 3.11 for novel development activities.
  1. Security Posture Examination:
Human: Are there documented security risks with Node.js version 16?
Claude: Initiating security assessment for Node.js 16.
[Uses check_version tool]
[Uses check_cve tool]
Findings:
- Support Timeline: LTS concluded September 2023
- Critical CVEs (Last 6 Months): 2 identified
- Severity Index (CVSS): Ranging 7.5 to 9.8
Guidance: Immediate update to the highest patch in the 16.x series, or transition to Node.js 18 LTS.
  1. Version Comparison Scenario:
Human: Which Ubuntu revision merits installation?
Claude: I will facilitate a comparative review of Ubuntu releases.
[Uses version-comparison prompt]
Evaluation:
- 22.04 LTS: Maintained through 2027, optimal for fresh infrastructure setup
- 20.04 LTS: Supported until 2025, solid for stable, established environments
- 18.04 LTS: Approaching termination, migration planning is mandatory
Guidance: Adopt 22.04 LTS for maximal long-term commitment.

Preliminary Requirements 📋

Prior to deployment, confirm the presence of:

  • Node.js (runtime version 18 or newer)
  • The Claude Desktop application
  • Git version control utility

You can confirm your Node.js installation status via:

node --version  # Expected output: v18.0.0 or greater

Deployment Steps 🛠️

  1. Obtain the source code repository:
git clone https://github.com/ducthinh993/mcp-server-endoflife
cd mcp-server-endoflife
  1. Install necessary packages:
npm install
  1. Compile the project assets:
npm run build
  1. Create a global system link for access:
npm link

Configuration Protocol ⚙️

1. Claude Desktop Setup

Integrate the EOL agent into the Claude Desktop environment:

For Apple macOS systems:

code ~/Library/Application\ Support/Claude/claude_desktop_config.json

For Microsoft Windows systems:

code %APPDATA%\Claude\claude_desktop_config.json

Incorporate the following server definition:

{
  "mcpServers": {
    "eol": {
      "command": "npx",
      "args": ["/path/to/eol-mcp-server/build/index.js"]
    }
  }
}

2. Application Restart

To initialize the new configuration: 1. Ensure Claude Desktop is fully terminated (not merely minimized). 2. Relaunch Claude Desktop. 3. Monitor for the connection indicator (🔌 icon) to confirm the agent is active.

Debugging Guide 🔧

Frequent Obstacles

  1. Endpoint Unreachable
  2. Validate the integrity of the npm link setup.
  3. Scrutinize the configuration JSON syntax for Claude Desktop.
  4. Confirm Node.js installation path correctness.

  5. API Communication Failures

  6. Check external network access to the endoflife.date service.
  7. Confirm the API's expected data schema remains consistent.
  8. Review local network connectivity.

  9. Connection Instability

  10. Execute a full shutdown and restart of Claude Desktop.
  11. Examine application logs for MCP errors: bash # macOS specific log tailing tail -n 20 -f ~/Library/Logs/Claude/mcp*.log

Seeking Assistance

If resolution proves elusive: - Consult the official MCP Documentation - Review the endoflife.date API Reference - Submit a formal issue report on the GitHub project page

Gratitude 🙏

  • Gratitude extended to endoflife.date for furnishing the comprehensive software sustenance data API
  • Appreciation to the originators of the Model Context Protocol specification
  • Thanks to Anthropic for developing Claude Desktop

WIKIPEDIA: XMLHttpRequest (XHR) represents an Application Programming Interface implemented as a JavaScript object designed to facilitate the transmission of HTTP requests from a web browser to a remote web server. Its methods permit a browser-based application to asynchronously dispatch queries to the server post-page-load and subsequently receive retrieved data. XMLHttpRequest forms a fundamental element of the Asynchronous JavaScript and XML (Ajax) programming paradigm. Before Ajax gained traction, server interaction primarily relied on traditional hyperlink navigation and form submissions, which typically necessitated a full page refresh.

== Genesis == The foundational concept underlying XMLHttpRequest was first theorized in 2000 by the development team behind Microsoft Outlook. This idea was subsequently operationalized within the Internet Explorer 5 browser release (1999). However, the initial implementation deviated from the standardized XMLHttpRequest identifier, instead employing constructor identifiers such as ActiveXObject("Msxml2.XMLHTTP") and ActiveXObject("Microsoft.XMLHTTP"). By the introduction of Internet Explorer 7 (2006), universal support for the canonical XMLHttpRequest identifier was achieved across all major browser engines. The XMLHttpRequest identifier is now universally accepted as the standard mechanism across all major web browsers, including Mozilla’s Gecko rendering engine (adopted in 2002), Safari version 1.2 (2004), and Opera version 8.0 (2005).

=== Standardization Efforts === The World Wide Web Consortium (W3C) published the initial Working Draft specification for the XMLHttpRequest object on April 5, 2006. On February 25, 2008, the W3C released the Level 2 specification draft. Level 2 introduced enhancements such as event progress monitoring, support for cross-origin requests, and mechanisms to manage raw byte streams. Towards the conclusion of 2011, the Level 2 features were formally integrated into the primary specification document. As of late 2012, the specification maintenance transitioned to the WHATWG, which upholds a continuously evolving document using Web IDL notation.

== Operational Methodology == The process of dispatching a query using XMLHttpRequest generally involves several sequential programming stages.

Instantiation of an XMLHttpRequest object is achieved by invoking its constructor: Subsequently, the open method must be invoked to define the request method (GET, POST, etc.), specify the targeted resource URI, and select between synchronous or asynchronous execution mode: For asynchronous operations, a callback function must be registered to monitor state transitions: Initiation of the data transfer is performed by calling the send method, optionally including payload data: Processing occurs within the designated event listener. Upon successful receipt of server data, it is typically available in the responseText attribute. When the object completes all processing, its state transitions to 4, signifying the "done" status. Beyond these fundamental steps, XMLHttpRequest offers extensive configuration levers to govern request transmission and response parsing. Custom header fields can be appended to tailor server handling, and data can be transmitted to the server via the argument provided to the send call. The received response data can be immediately parsed from JSON into a native JavaScript object structure, or processed progressively as chunks arrive, foregoing the need to await the full payload completion. Furthermore, the request execution can be prematurely terminated or set with a timeout constraint.

== Inter-Domain Communications ==

During the initial stages of the World Wide Web's evolution, developers observed that it was feasible to exploit cross-origin restrictions to b

See Also

`