Skip to main content
Glama
ducthinh993

EOL MCP Server

by ducthinh993
README.md
# EOL MCP Server 📅

A Model Context Protocol (MCP) server that enables AI assistants like Claude to check software end-of-life (EOL) dates and support status using the endoflife.date API. This helps AI models provide accurate information about software lifecycle and security status in real-time.

<a href="https://glama.ai/mcp/servers/5392xs0e78"><img width="380" height="200" src="https://glama.ai/mcp/servers/5392xs0e78/badge" alt="EOL Server MCP server" /></a>

## What is MCP? 🤔

The Model Context Protocol (MCP) is a system that lets AI apps, like Claude Desktop, connect to external tools and data sources. It provides a standardized way for AI assistants to work with local services and APIs while keeping the user in control.

## What does this server do? 🚀

The EOL MCP server:
- Checks software end-of-life dates and support status
- Scans for CVE vulnerabilities in software versions
- Provides version comparison and upgrade recommendations
- Supports natural language queries about software lifecycle
- Handles multiple software products (Python, Node.js, Ubuntu, etc.)
- Caches recent queries for quick reference

## Features ✨

### Core Functionality
- Real-time EOL date validation
- Version support status checking
- Security vulnerability analysis
- Comprehensive version comparison
- Natural language query processing
- Detailed lifecycle validation

### Tools
1. `check_version`
   - Get EOL dates and support status
   - Check latest patch versions
   - Verify LTS status
   - Validate support timeline

2. `get_all_details` (New!)
   - Get comprehensive lifecycle details
   - View all version cycles
   - Check support timeline
   - Get validation results
   - Calculate remaining support days

3. `compare_versions`
   - Compare current vs latest versions
   - Get upgrade recommendations
   - Check compatibility
   - Assess upgrade urgency
   - Validate upgrade paths

4. `check_cve`
   - Security vulnerability scanning
   - Support status verification
   - Security patch validation
   - Vendor support checking

5. `list_products`
   - Browse available software
   - Search with filters
   - Verify product names
   - Get product details

### Prompts
1. `check_software_status`
   - Validate version support
   - Check EOL dates
   - Get security status

2. `compare_versions`
   - Analyze version differences
   - Get upgrade recommendations
   - Check compatibility

3. `analyze_security`
   - Security vulnerability analysis
   - Support status check
   - Patch verification

4. `natural_language_query`
   - Process natural language questions
   - Get contextual responses
   - Smart version detection

5. `validate_version`
   - Validate version recommendations
   - Check support status
   - Verify security implications

### Response Examples

#### Version Validation
```json
{
  "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"
  }
}
```

#### All Details Response (New!)
```json
{
  "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"
      }
    }
  ]
}
```

## Example Conversations 💬

1. Basic Version Check:
```
Human: Is Python 3.8 still good to use?
Claude: Let me check the status of Python 3.8.
[Uses check_version tool]
Based on the EOL data, Python 3.8:
- Security support ends: October 2024
- Current status: Security fixes only
Recommendation: Consider upgrading to Python 3.11 for new projects.
```

2. Security Analysis:
```
Human: Any security concerns with Node.js 16?
Claude: I'll analyze the security status of Node.js 16.
[Uses check_version tool]
[Uses check_cve tool]
Found:
- Support Status: LTS until September 2023
- Critical CVEs: 2 in last 6 months
- CVSS Score Range: 7.5-9.8
Recommendation: Update to latest 16.x patch or consider Node.js 18 LTS.
```

3. Version Comparison:
```
Human: Which Ubuntu version should I use?
Claude: I'll help you compare Ubuntu versions.
[Uses version-comparison prompt]
Analysis:
- 22.04 LTS: Supported until 2027, recommended for new deployments
- 20.04 LTS: Supported until 2025, stable and widely used
- 18.04 LTS: Approaching EOL, plan migration
Recommendation: Use 22.04 LTS for best long-term support.
```

## Prerequisites 📋

Before you begin, ensure you have:

- [Node.js](https://nodejs.org/) (v18 or higher)
- [Claude Desktop](https://claude.ai/download) installed
- Git installed

You can verify your Node.js installation by running:
```bash
node --version  # Should show v18.0.0 or higher
```

## Installation 🛠️

1. Clone the repository:
```bash
git clone https://github.com/ducthinh993/mcp-server-endoflife
cd mcp-server-endoflife
```

2. Install dependencies:
```bash
npm install
```

3. Build the project:
```bash
npm run build
```

4. Create a global link:
```bash
npm link
```

## Configuration ⚙️

### 1. Claude Desktop Configuration

Configure Claude Desktop to recognize the EOL MCP server:

#### For macOS:
```bash
code ~/Library/Application\ Support/Claude/claude_desktop_config.json
```

#### For Windows:
```bash
code %APPDATA%\Claude\claude_desktop_config.json
```

Add the EOL server configuration:
```json
{
  "mcpServers": {
    "eol": {
      "command": "npx",
      "args": ["/path/to/eol-mcp-server/build/index.js"]
    }
  }
}
```

### 2. Restart Claude Desktop

For the changes to take effect:
1. Completely quit Claude Desktop (not just close the window)
2. Start Claude Desktop again
3. Look for the 🔌 icon to verify the EOL server is connected

## Troubleshooting 🔧

### Common Issues

1. **Server Not Found**
   - Verify the npm link is correctly set up
   - Check Claude Desktop configuration syntax
   - Ensure Node.js is properly installed

2. **API Issues**
   - Check if endoflife.date API is accessible
   - Verify the API response format hasn't changed
   - Check network connectivity

3. **Connection Issues**
   - Restart Claude Desktop completely
   - Check Claude Desktop logs:
     ```bash
     # macOS
     tail -n 20 -f ~/Library/Logs/Claude/mcp*.log
     ```

### Getting Help

If you encounter issues:
- Review the [MCP Documentation](https://modelcontextprotocol.io)
- Check the [endoflife.date API Documentation](https://endoflife.date/docs/api)
- Open an issue in the GitHub repository

## Acknowledgments 🙏

- [endoflife.date](https://endoflife.date) for their comprehensive software lifecycle API
- [Model Context Protocol](https://modelcontextprotocol.io) for the MCP specification
- [Anthropic](https://anthropic.com) for Claude Desktop 

TDQS

A3.6/5.0

Scored across 5 tools

Disambiguation5/5

Each tool has a clearly distinct purpose with no ambiguity: list_products for browsing, get_all_details for comprehensive lifecycle info, check_version for EOL status, compare_versions for upgrade analysis, and check_cve for security scanning. The descriptions clearly differentiate their functions, making misselection unlikely.

Naming Consistency5/5

All tools follow a consistent verb_noun pattern with snake_case naming (e.g., list_products, check_version, compare_versions). The naming is predictable and readable throughout the set, with no deviations in style or convention.

Tool Count5/5

With 5 tools, this server is well-scoped for its EOL and software lifecycle management purpose. Each tool earns its place by covering distinct aspects of the domain, from product listing to detailed analysis, without being too sparse or bloated.

Completeness5/5

The tool set provides complete coverage for the domain, including browsing products, retrieving lifecycle details, checking EOL status, comparing versions for upgrades, and scanning for vulnerabilities. There are no obvious gaps, and the tools support a full workflow from discovery to analysis.

Maintenance

ActivityInactive
ResponsivenessNo issues