# Red Hat Product Lifecycle MCP Server

## Overview

This comprehensive MCP (Model Context Protocol) server provides advanced Red Hat product lifecycle management capabilities. It goes beyond basic product information to offer enterprise-grade features for roadmap analysis, migration planning, compliance reporting, portfolio optimization, and cost analysis.

## Features

### Core Features
* **Product Information**: Retrieve detailed lifecycle information for Red Hat products, including version details, support phases, and end-of-life dates.
* **Lifecycle Status**: Determine the current lifecycle status of a product version (e.g., Full Support, Maintenance Support, End of Life).
* **Time Remaining**: Calculate the time remaining until the next lifecycle phase transition.
* **Version Filtering**: Find product versions based on their support status or those expiring within a specified time period.

### Advanced Enterprise Features
* **Roadmap Analysis**: Comprehensive timeline visualization of all upcoming lifecycle events
* **Migration Planning**: Intelligent migration recommendations with urgency-based timelines
* **Compliance Reporting**: Risk assessment reports for various compliance frameworks (PCI-DSS, HIPAA, SOX, ISO27001)
* **Portfolio Optimization**: Multi-product portfolio analysis with optimization recommendations
* **Cost Impact Analysis**: Financial modeling for lifecycle decisions including TCO calculations

## Tools

The server provides the following MCP tools:

### Basic Tools
* `get-all-products`: Retrieves a list of all available Red Hat products
* `get-product-info`: Retrieves detailed lifecycle information for a specific product
* `find-versions-by-status`: Lists product versions that match a specific support status
* `find-expiring-versions`: Finds product versions that will expire within a specified number of days

### Advanced Tools
* `get-product-roadmap`: Get comprehensive roadmap view with timeline visualization
* `get-migration-plan`: Generate intelligent migration plans with recommendations
* `get-compliance-report`: Generate compliance and risk assessment reports
* `analyze-portfolio-optimization`: Analyze entire product portfolios for optimization
* `calculate-lifecycle-costs`: Calculate cost impact of lifecycle decisions

## Data Source

The server fetches product lifecycle data from the Red Hat API:
`https://access.redhat.com/product-life-cycles/api/v1/products/`

## Setup

### Prerequisites

* Node.js (v18 or higher)
* An MCP client (e.g., a compatible AI tool or application)

### Installation

1.  Clone this repository.
2.  Install the dependencies:

    ```bash
    npm install
    ```

3.  Build the server:

    ```bash
    npm run build
    ```

### Running the Server

1.  Start the server:

    ```bash
    npm start
    ```

    The server will listen for MCP requests via standard input/output.

## Usage Examples

### Basic Usage

Get all products:
```json
{
  "tool_name": "get-all-products",
  "input": {}
}
```

Get product information:
```json
{
  "tool_name": "get-product-info",
  "input": {
    "productName": "Red Hat Enterprise Linux"
  }
}
```

### Advanced Usage

Get product roadmap:
```json
{
  "tool_name": "get-product-roadmap",
  "input": {
    "productName": "Red Hat OpenShift Container Platform",
    "timeframeMonths": 24
  }
}
```

Generate migration plan:
```json
{
  "tool_name": "get-migration-plan",
  "input": {
    "productName": "Red Hat Enterprise Linux",
    "currentVersion": "7.9",
    "urgencyLevel": "high"
  }
}
```

Compliance assessment:
```json
{
  "tool_name": "get-compliance-report",
  "input": {
    "productVersions": [
      {"productName": "Red Hat Enterprise Linux", "versionName": "7.9"},
      {"productName": "Red Hat OpenShift Container Platform", "versionName": "4.10"}
    ],
    "complianceFramework": "pci-dss"
  }
}
```

Portfolio optimization:
```json
{
  "tool_name": "analyze-portfolio-optimization",
  "input": {
    "portfolio": [
      {
        "productName": "Red Hat Enterprise Linux",
        "versions": ["7.9", "8.8", "9.2"],
        "criticality": "high"
      }
    ],
    "optimizationGoal": "risk"
  }
}
```

Cost analysis:
```json
{
  "tool_name": "calculate-lifecycle-costs",
  "input": {
    "scenarios": [
      {
        "name": "RHEL 7 to 9 Migration",
        "productName": "Red Hat Enterprise Linux",
        "currentVersion": "7.9",
        "targetVersion": "9.2",
        "systemCount": 100,
        "migrationTimeMonths": 6
      }
    ],
    "costFactors": {
      "supportCostPerYear": 15000,
      "migrationCostPerSystem": 8000,
      "downtimeCostPerHour": 2000,
      "securityIncidentCost": 500000
    }
  }
}
```

## Compliance Frameworks Supported

- **General**: Basic risk assessment
- **PCI-DSS**: Payment Card Industry Data Security Standard
- **HIPAA**: Health Insurance Portability and Accountability Act
- **SOX**: Sarbanes-Oxley Act
- **ISO27001**: Information Security Management System

## Optimization Goals

- **Risk**: Minimize security and compliance risks
- **Cost**: Optimize total cost of ownership
- **Performance**: Focus on performance improvements
- **Compliance**: Ensure regulatory compliance

## Data Structure

```typescript
interface ProductPhase {
  name: string;
  date: string;
  date_format: string;
  additional_text: string;
}

interface ProductVersion {
  name: string;
  type: string;
  phases: ProductPhase[];
  tier?: string;
  openshift_compatibility?: any;
  additional_text: string;
  extra_dependences: any[];
}

interface Product {
  uuid: string;
  name: string;
  former_names: string[];
  versions: ProductVersion[];
  is_layered_product: boolean;
  footnote: string;
  is_operator: boolean;
  link?: string;
}
```

## Enterprise Features

This server is designed for enterprise environments and provides:

- **Multi-product portfolio management**
- **Risk-based prioritization**
- **Compliance framework integration**
- **Cost modeling and TCO analysis**
- **Migration planning with timelines**
- **Executive reporting capabilities**

Perfect for IT managers, compliance teams, and enterprise architects managing Red Hat product lifecycles.
