RiotSkillIssue MCP server
Commit Nov 10, 2026Provides a typed Python wrapper for Riot Games APIs and an optional MCP server to analyze League of Legends match data and player statistics.
Also known as Demoen/riotskillissue
- Stars
- 1
- Tools
- —
- Downloads, 30 days
- —
- Latest version
- —
- Last commit
- Nov 10, 2026
- License
- MIT
What is RiotSkillIssue MCP?
RiotSkillIssue provides a typed Python wrapper for Riot Games APIs and an optional MCP server to analyze League of Legends match data and player statistics.
Summary generated from the project's README
About RiotSkillIssue MCP server
This package provides a typed Python wrapper for Riot Games APIs, supporting both asynchronous and synchronous workflows. Developers can use the RiotClient or SyncRiotClient to access League of Legends data such as player profiles, match history, and match details. It requires a RIOT_API_KEY or an RSO access token for public API operations.
An optional local MCP server can be installed via pip to enable natural language analysis of game data through stdio. This server uses tools like riot_lol_match_context and riot_lol_item_economy to process Match V5, timeline, and Data Dragon information. While the server primarily focuses on read operations, write operations can be enabled by setting the RIOT_MCP_ALLOW_WRITES environment variable, though these still require human confirmation. The system is designed to handle complex queries regarding minion-wave gold, objective captures, and item efficiency based on specific patch data.
What you can do with it
- 1Analyze match telemetryAsk the AI to evaluate specific game events like Void Grub captures or turret conversions from a recent match.
- 2Calculate item efficiencyRequest a breakdown of raw-stat efficiency for items based on current component prices from Data Dragon.
- 3Download game replaysUse the command line interface to fetch replay files for a specific player from the League Client.
- 4Retrieve player statisticsFetch a player's profile and recent match history using the Python client.
Written from the project's README. Every use case is checked against a quote from it.
README
View on GitHubRiotSkillIssue

Typed async and sync Riot Games APIs, plus an optional local MCP server.
Documentation · Migration guide · API reference
Install
RiotSkillIssue 1.x requires Python >=3.14,<3.17. CI tests Python 3.14 and
3.15 on Linux and Windows, and release verification checks both versions.
A separate Python 3.16-dev compatibility probe runs when its dependencies can
be installed; unavailable upstream dependencies are reported without failing
that probe.
pip install riotskillissue
Set RIOT_API_KEY or pass a key directly:
import asyncio
from riotskillissue import PlatformRoute, RiotClient
async def main() -> None:
async with RiotClient(
api_key="RGAPI-...",
default_route=PlatformRoute.EUW1,
) as riot:
profile = await riot.lol.player_profile("Player#EUW")
history = await riot.lol.match_history("Player#EUW", count=5)
match = await riot.raw.lol.match.get_match(match_id="EUW1_...")
print(profile, history, match)
asyncio.run(main())
The explicit synchronous client provides the same workflows and raw operation groups:
from riotskillissue import PlatformRoute, SyncRiotClient
with SyncRiotClient(default_route=PlatformRoute.EUW1) as riot:
print(riot.lol.player_profile("Player#EUW"))
Replay downloads
Open the League Client and sign in, then choose a replay from another player's recent matches using their full Riot ID:
riotskillissue-cli replays list --player "GameName#TagLine"
riotskillissue-cli replays download --player "GameName#TagLine"
For a direct selection and an explicit destination:
riotskillissue-cli replays download 1 --player "GameName#TagLine" --output ./replays/my-game.rofl
This requires League running on the same Windows or macOS machine, with the target match accessible on the client's region. No API key or RSO token is needed. Riot's limit of 10 downloads per hour applies through the client. The League Client API is not officially supported by Riot and may change between patches.
The public API workflow remains available by omitting --player and setting
RIOT_RSO_ACCESS_TOKEN. It returns replays for that token's player. Python
applications can use LeagueReplayClient for player lookups or the async/sync
lol.replays() and lol.download_replay() RSO helpers. See the
replay guide for client setup,
RSO authentication, limits, and examples.
Local MCP server
Install the optional server and run it over stdio:
pip install "riotskillissue[mcp]"
riotskillissue-mcp
The server reads credentials from its environment. API keys and RSO tokens are
never tool arguments. Raw write operations are hidden unless
RIOT_MCP_ALLOW_WRITES=true; enabled writes still require human confirmation.
League-aware tools assemble Match V5, timeline, player, ranked, mastery, and
patch-matched Data Dragon evidence for natural-language questions. For example,
riot_lol_match_context can resolve a match directly or from a player's recent
history and assess Void Grub captures, trades, and later turret conversion while
clearly separating observed telemetry from causal inference. Patch-banded
fundamentals cover minion-wave gold and XP, sharing, passive income, structures,
objectives, role modifiers, and wave-management opportunity costs.
riot_lol_item_economy derives patch-matched raw-stat efficiency from Data
Dragon component prices while leaving passives and unrepresented stats unpriced. See the
MCP guide for tools, production
limits, and data-coverage boundaries.
Coverage and generation
The generated raw API covers every operation in the bundled community-maintained OpenAPI feed. That feed is not an official Riot Games specification. One committed operation registry drives raw dispatch, reference documentation, and MCP discovery.
RiotSkillIssue is not endorsed by Riot Games and does not reflect the views or opinions of Riot Games or anyone officially involved in producing or managing Riot Games properties. Riot Games and all associated properties are trademarks or registered trademarks of Riot Games, Inc.
License
MIT. See LICENSE.
RiotSkillIssue MCP questions
How do I install the MCP server?
You can install the optional server by running pip install "riotskillissue[mcp]" and then executing riotskillissue-mcp.
Can the MCP server perform write operations?
Raw write operations are hidden by default and only accessible if RIOT_MCP_ALLOW_WRITES=true is set, and even then, they require human confirmation.
Does the replay download feature require an API key?
No, downloading replays via the CLI requires the League Client to be running on the same machine, but no API key or RSO token is needed.