MCP Riot Server
MCPライオットサーバー
**MCP-Riot は、コミュニティによって開発されたModel Context Protocol (MCP)サーバーであり、Riot Games API と統合して、**自然言語クエリを介して League of Legends データを AI アシスタントに提供します。
このプロジェクトにより、AI モデルはプレーヤー情報、ランク付けされた統計、チャンピオンの習熟度、最近の試合の概要を取得できるようになります。
**免責事項:これはオープンソースプロジェクトであり、Riot Gamesとは一切関係がなく、またRiot Gamesの承認も受けていません。League of Legends®はRiot Games, Inc.の登録商標です。
デモ
Related MCP server: lol-client-mcp Public
✨ 特徴
🧾 選手概要
「Hide on bushの現在の順位とトップチャンピオンは何ですか?」
プレーヤーに以下を提供します:
レベル
ランク付けされたソロティア
トップチャンピオンマスタリー
最近の試合履歴
🔝トップチャンピオン
「彼はどのチャンピオンが最も得意ですか?」
マスタリーポイントに基づいて上位 N 人のチャンピオンを返します。
🎯 チャンピオンマスタリー
「このプレイヤーはアーリをどれくらい上手に使いこなせるだろうか?」
特定のチャンピオンの詳細なチャンピオンマスタリーデータを返します。
🕹️ 最近の試合
「この召喚者の過去3試合を表示」
使用されたチャンピオン、K/D/A、結果を含む最近の試合を一覧表示します。
📊 試合概要
「指定された試合IDのこの試合を要約する」
KDA、ダメージ、ワード、結果など、プレイヤーの試合統計を返します。
🚀 クイックスタート
1. クローンとインストール
git clone https://github.com/jifrozen0110/mcp-riot.git
cd mcp-riot
# Install dependencies (using uv or pip)
uv sync2. APIキーを取得して環境を設定する
Riot API キーを使用して.envファイルを作成します。
RIOT_API_KEY=your_riot_api_keyキーはhttps://developer.riotgames.com/から取得できます。
3. MCPクライアントを構成する
このサーバーを MCP クライアント (例: Claude for Desktop) に登録します。
~/Library/Application Support/Claude/claude_desktop_config.json を編集します。
{
"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"
]
}
}
}
/ABSOLUTE/PATH/TO/PARENT/FOLDER/プロジェクト フォルダーへの実際のパスに置き換えます。
私の場合:
{
"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"
]
}
}
}
🛠️ ツール
次のツールが MCP クライアントに公開されます。
get_player_summary
レベル、ランク、トップチャンピオン、最近の試合の概要を示します。
get_top_champions_tool
マスタリーポイントによるトップチャンピオンを返します。
get_champion_mastery_tool
特定のチャンピオンのマスタリーの詳細を返します。
get_recent_matches_tool
指定された召喚者の最近の試合を返します。
get_match_summary
指定された試合 ID と puuid の試合パフォーマンス統計を返します。
📚 参考文献
📝 ライセンス
MIT ライセンス © 2025 jifrozen0110
Available Tools
5 toolsget_champion_mastery_toolC
🎯 Get the player's mastery info for a specific champion.
Returns detailed mastery data (level, points, last play time, etc.) for the requested champion.
| Name | Required | Description | Default |
|---|---|---|---|
| game_name | Yes | ||
| tag_line | Yes | ||
| champion_name | Yes | ||
| language | No | en_US |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behavioral traits. It states 'Returns detailed mastery data' but does not mention if the operation is read-only, required permissions, error conditions (e.g., champion not mastered), or rate limits. The description is too vague to fully inform the agent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with two sentences and an emoji marker. It front-loads the core action and provides a brief output summary without unnecessary fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of 4 parameters (3 required), no output schema, and no annotations, the description is insufficient. It omits input format details, output structure beyond examples, and error handling. A more complete description would clarify parameter usage and expected returns.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, yet the description adds no information about any of the four parameters (game_name, tag_line, champion_name, language). It does not explain what values are expected or how they relate to the tool's operation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Get the player's mastery info for a specific champion.' It differentiates well from siblings (e.g., get_match_summary, get_top_champions_tool) by specifying champion-specific mastery data.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives, nor any prerequisites or when-not-to-use conditions. The description implies usage for querying mastery, but lacks exclusion criteria or contextual recommendations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_match_summaryA
📊 Get a detailed summary of a specific match for a given player.
Extracts and returns only the relevant stats (KDA, damage, vision, win/loss, etc.) from the match.
| Name | Required | Description | Default |
|---|---|---|---|
| match_id | Yes | ||
| puuid | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It states the tool extracts and returns only relevant stats, implying a read-only operation. However, it does not disclose any behavioral traits like authorization needs, rate limits, or potential errors. The description adds some context but is incomplete.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the purpose, and includes an emoji for visual cue. No unnecessary words or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple data retrieval tool with two common parameters and no output schema, the description is fairly complete. It explains what the tool does and what type of data it returns. However, it lacks guidance on parameter derivation or edge cases, which would improve completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must compensate. However, it does not describe the parameters (match_id and puuid) beyond what is obvious from the tool name and purpose. No format, source, or constraints are mentioned, leaving the agent to infer meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool fetches a detailed summary of a specific match for a given player, listing included stats (KDA, damage, vision, win/loss). This distinguishes it from siblings like get_recent_matches_tool (list of matches) and get_champion_mastery_tool (champion mastery).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when detailed match stats are needed, but it does not explicitly tell when to use this tool vs alternatives (e.g., when to use get_recent_matches_tool instead). No usage context or exclusions are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_player_summaryB
🧾 Get a complete summary of a player's profile.
Includes level, solo rank, top champion masteries, and recent matches in a single output.
| Name | Required | Description | Default |
|---|---|---|---|
| game_name | Yes | ||
| tag_line | Yes | ||
| language | No | en_US |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description does not disclose behavioral traits such as idempotency, side effects, or rate limits. For a read-only operation, this is a significant gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is brief with two sentences, using an emoji for visual cue. It is front-loaded with purpose and lists included data. No redundant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of output schema and annotations, the description should cover behavioral aspects and output details. It omits limitations like match count, language impact, and data freshness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, and the description does not clarify the parameters beyond implying player identity. For example, the 'language' parameter defaults to en_US but is not explained.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it provides a complete summary including level, solo rank, top champion masteries, and recent matches. This differentiates it from sibling tools like get_champion_mastery_tool and get_recent_matches_tool which focus on sub-aspects.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when a quick overview is needed but lacks explicit when-to-use or when-not-to-use guidance. No alternatives are mentioned despite clear sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_recent_matches_toolC
🕹️ Get the player's recent match history.
Returns a brief summary of the player's most recent matches, including champion, score, and result.
| Name | Required | Description | Default |
|---|---|---|---|
| game_name | Yes | ||
| tag_line | Yes | ||
| count | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description should disclose behavioral traits, but it only mentions the output is a 'brief summary'. It omits details like authentication requirements, rate limits, or any side effects (though likely read-only).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very concise at two sentences and uses an emoji for visibility. It is efficient but could be better structured by including parameter info.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has three parameters, no output schema, and no annotations, the description is incomplete. It provides a high-level summary but lacks details on how to invoke it correctly or what the full response looks like.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, meaning the description does not explain any parameters. The tool has three parameters (game_name, tag_line, count) but the description provides no meaning, default, or format for them.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves recent match history and specifies the returned data (champion, score, result), distinguishing it from siblings like get_champion_mastery_tool or get_match_summary.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives, nor any prerequisites or exclusions. The description only states what it does, not when it is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_top_champions_toolC
🔝 Get the player's top champion masteries.
Returns a list of the player's most-played champions based on mastery points.
| Name | Required | Description | Default |
|---|---|---|---|
| game_name | Yes | ||
| tag_line | Yes | ||
| language | No | en_US | |
| count | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It indicates a read operation returning a list sorted by mastery points, but does not disclose side effects, authentication needs, rate limits, or ordering details. Minimal transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is only two sentences with no fluff. It is front-loaded with an emoji for visibility. Every word adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 4 parameters, no output schema, and sibling tools, the description is too minimal. It explains the output but not the parameters, ordering, or limits. Completeness is insufficient for proper agent understanding.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description does not explain any parameters beyond the schema titles and defaults. No additional meaning is provided for 'game_name', 'tag_line', 'language', or 'count'. The description fails to compensate for the lack of schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool gets the player's top champion masteries and returns a list of most-played champions based on mastery points. However, it does not differentiate from sibling tool 'get_champion_mastery_tool', which likely focuses on a single champion.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides context (what the tool returns) but gives no explicit guidance on when to use this tool versus alternatives like 'get_champion_mastery_tool'. No when-not-to-use or prerequisite conditions are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
5 tool updates
v0.1.0- First observed
get_champion_mastery_tool - First observed
get_match_summary - First observed
get_player_summary - First observed
get_recent_matches_tool - First observed
get_top_champions_tool
TDQS
Scored across 5 tools
Most tools have distinct purposes, but 'get_player_summary' includes top champions and recent matches, overlapping with 'get_top_champions_tool' and 'get_recent_matches_tool', which could cause agent confusion.
All tools start with 'get' and use snake_case, but two tools have a '_tool' suffix ('get_champion_mastery_tool', 'get_recent_matches_tool') while others lack it, creating inconsistency.
5 tools is well-scoped for a Riot Games data server, covering essential player and match info without being too few or too many.
The set covers core player data (mastery, matches, summary) but lacks operations like summoner search or match timeline, leaving minor gaps.
Maintenance
Related MCP Connectors
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yo…
Driflyte MCP server which lets AI assistants query topic-specific knowledge from web and GitHub.
The Telnyx MCP server is an official implementation of the Model Context Protocol that enables AI clients (like Claude Desktop, Cursor, and OpenAI Agents) to interact with Telnyx's telephony, messaging, and AI assistant APIs. It provides comprehensive capabilities including making and managing phone calls, sending SMS/MMS messages, purchasing and configuring phone numbers, creating AI assistants with custom instructions, managing cloud storage buckets, scraping and embedding website content, and handling integration secrets. The server exists as both a local implementation and a remotely hosted version, allowing developers to integrate real-world communication infrastructure directly into AI applications.
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to control Unreal E…
Related MCP Servers
- AlicenseBqualityDmaintenanceModel Context Protocol server that enables LLMs and AI assistants to retrieve real-time Dota 2 statistics, match data, player information, and game metrics through a standardized interface.178MIT
- AlicenseCqualityDmaintenanceAn MCP (Model-Controller-Processor) server for accessing League of Legends client data. This server provides a collection of tools that communicate with the League of Legends Live Client Data API to retrieve in-game data.1212Apache 2.0
- FlicenseNot gradedqualityDmaintenanceEnables interaction with League of Legends game data through the Riot Games API. Allows users to query player statistics, match history, and game information using natural language.-
- AlicenseNot gradedqualityFmaintenanceA comprehensive League of Legends data ecosystem that provides access to champion statistics, item data, and patch history via the Model Context Protocol. It enables analysis of game mechanics, build optimization, and meta tracking through real-time data integration.1MIT