Skip to main content
Glama

League of Legends Mock Match Predictor

main.py4.11 kB
import os import sys import argparse import json import requests from datetime import datetime import asyncio import logging from mcp.server.fastmcp import FastMCP # Set up logging logging.basicConfig(level=logging.INFO) logger = logging.getLogger(__name__) parser = argparse.ArgumentParser(description="League of Legends Mock Match MCP Server") parser.add_argument("--debug", action="store_true", help="Enable debug mode") args = parser.parse_args() if args.debug: logging.getLogger().setLevel(logging.DEBUG) mcp = FastMCP("lolgpt") # API base URL LOL_API_URL = os.getenv("LOL_API_URL", "https://1tier.xyz/vs4") logger.info(f"Starting LoL Mock Match MCP Server with API URL: {LOL_API_URL}") @mcp.tool() async def league_of_legends_summoner_vs_match( uidA: str, tagA: str, uidB: str, tagB: str, lang: str = "EN" ) -> str: """ Simulate a League of Legends mock match between two summoners. Args: uidA: Riot ID of the first summoner tagA: Tag of the first summoner uidB: Riot ID of the second summoner tagB: Tag of the second summoner lang: Language for the simulation (EN, 한국어, 繁體中文, 日本語, ESPAÑOL, বাংলা, ਪੰਜਾਬੀ) Returns: Detailed match simulation with summoner statistics and match progression """ try: # Make POST request to the API response = requests.post( f"{LOL_API_URL}/vs4", data={ 'uidA': uidA, 'tagA': tagA, 'uidB': uidB, 'tagB': tagB, 'lang': lang }, timeout=30 ) if response.status_code == 200: data = response.json() summoners = data.get('summoners', {}) # Format the response for better readability result = f""" 🎮 **League of Legends Mock Match Simulation** ════════════════════════════════════════════ **📊 Summoner A ({uidA}#{tagA}) - Last 10 Games Statistics:** • Average Kills: {summoners.get('avg_kills', 'N/A')} • Average Assists: {summoners.get('avg_assists', 'N/A')} • Average Deaths: {summoners.get('avg_deaths', 'N/A')} • Average KDA: {summoners.get('avg_kda', 'N/A')} • Average Damage Dealt: {summoners.get('avg_deal', 'N/A')} • Win Rate: {summoners.get('win_rate', 'N/A')}% **📊 Summoner B ({uidB}#{tagB}) - Last 10 Games Statistics:** • Average Kills: {summoners.get('avg_kills_b', 'N/A')} • Average Assists: {summoners.get('avg_assists_b', 'N/A')} • Average Deaths: {summoners.get('avg_deaths_b', 'N/A')} • Average KDA: {summoners.get('avg_kda_b', 'N/A')} • Average Damage Dealt: {summoners.get('avg_deal_b', 'N/A')} • Win Rate: {summoners.get('win_rate_b', 'N/A')}% **🎯 Mock Match Simulation - Summoner's Rift:** ════════════════════════════════════════════ **Phase 1:** {summoners.get('p1', 'Loading...')} **Phase 2:** {summoners.get('p2', 'Loading...')} **Phase 4:** {summoners.get('p4', 'Loading...')} **Phase 5:** {summoners.get('p5', 'Loading...')} **Phase 6:** {summoners.get('p6', 'Loading...')} **Phase 7:** {summoners.get('p7', 'Loading...')} **Phase 8:** {summoners.get('p8', 'Loading...')} **Phase 9:** {summoners.get('p9', 'Loading...')} **Phase 10:** {summoners.get('p10', 'Loading...')} """ return result else: return f"Error: Failed to fetch match simulation (Status: {response.status_code})" except requests.exceptions.RequestException as e: return f"Error: Failed to connect to League of Legends API - {str(e)}" except Exception as e: return f"Error: {str(e)}" if __name__ == "__main__": try: logger.info("Starting LoL Mock Match MCP Server...") mcp.run() except Exception as e: logger.error(f"Failed to start MCP server: {e}") sys.exit(1)

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/onepersonunicorn/lolgpt'

If you have feedback or need assistance with the MCP directory API, please join our Discord server