MCP Riot Server
MCP 라이엇 서버
MCP-Riot은 Riot Games API와 통합되어 자연어 쿼리를 통해 AI 도우미에게 League of Legends 데이터를 제공하는 커뮤니티에서 개발한 모델 컨텍스트 프로토콜(MCP) 서버입니다 .
이 프로젝트는 AI 모델이 플레이어 정보, 순위 통계, 챔피언 숙련도, 최근 경기 요약을 검색할 수 있도록 합니다.
면책 조항: 이 프로젝트는 Riot Games와 제휴 관계가 없으며 Riot Games의 보증도 받지 않는 오픈 소스 프로젝트입니다. League of Legends®는 Riot Games, Inc.의 등록 상표입니다.
데모
Related MCP server: lol-client-mcp Public
✨ 특징
🧾 플레이어 요약
"현재 하이드온부시의 순위와 최고 챔피언은?"
플레이어에게 다음을 제공합니다.
수준
랭크 솔로 티어
상위 챔피언 마스터리
최근 경기 기록
🔝 최고 챔피언
"그가 가장 잘하는 챔피언은 뭐죠?"
숙련도 포인트에 따라 상위 N명의 챔피언을 반환합니다.
🎯 챔피언 마스터리
"이 선수는 아리와 얼마나 잘 어울릴까?"
특정 챔피언에 대한 자세한 챔피언 숙련도 데이터를 반환합니다.
🕹️ 최근 경기
"이 소환사의 최근 3개 경기 표시"
챔피언 사용, K/D/A, 결과를 포함한 최근 경기 목록입니다.
📊 경기 요약
"주어진 매치 ID에 대한 이 매치를 요약합니다"
KDA, 데미지, 워드, 결과 등 플레이어의 경기 통계를 반환합니다.
🚀 빠른 시작
1. 복제 및 설치
지엑스피1
2. API 키 가져오기 및 환경 설정
Riot API 키로 .env 파일을 만듭니다.
RIOT_API_KEY=your_riot_api_keyhttps://developer.riotgames.com/ 에서 키를 받을 수 있습니다.
3. MCP 클라이언트 구성
MCP 클라이언트(예: 데스크톱용 Claude)에 이 서버를 등록합니다.
~/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