# Riot Games MCP

> Riot Games MCP Server accesses League of Legends player data through your AI client. It pulls summoner profiles, current ranked stats (LP/Tier), full match history details (KDA, items, gold), and live game compositions for any Riot ID or PUUID.

## Overview
- **Category:** industry-titans
- **Price:** Free
- **Tags:** player-profiles, match-data, ranked-stats, gaming-api, summoner-data

## Description

Yo, this isn't just some API wrapper—it’s your full source for League of Legends player data. Your AI client pulls everything you need: summoner profiles, current ranked stats (LP/Tier), deep match history details (KDA, items, gold), and even what players are running in live games. You don't talk about the stats; your agent uses these specific tools to pull structured info.

**Identifying Players:**
If you only have a player’s Riot ID—like "PlayerName#TAG"—you gotta start by using `get_account_by_riot_id` to translate that into their required PUUID, and it'll hand back basic account details too. If you already got the unique number (the PUUID), you can use `get_summoner_by_puuid` for general profile info, or if you have the raw summoner ID number, run `get_summoner_by_id` to get core data like level and icon ID.

**Tracking Rank:**
You want to know how good they are? Use `get_league_entries`. You specify which server and queue you're looking at, and it returns the player's current league standing, including their tier, LP score, and total wins versus losses for that competitive season.

**Reviewing Matches:**
To see what they've actually done, first run `get_match_ids`. This gives you a list of up to 20 recent match IDs based on the player’s PUUID. Then, take one of those IDs and feed it into `get_match` along with the regional routing; that pulls the entire match breakdown—KDA, specific items used, runes, gold earned, and damage dealt.

**Assessing Skill Depth:**
Want to know if they're actually good at a certain champion? Run `get_champion_masteries`. You feed it the player and the champ name, and you get back their mastery level, points, and tokens—it tells you exactly how far away they are from hitting the next rank. Need to check out all possible champions? Use `get_champions` to list every single champion in the game, supporting optional version or locale inputs.

**What's Happening Now:**
If they’re live, your agent can tell you with `get_active_game`, giving detailed info on team comps, banned champions, and active spells—or it tells you nothing if they aren't playing. You can also check out high-elo games happening right now by running `get_featured_games`; that returns details on current compositions and spells for top matches.

**Champion Basics:**
Whenever you need a static reference, use `get_champion_details` to fetch everything about any champion—their abilities, stats, and lore. This tool doesn't even require an API key.

This server lets your AI client do all the heavy lifting, turning simple queries into structured data for player identity via `get_account_by_puuid`, ranking status using `get_league_entries`, match history analysis with a two-step process of getting IDs via `get_match_ids` and then pulling details with `get_match`, checking live activity through `get_active_game` or `get_featured_games`, and nailing down champion skill levels using `get_champion_masteries`. It’s clean, direct data every time.

## Tools

### get_account_by_puuid
Gets the game name, tag line, and metadata for an account using its PUUID.

### get_account_by_riot_id
Translates a player's Riot ID (game name + tag line) into the required PUUID, along with basic account details.

### get_active_game
Returns detailed info on a summoner currently in a game, including team comps, bans, and spells. Returns 404 if they aren't playing.

### get_champion_details
Fetches static data for any champion, including abilities, stats, and lore (no API key needed).

### get_champion_masteries
Returns a player's mastery level, points, and tokens for specific champions on different servers.

### get_champions
Lists all League of Legends champions using static data, supporting optional version and locale inputs.

### get_featured_games
Retrieves details on high-elo live games currently in progress, showing compositions and spells.

### get_league_entries
Gets a player's current ranked league standing, including tier, LP, wins/losses, for specified queues and servers.

### get_match
Pulls full match details—including KDA, items, runes, etc.—by providing the regional routing and a specific match ID.

### get_match_ids
Gets up to 20 recent match IDs for a player based on their PUUID and regional setting.

### get_summoner_by_id
Retrieves core profile data (level, icon ID, account ID) using the summoner's unique ID number.

### get_summoner_by_puuid
Gets a player's general profile info by providing their PUUID. This is often needed before querying stats.

## Prompt Examples

**Prompt:** 
```
Find the summoner Faker on KR server.
```

**Response:** 
```
Faker#KR1 found. Summoner Level: 687. PUUID: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx. Summoner ID: xxxxxxxxxxxxxx.
```

**Prompt:** 
```
What's Faker's ranked stats on KR?
```

**Response:** 
```
Solo/Duo: Challenger I, 1456 LP, 412W/298L (58.0% WR). Flex: Master I, 234 LP, 89W/67L (57.1% WR). Hot streak: true.
```

**Prompt:** 
```
Get Faker's last 5 match IDs.
```

**Response:** 
```
Found 5 recent matches: KR_7234567890, KR_7234567889, KR_7234567888, KR_7234567887, KR_7234567886. Use get_match to see full details for any match.
```

## Capabilities

### Identify Player Accounts
Get a player's unique PUUID and account metadata by supplying their Riot ID or searching by existing PUUID.

### Analyze Ranked Performance
Retrieve current league standings, including tier, LP, win/loss counts, and hot streak status for any competitive queue.

### Review Match Details
Fetch detailed data—like KDA, items, runes, gold, and damage—for a specific match ID or browse up to 20 recent matches.

### Check Live Game Status
Determine if a summoner is currently in a game, returning team compositions, banned champions, and active spells. It can also list high-elo games happening now.

### Assess Champion Skill
View how skilled a player is with specific champions by pulling their mastery levels, points, and the tokens needed for the next rank.

## Use Cases

### Diagnosing a Ranked Drop
A coach notices a player's ranking dropped suddenly. They ask their agent to run `get_match_ids` and then use the resulting IDs with `get_match`. The agent pulls the full match data, allowing the coach to check for low KDA or poor item choices in the specific games that caused the drop.

### Building a Player Dossier
A content creator needs stats on Faker. They first call `get_account_by_riot_id` to get the PUUID, then use `get_summoner_by_puuid` for basic profile details, and finally run `get_league_entries` to pull all current rank data into one structured payload.

### Checking a Live Lobby
A teammate needs to know if a player is available. Instead of checking the client dashboard, they ask their agent to run `get_active_game`. If it returns data, the player is live and in-game; otherwise, the process stops.

### Analyzing Champion Specialization
An analyst wants to know if a player favors one champion. They use `get_champion_masteries` for that player across several champions. The agent returns mastery levels and points, making it easy to identify the player's true specialty.

## Benefits

- See a player's full competitive standing immediately. Instead of visiting the ranking page, you call `get_league_entries` to get their current tier, LP, win/loss records, and hot streak status directly into your agent's context.
- Track performance over time without manual effort. Use `get_match_ids` first; then feed those IDs into `get_match`. This gives you the full data packet (KDA, items, gold) for a whole batch of games in one flow.
- Know where players are right now. The `get_active_game` tool tells you if they're live and what their team composition is, saving you from guessing if they've logged off.
- Understand why a player excels. You can check champion mastery using `get_champion_masteries` to see exactly how many points or tokens the player has accumulated on specific champions.
- Get foundational account data fast. Start by running `get_account_by_riot_id`. This immediately gives your agent the PUUID, which is the key required for most other stats calls.

## How It Works

The bottom line is: it chains multiple API calls together behind a single conversational interface so you don't have to manually manage the sequence of requests.

1. First, your AI agent uses `get_account_by_riot_id` to translate a human-readable Riot ID into the necessary PUUID.
2. Next, it calls `get_match_ids` using that PUUID to get a list of recent match IDs, then iterates through them calling `get_match` for full details.
3. Finally, you ask your agent to combine this data with `get_league_entries` and `get_champion_masteries` to build the final performance report.

## Frequently Asked Questions

**How do I get a Riot Games API key?**
Register at [**developer.riotgames.com**](https://developer.riotgames.com/) and sign in with your Riot account to get your personal development API key. It's free and works immediately.

**What is a PUUID?**
PUUID (Player Universally Unique Identifier) is a unique ID assigned to every Riot account. It's required for most API calls like match history and champion masteries. Get it using get_account_by_riot_id with the player's game name and tag line.

**What are platform codes?**
Platform codes identify specific game servers: na1 (North America), euw1 (Europe West), eun1 (Europe Nordic & East), kr (Korea), br1 (Brazil), jp1 (Japan), la1/la2 (Latin America), tr1 (Turkey), oc1 (Oceania). Match history uses regional routing instead: americas, europe, asia, sea.

**What are the API rate limits?**
Development API keys are limited to 20 requests per second and 100 requests per 2 minutes. If you exceed these limits, the API returns a 429 error. Wait a moment and retry.

**If I run `get_active_game`, how do I know the summoner isn't playing right now?**
The tool returns a specific 404 error code when the summoner is not in an active game. This confirms they are offline or away from current action. You can then switch to checking their ranked status using `get_league_entries`.

**When using `get_match_ids`, how do I get more than the default 20 matches?**
You must use the optional `count` parameter, setting it to a number between 1 and 100. To pull full match history, request batches of 100 IDs at a time for comprehensive coverage.

**Does `get_champion_details` use live API data or static data?**
It uses Data Dragon, which is a set of static data. This means the champion information—like abilities and base stats—will not change based on real-time game updates. It's always consistent.

**Before running `get_league_entries`, what is the most reliable way to find the required PUUID?**
Use the `get_account_by_riot_id` tool first. This function reliably retrieves the Player Universally Unique Identifier (PUUID) using just the player's visible Riot ID (game name + tag line). That PUUID is what you need for accurate stats.