Skip to main content
Glama
onepersonunicorn

League of Legends Mock Match Predictor

README.md
# League of Legends Mock Match Predictor

βš”οΈ **AI-powered League of Legends mock match simulator and summoner comparison tool**

This Model Context Protocol (MCP) server provides comprehensive League of Legends summoner analysis and mock match simulations based on historical performance data from the last 10 games.

## Features

- **πŸ” Summoner Analysis**: Get detailed statistics including KDA, damage dealt, and win rates
- **βš”οΈ Mock Match Simulation**: AI-powered 10-phase match progression simulation
- **🌍 Multi-language Support**: Available in 7 languages
- **πŸ“Š Performance Comparison**: Side-by-side summoner comparisons
- **🎯 Match Prediction**: Outcome prediction based on historical data

## Supported Languages

- English (EN/ENGLISH)
- Korean (ν•œκ΅­μ–΄)
- Traditional Chinese (繁體中文)
- Japanese (ζ—₯本θͺž)
- Spanish (ESPAΓ‘OL)
- Bengali (বাংলা)
- Punjabi (ΰ¨ͺΰ©°ΰ¨œΰ¨Ύΰ¨¬ΰ©€)

## Installation

### Prerequisites

- Python 3.10 or higher
- pip package manager

### Setup

1. **Clone the repository**:
   ```bash
   git clone https://github.com/onepersonunicorn/lolgpt.git
   cd lolgpt
   ```

2. **Install dependencies**:
   ```bash
   pip install -r requirements.txt
   ```

3. **Set up environment variables** (optional):
   ```bash
   export LOL_API_URL="https://1tier.xyz"
   export LOL_DEFAULT_LANGUAGE="EN"
   export LOL_API_TIMEOUT="30"
   ```

4. **Run the server**:
   ```bash
   python main.py
   ```

## Usage

### Available Tools

The MCP server provides 6 different tools for various League of Legends simulation needs:

#### `league_of_legends_summoner_vs_match`
Main tool for comprehensive match simulation.

**Parameters:**
- `uidA` (required): Riot ID of first summoner
- `tagA` (required): Tag of first summoner  
- `uidB` (required): Riot ID of second summoner
- `tagB` (required): Tag of second summoner
- `lang` (optional): Language for simulation (default: "EN")

### Example API call
```python
await league_of_legends_summoner_vs_match(
    uidA="Hide on bush",
    tagA="KR1", 
    uidB="Zeus",
    tagB="KR1",
    lang="EN"
)
```

### Example Usage

![conversations](img/lolGPT_MCP.gif)

### Sample Output

```
βš”οΈ **League of Legends Mock Match Simulation**
════════════════════════════════════════════

πŸ“Š Summoner A (PlayerOne#KR1) - Last 10 Games Statistics:
β€’ Average Kills: 8.2
β€’ Average Assists: 12.5
β€’ Average Deaths: 4.1
β€’ Average KDA: 5.05
β€’ Average Damage Dealt: 28,450
β€’ Win Rate: 70%

πŸ“Š Summoner B (PlayerTwo#NA1) - Last 10 Games Statistics:
β€’ Average Kills: 6.8
β€’ Average Assists: 9.2
β€’ Average Deaths: 5.3
β€’ Average KDA: 3.02
β€’ Average Damage Dealt: 22,100
β€’ Win Rate: 55%

🎯 Mock Match Simulation - Summoner's Rift:
════════════════════════════════════════════

Phase 1: Welcome to the Snowdown Showdown.
Phase 2: Thirty seconds until minions spawn.
Phase 3: Minions have spawned!
Phase 4: First blood! Zeus has been slain.
Phase 5: Hide on bush has slain an enemy!
Phase 6: Hide on bush has destroyed a turret.
Phase 7: Zeus Quadrakill!
Phase 8: Hide on bush is legendary!
Phase 9: Hide on bush has destroyed a inhibitor.
Phase 10: Hide on bush victory!

### Smithery Configuration

The server supports Smithery configuration via `smithery.yaml`:

```

```yaml
startCommand:
  type: stdio
  configSchema:
    properties:
      debug:
        type: boolean
        default: false
      apiUrl:
        type: string
        default: "https://1tier.xyz"
      language:
        type: string
        default: "EN"
      timeout:
        type: number
        default: 30
```

## API Integration

The server integrates with the 1tier.xyz API endpoint which provides:

- **Summoner Statistics**: Last 10 games performance data
- **Match Simulation**: AI-generated match progression
- **Multi-language Support**: Localized simulation text
- **Real-time Data**: Current summoner performance metrics

## License

This project is licensed under the MIT License

## Disclaimer

League of Legends mock match simulations are for entertainment purposes only. Results are based on historical performance data and do not guarantee actual match outcomes. League of Legends is a trademark of Riot Games, Inc.

## Support

For issues and questions:
- Create an issue on GitHub
- Contact the development team

## Acknowledgments

- **Riot Games** for League of Legends
- **1tier.xyz** for providing the API infrastructure

---

Made with ❀️ for the League of Legends community