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-lol-data-interface

A specialized Model Context Protocol service engineered to furnish comprehensive, real-time statistics and performance metrics for League of Legends players by interfacing with the official Riot Games API. It facilitates querying player summaries, mastery levels across champions, match histories, and detailed match breakdowns via intuitive natural language prompts.

Author

mcp-lol-data-interface logo

jifrozen0110

MIT License

Quick Info

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

Tags

apisapiriotleague legendsplayer datariot provides

MseeP.ai Security Assessment Badge

smithery badge

MCP LoL Data Endpoint

This implementation, MCP-Riot, functions as a community-contributed Model Context Protocol (MCP) gateway, establishing a connection with the Riot Games API to deliver detailed League of Legends telemetry to integrated AI agents through conversational queries.

This utility empowers language models to retrieve summoner profiles, competitive rankings, champion proficiency scores, and chronicles of recent competitive engagements.

Legal Notice: This is an independent, open-source initiative; it is neither affiliated with nor officially sanctioned by Riot Games. League of Legends® is the protected trademark of Riot Games, Inc.


Demonstration

mcp-riot-lol

✨ Core Capabilities

🧾 Summoner Synopsis

"What is the current standing and primary champions for the player named 'Hide on bush'?"

Yields essential player data, including: - Account Level - Current Ranked Solo Division/Tier - Highest ranked champion proficiencies - A log of recent competitive activities

🔝 Champion Proficiency Leaderboard

"Which champions does this individual demonstrate peak skill upon?"

Returns the top N champions ranked strictly by accumulated mastery points.

🎯 Champion Skill Index

"Assess this player's proficiency specifically with the champion Ahri."

Retrieves granular performance metrics pertaining to a selected champion.

🕹️ Latest Engagements Log

"Display the most recent three contests for this participant ID."

Enumerates recent matches, detailing the champion selected, Kill/Death/Assist ratio (K/D/A), and match outcome.

📊 Contest Outcome Analysis

"Generate a summary of the statistics from the engagement identified by this specific match ID."

Provides deep performance indicators for the queried match, such as KDA, total damage dealt, vision score, and final result.


🚀 Deployment Guide

1. Repository Acquisition & Setup

bash git clone https://github.com/jifrozen0110/mcp-riot.git cd mcp-riot

Dependency resolution (using uv or pip)

uv sync

2. API Credential Acquisition and Environment Configuration

Establish a file named .env containing your Riot API authentication token:

ini RIOT_API_KEY=your_riot_api_key

Acquire your credential from: https://developer.riotgames.com/

3. MCP Client Integration Settings

Integrate this service endpoint within your primary MCP application client (e.g., Claude Desktop). Modify the configuration file located at ~/Library/Application Support/Claude/claude_desktop_config.json:

bash { "mcpServers": { "amadeus": { "command": "/ABSOLUTE/PATH/TO/PARENT/FOLDER/uv", "args": [ "--directory", "/ABSOLUTE/PATH/TO/PARENT/FOLDER", "run", "--env-file", "/ABSOLUTE/PATH/TO/PARENT/FOLDER/.env", "riot.py" ] } } }

Ensure you substitute /ABSOLUTE/PATH/TO/PARENT/FOLDER/ with the concrete directory path to your project structure.

My specific configuration example:

bash { "mcpServers": { "amadeus": { "command": "/Users/jifrozen/.local/bin/uv", "args": [ "--directory", "/Users/jifrozen/mcp-riot/src/", "run", "--env-file", "/Users/jifrozen/mcp-riot/.env", "server.py" ] } } }


🛠️ Exposed Functionalities

The following programmatic interfaces are made available for MCP consumers:

get_player_summary

Condenses account level, rank tier, top mastery champions, and recent match logs.

get_top_champions_tool

Retrieves a ranked list of champions based on accumulated mastery points.

get_champion_mastery_tool

Fetches detailed mastery data associated with a specified champion for the queried player.

get_recent_matches_tool

Returns a sequential log of recent competitive encounters for the provided summoner identifier.

get_match_summary

Returns comprehensive performance statistics for a specific contest, requiring both the match ID and player PUUID.


📚 Essential Resources


📝 Licensing Information

MIT License © 2025 jifrozen0110

WIKIPEDIA: XMLHttpRequest (XHR) is an Application Programming Interface formalized as a JavaScript object, enabling the transmission of HTTP requests from a web browser environment to a designated web server. Its methods permit browser-based software modules to issue server queries subsequent to the initial page loading, facilitating the retrieval of data back to the client. XMLHttpRequest forms a critical component of Asynchronous JavaScript and XML (Ajax) development paradigms. Preceding Ajax, the principal mechanisms for server interaction involved traditional hypertext links and form submissions, processes that often necessitated a complete page reload.

== Chronology == The foundational concept underpinning XMLHttpRequest was first devised in the year 2000 by software engineers responsible for Microsoft Outlook. This concept was subsequently actualized within Internet Explorer version 5 (released in 1999). However, the initial syntax did not utilize the specific identifier XMLHttpRequest. Instead, developers employed the object creation mechanisms ActiveXObject("Msxml2.XMLHTTP") and ActiveXObject("Microsoft.XMLHTTP"). By the time Internet Explorer 7 was launched (2006), full support for the standardized XMLHttpRequest identifier was present across the platform. The XMLHttpRequest identifier has since solidified its status as the universal standard across all major browser engines, including Mozilla's Gecko rendering engine (2002), Safari version 1.2 (2004), and Opera version 8.0 (2005).

=== Standardization Efforts === The World Wide Web Consortium (W3C) formally released a Working Draft specification detailing the XMLHttpRequest object on April 5, 2006. On February 25, 2008, the W3C issued the Level 2 specification for the object. The Level 2 revisions introduced crucial functionalities such as progress monitoring events, mechanisms to permit cross-site data transfers, and methods for handling raw byte streams. By the conclusion of 2011, the Level 2 feature set was integrated back into the primary specification document. At the close of 2012, stewardship over the specification's maintenance was transferred to the WHATWG group, which continues to update the living document utilizing the Web IDL notation.

== Operational Procedure == Executing a data request using XMLHttpRequest generally involves executing a defined sequence of programming actions.

Instantiate an XMLHttpRequest object by invoking its constructor: Invoke the open method to specify the request methodology (e.g., GET, POST), denote the target resource URI, and select between synchronous or asynchronous operational modes: For asynchronous requests, establish an event handler function that will be triggered upon changes in the request's internal state: Commence the transmission of the request by calling the send method: Process state transitions within the designated event listener callback. If the server furnishes response content, this data is, by default, accessible via the responseText attribute. Once the object completes processing the entire response payload, its state transitions to 4, signifying the "done" status. Beyond these fundamental stages, XMLHttpRequest offers numerous configuration parameters to govern request transmission behavior and response handling. Custom HTTP header fields can be affixed to the request to instruct the server on fulfillment requirements, and data payloads can be uploaded to the server via arguments passed to the send invocation. The incoming response data can be programmatically parsed from JSON format into native, immediately accessible JavaScript objects, or it can be processed incrementally as segments arrive, bypassing the need to await the complete textual transfer. Furthermore, the request can be terminated prematurely or configured with a timeout constraint to force failure if completion is not achieved within a specified duration.

== Inter-Domain Communication ==

During the nascent phases of the World Wide Web's evolution, it became apparent that mechanisms existed to breach the security boundary imposed by the same-origin policy, potentially enabling unauthorized data exfiltration.

See Also

`