Skip to main content
Glama
johnnyinlee

lol-client-mcp Public

by johnnyinlee

LoL Client MCP

An 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.

Overview

This project accesses real-time game data using the League of Legends game client's Live Client Data API. It utilizes the FastMCP framework to expose various endpoints as tools.

API information can be found at https://developer.riotgames.com/docs/lol.

Related MCP server: League of Legends Stats MCP Server

Installation and Usage

Prerequisites

  • Python 3.8 or higher

  • uv - Fast and reliable Python package manager

    • Installation: pip install uv

  • League of Legends client installed

Project Setup

  1. Clone this repository:

git clone https://github.com/yourusername/lol-client-mcp.git
cd lol-client-mcp
  1. Install required packages using uv:

uv pip install httpx fastmcp

Running the MCP Server

To run directly:

python main.py

Integration with Claude

There are two ways to use this with Claude:

1. Claude Desktop Configuration

Add the following to your claude_desktop_config.json file:

{
    "mcpServers": {
        "lol-client-mcp": {
            "command": "uv",
            "args": [
                "--directory",
                "C:\\ABSOLUTE\\PATH\\TO\\PARENT\\FOLDER\\lol-client-mcp",
                "run",
                "main.py"
            ]
        }
    }
}

Important: Replace C:\\ABSOLUTE\\PATH\\TO\\PARENT\\FOLDER\\lol-client-mcp with the actual path to your project.

2. Using with Web Application

To connect the MCP server to the Claude web application:

  1. Run the MCP server:

    python main.py
  2. Configure the server connection in the Claude web interface:

    • Go to MCP settings at the bottom when starting a conversation

    • Select 'lol-client-mcp' and connect

API Tools List

Game Data

  • get_all_game_data(): The Live League of Legends Client Data API has a number of endpoints that return a subset of the data returned by the /allgamedata endpoint. This endpoint is great for testing the Live Client Data API, but unless you actually need all the data from this endpoint, use one of the endpoints listed below that return a subset of the response.

  • get_game_stats(): Basic data about the game.

  • get_event_data(): Get a list of events that have occurred in the game.

Active Player Data

  • get_active_player(): Get all data about the active player.

  • get_active_player_name(): Returns the player name.

  • get_active_player_abilities(): Get Abilities for the active player.

  • get_active_player_runes(): Retrieve the full list of runes for the active player.

Player List and Individual Player Data

  • get_player_list(): Retrieve the list of heroes in the game and their stats.

  • get_player_scores(riot_id): Retrieve the list of the current scores for the player.

  • get_player_summoner_spells(riot_id): Retrieve the list of the summoner spells for the player.

  • get_player_main_runes(riot_id): Retrieve the basic runes of any player.

  • get_player_items(riot_id): Retrieve the list of items for the player.

Troubleshooting

  • Connection Error: Check if the League of Legends client is running.

  • Timeout Error: Verify that the game has actually started. This API does not work in the game lobby.

Precautions

  • This API only works when the League of Legends client is running and a game is in progress.

  • Use in compliance with Riot Games API policies.

License

All rights belong to Riot Games.

Available Tools

12 tools
get_active_playerC

Get all data about the active player.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

C2.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. It only states what the tool does ('Get all data'), without mentioning permissions, rate limits, response format, or whether it's a read-only operation. For a tool with zero annotation coverage, this leaves critical behavioral traits unspecified.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence with no wasted words. It's front-loaded and appropriately sized for a simple tool, though it could be slightly more informative without losing conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the lack of annotations and output schema, the description is incomplete. It doesn't explain what 'all data' includes, how it differs from sibling tools, or what the return values look like. For a tool in a context with many specific alternatives, this leaves significant gaps in understanding its role and output.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 0 parameters with 100% coverage, so no parameter documentation is needed. The description doesn't add parameter details, but that's appropriate here. Baseline is 4 for zero parameters, as the schema fully handles the lack of inputs.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states the tool's purpose ('Get all data about the active player'), which is clear but vague. It specifies the resource ('active player') and verb ('Get'), but doesn't distinguish it from siblings like 'get_player_list' or 'get_player_scores', leaving ambiguity about what 'all data' entails compared to more specific tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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. With siblings like 'get_player_items' and 'get_player_scores' that fetch specific data, the description doesn't clarify if this tool aggregates such details or serves a different purpose, offering no help in tool selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_active_player_abilitiesC

Get Abilities for the active player.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. The description only states what the tool does ('Get Abilities') without revealing any behavioral traits such as whether it's read-only, requires authentication, has rate limits, or what format the output might be in. For a tool with zero annotation coverage, this leaves critical gaps in understanding its operation and constraints.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise—just one sentence—and front-loaded with the core action ('Get Abilities'). There is no wasted verbiage or redundancy, making it efficient and easy to parse. Every word earns its place by directly stating the tool's purpose without unnecessary elaboration.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the lack of annotations and output schema, the description is incomplete for effective tool use. It does not explain what 'Abilities' entail (e.g., skill names, cooldowns, levels), how the data is returned, or any behavioral context. While the tool has no parameters, the description fails to compensate for the missing output and behavioral information, leaving the agent with insufficient context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has 0 parameters, and the schema description coverage is 100%, meaning there are no parameters to document. The description does not need to add parameter semantics beyond the schema, as there are none. A baseline score of 4 is appropriate since the absence of parameters is correctly reflected, and no additional explanation is required.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states the tool's purpose as 'Get Abilities for the active player,' which is a clear verb+resource combination. However, it does not differentiate this tool from its siblings (e.g., get_active_player_runes, get_player_summoner_spells), leaving ambiguity about what specifically distinguishes 'abilities' from other player attributes. The purpose is understandable but lacks specificity in the context of available alternatives.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus its siblings. It does not mention alternatives, prerequisites, or contextual cues (e.g., when abilities are needed vs. runes or items). Without any usage instructions, the agent must infer based on tool names alone, which is insufficient for optimal selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_active_player_nameC

Returns the player name.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2/5.0
Behavior1/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full burden for behavioral disclosure. 'Returns the player name' gives no information about permissions needed, rate limits, error conditions, whether this is a read-only operation, or what happens if no active player exists. The description provides minimal behavioral context beyond the basic operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise ('Returns the player name.') but this brevity comes at the cost of being under-specified rather than efficiently informative. While it's front-loaded with the core operation, it lacks the additional context needed for a tool in a complex gaming environment with many sibling alternatives.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity of the gaming context with 11 sibling tools and no annotations, the description is insufficiently complete. While an output schema exists (so return values don't need explanation), the description doesn't clarify what 'active player' means, how this differs from other player-related tools, or what behavioral constraints exist. For a tool in this rich ecosystem, more context is needed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has 0 parameters with 100% schema description coverage, so the schema fully documents the parameter requirements. The description doesn't need to explain any parameters, and it correctly doesn't mention any. The baseline for 0 parameters with full schema coverage is 4, as there's no parameter information to add beyond what's already documented.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Returns the player name' is a tautology that essentially restates the tool name 'get_active_player_name'. It doesn't specify what 'active player' means in this gaming context or how this differs from similar tools like 'get_active_player' or 'get_player_list'. The purpose is stated but lacks meaningful differentiation from sibling tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines1/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. With multiple player-related tools available (get_active_player, get_player_list, get_player_scores, etc.), there's no indication whether this tool retrieves just the name while others return more comprehensive data, or what specific scenario would call for using this particular tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_active_player_runesB

Retrieve the full list of runes for the active player.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It states the action is to 'Retrieve', implying a read-only operation, but does not clarify aspects like data freshness, error conditions, or response format. This leaves gaps in understanding how the tool behaves beyond its basic function.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, clear sentence that directly states the tool's function without unnecessary words. It is front-loaded and efficiently conveys the essential information, making it easy to parse and understand quickly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has no parameters and no output schema, the description adequately covers the basic purpose. However, it lacks details on the return value (e.g., format of the rune list) and behavioral context, which could be important for an agent to use it effectively, especially with no annotations to supplement.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 0 parameters with 100% coverage, so no parameter documentation is needed. The description does not add parameter details, which is appropriate here, but it could have mentioned if any implicit parameters (like context or state) are involved, though not required for a baseline score.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Retrieve') and the resource ('full list of runes for the active player'), making the purpose understandable. However, it does not explicitly differentiate this tool from sibling tools like 'get_player_main_runes' or 'get_player_items', which might also involve rune-related data, leaving some ambiguity about its unique scope.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives, such as 'get_player_main_runes' or 'get_all_game_data'. It lacks context about prerequisites, timing, or specific use cases, leaving the agent to infer usage based on the name alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_all_game_dataA

The Live League of Legends Client Data API has a number of endpoints that return a subset of the data returned by the /allgamedata endpoint. This endpoint is great for testing the Live Client Data API, but unless you actually need all the data from this endpoint, use one of the endpoints listed below that return a subset of the response.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.5/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full burden. It mentions the tool is 'great for testing' which hints at a read-only, non-destructive operation, but doesn't explicitly state this or describe rate limits, authentication needs, or what 'all the data' entails. The behavioral disclosure is incomplete for a tool with no annotation coverage.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is appropriately sized with three sentences that each add value: explaining the endpoint's scope, its testing utility, and when to use alternatives. It's front-loaded with the core purpose, though slightly verbose in phrasing.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no annotations, no output schema, and 0 parameters, the description provides good usage guidance but lacks details on what data is returned, format, or behavioral traits. It's minimally adequate for a zero-parameter tool but could better explain the 'all data' scope and testing context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has 0 parameters with 100% schema description coverage, so the schema fully documents the lack of inputs. The description doesn't need to add parameter semantics, and it doesn't introduce any confusion about parameters. Baseline 4 is appropriate for zero-parameter tools.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description explains this endpoint returns 'all the data' from the Live League of Legends Client Data API and mentions it's useful for testing, but doesn't specify what 'all the data' actually contains or what specific resources it retrieves. It distinguishes from siblings by noting they return subsets, but the core purpose remains somewhat vague.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly states when NOT to use this tool ('unless you actually need all the data') and directs users to alternative endpoints ('use one of the endpoints listed below that return a subset'). This provides clear guidance on when to choose this tool versus its siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_event_dataC

Get a list of events that have occurred in the game.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It states the tool 'gets' events, implying a read-only operation, but does not disclose behavioral traits such as whether it returns real-time or historical data, any rate limits, error conditions, or the format of the returned list. This is a significant gap for a tool with no annotation coverage.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, clear sentence with no wasted words. It is front-loaded and efficiently conveys the core purpose without unnecessary elaboration, making it easy for an agent to parse quickly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity (a tool to retrieve game events), lack of annotations, and no output schema, the description is incomplete. It does not explain what the returned events include, their structure, or any limitations, which is inadequate for proper tool invocation by an agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 0 parameters with 100% coverage, so there are no parameters to document. The description does not need to add parameter semantics, and it appropriately does not mention any. Baseline is 4 for zero parameters, as the schema fully covers the lack of inputs.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states the tool's purpose ('Get a list of events') and specifies the resource ('events that have occurred in the game'), which is clear. However, it lacks specificity about what types of events or how they are filtered, and it does not differentiate from siblings like 'get_game_stats' or 'get_all_game_data' that might overlap in scope.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. It does not mention any context, prerequisites, or exclusions, leaving the agent to infer usage based on the name alone among many sibling tools related to game data.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_game_statsD

Basic data about the game.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

D1.8/5.0
Behavior1/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full burden for behavioral disclosure. 'Basic data about the game' reveals nothing about whether this is a read operation, what permissions might be needed, whether it's cached or real-time, rate limits, or what format the response takes. For a tool with zero annotation coverage, this description provides no behavioral context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

While technically concise with just 4 words, this is under-specification rather than effective conciseness. The single sentence 'Basic data about the game' doesn't earn its place by providing meaningful information. A truly concise description would still convey essential purpose and differentiation from siblings.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity of game data retrieval tools (11 siblings), no annotations, and no output schema, the description is completely inadequate. It doesn't explain what 'basic data' means, how it differs from 'all game data' or 'event data', what the return format is, or any behavioral characteristics. For a tool in this rich context, the description fails to provide necessary completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has 0 parameters with 100% schema description coverage, so the schema fully documents the parameter situation. The description doesn't need to compensate for any parameter gaps. The baseline for 0 parameters with complete schema coverage is 4, as there are no parameters whose semantics need explanation beyond what the schema provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Basic data about the game' is vague and tautological - it essentially restates the tool name 'get_game_stats' without specifying what kind of data or what aspect of the game. It doesn't distinguish this tool from siblings like 'get_all_game_data' or 'get_event_data' which also retrieve game-related information. The description lacks a specific verb and resource scope.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines1/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides absolutely no guidance on when to use this tool versus alternatives. With 11 sibling tools that all retrieve game-related data, there's no indication whether this tool provides summary statistics, real-time game state, or metadata. No context about appropriate use cases or exclusions is mentioned.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_player_itemsB

Retrieve the list of items for the player.

ParametersJSON Schema
NameRequiredDescriptionDefault
riot_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. It states 'retrieve' which implies a read operation, but doesn't cover permissions, rate limits, error handling, or what 'list of items' entails (e.g., format, pagination). For a tool with no annotation coverage, this is a significant gap in transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, clear sentence with no wasted words. It's front-loaded with the core purpose, making it efficient and easy to parse. Every word earns its place, achieving optimal conciseness for such a simple statement.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has 1 parameter, no annotations, and an output schema exists (which handles return values), the description is minimally adequate. It states what the tool does but lacks details on behavior, usage context, or parameter specifics. For a simple retrieval tool, it meets the bare minimum but leaves gaps in guidance and transparency.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 1 parameter with 0% description coverage, so the schema provides no semantic context. The description doesn't explicitly mention parameters, but it implies 'player' as the target, which aligns with the 'riot_id' parameter. Since there are 0 parameters documented in the schema, the baseline is 4, as the description adds some implicit meaning without contradiction.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Retrieve the list of items for the player' clearly states the action (retrieve) and resource (items for player), but it's vague about what 'items' refers to (e.g., in-game items, inventory items) and doesn't differentiate from sibling tools like 'get_player_scores' or 'get_player_summoner_spells'. It avoids tautology by not just restating the name, but lacks specificity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention context (e.g., during a game, for inventory management) or exclusions, and with siblings like 'get_player_list' or 'get_all_game_data', there's no indication of how this tool fits into the broader API. This leaves the agent without usage direction.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_player_listB

Retrieve the list of heroes in the game and their stats.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the action ('Retrieve') but doesn't mention any traits like read-only status, potential rate limits, authentication needs, or what happens if no data is available. This leaves significant gaps for a tool that likely interacts with game data.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence that directly states the tool's function without any wasted words. It's appropriately sized and front-loaded, making it easy to understand at a glance.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given that there's an output schema (which should cover return values), no parameters, and no annotations, the description is minimally adequate. However, for a tool that retrieves game data, it lacks context on data scope (e.g., all heroes vs. filtered) and behavioral traits, leaving room for improvement despite the structured support.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 0 parameters with 100% coverage, meaning no parameters are documented in the schema. The description doesn't add parameter details, but since there are no parameters, this is acceptable. A baseline of 4 is appropriate as it doesn't need to compensate for missing schema information.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb ('Retrieve') and resource ('list of heroes in the game and their stats'), making the purpose understandable. However, it doesn't explicitly differentiate this tool from sibling tools like 'get_player_items' or 'get_player_scores', which also retrieve player-related data, so it misses the highest score.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. With siblings like 'get_active_player' (which might retrieve a single player) and 'get_all_game_data' (which might include broader data), there's no indication of context, exclusions, or prerequisites for selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_player_main_runesC

Retrieve the basic runes of any player.

ParametersJSON Schema
NameRequiredDescriptionDefault
riot_idYes

TDQS

C2.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It only states the action ('Retrieve') without mentioning whether this is a read-only operation, requires authentication, has rate limits, or what the output looks like. This is inadequate for a tool with zero annotation coverage.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise with a single sentence that directly states the tool's purpose. It's front-loaded and wastes no words, making it efficient for quick understanding.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity (1 parameter with 0% schema coverage, no annotations, no output schema), the description is incomplete. It doesn't explain parameters, behavioral traits, or output, leaving significant gaps for an AI agent to use the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate by explaining parameters. It doesn't mention the 'riot_id' parameter at all, leaving it undocumented. The description adds no meaning beyond the schema, failing to address the coverage gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states the purpose ('Retrieve the basic runes of any player') with a clear verb ('Retrieve') and resource ('basic runes'), but it's vague about what 'basic runes' means compared to sibling tools like 'get_active_player_runes'. It doesn't distinguish itself from siblings, making it unclear if this is for active games or general player data.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives like 'get_active_player_runes' or 'get_player_list'. It mentions 'any player' but doesn't specify context (e.g., in-game vs. profile data) or prerequisites, leaving usage ambiguous.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_player_scoresC

Retrieve the list of the current scores for the player.

ParametersJSON Schema
NameRequiredDescriptionDefault
riot_idYes

TDQS

C2.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden but lacks behavioral details. It doesn't specify if this is a read-only operation, requires authentication, has rate limits, or what the output format looks like (e.g., JSON structure, error handling). The description only states the basic action without additional context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, clear sentence with no wasted words. It's front-loaded and efficiently conveys the core purpose, making it easy to parse quickly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity (a tool with one parameter but no annotations or output schema), the description is incomplete. It doesn't cover behavioral aspects, parameter meaning, or return values, making it inadequate for an agent to fully understand how to use this tool effectively.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate but adds no parameter information. It doesn't explain what 'riot_id' is (e.g., a game identifier, player name), its format, or how it relates to retrieving scores, leaving the single required parameter undocumented beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Retrieve') and resource ('list of the current scores for the player'), making the purpose understandable. It distinguishes from siblings like 'get_player_items' or 'get_player_summoner_spells' by focusing specifically on scores, though it doesn't explicitly contrast with them.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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. It doesn't mention prerequisites, context (e.g., during a game), or compare to siblings like 'get_game_stats' or 'get_all_game_data', leaving usage ambiguous.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_player_summoner_spellsC

Retrieve the list of the summoner spells for the player.

ParametersJSON Schema
NameRequiredDescriptionDefault
riot_idYes

TDQS

C2.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the tool retrieves data, implying a read-only operation, but doesn't specify if it requires authentication, has rate limits, returns structured data, or handles errors. For a tool with zero annotation coverage, this is a significant gap in transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, straightforward sentence with no wasted words. It's front-loaded with the core action ('Retrieve'), making it easy to parse. However, it could be slightly more specific (e.g., mentioning it's for a game context) to improve clarity without losing conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has no annotations, no output schema, and low schema description coverage, the description is incomplete. It doesn't cover behavioral aspects like authentication or error handling, parameter details, or return values. For a tool with such minimal structured data, the description should provide more context to be fully helpful.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema description coverage is 0%, meaning the parameter 'riot_id' is undocumented in the schema. The description doesn't add any meaning beyond what the schema provides—it doesn't explain what a Riot ID is, its format, or how it's used. This fails to compensate for the low coverage, leaving the parameter poorly understood.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states the tool's purpose ('Retrieve the list of the summoner spells for the player') with a clear verb ('Retrieve') and resource ('summoner spells'), but it doesn't distinguish it from sibling tools like get_active_player_abilities or get_player_runes, which might retrieve similar player-related data. The purpose is understandable but lacks specificity about what makes this tool unique.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., needing a valid Riot ID), exclusions, or how it differs from siblings like get_player_items or get_player_main_runes. This leaves the agent with minimal context for tool selection.

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. Dates show when Glama detected each change.

  1. 12 tool updates
    • First observedget_active_player
    • First observedget_active_player_abilities
    • First observedget_active_player_name
    • First observedget_active_player_runes
    • First observedget_all_game_data
    • First observedget_event_data
    • First observedget_game_stats
    • First observedget_player_items
    • First observedget_player_list
    • First observedget_player_main_runes
    • First observedget_player_scores
    • First observedget_player_summoner_spells

TDQS

C2.7/5.0
Disambiguation2/5

Multiple tools have overlapping or unclear boundaries, causing potential confusion. For example, get_active_player_abilities, get_active_player_runes, and get_player_main_runes could be confused with each other or with get_active_player, and get_all_game_data overlaps in scope with several other tools like get_game_stats and get_event_data. The descriptions do not clearly differentiate these tools, leading to ambiguity in selection.

Naming Consistency4/5

The naming is mostly consistent with a verb_noun pattern (e.g., get_active_player, get_game_stats), but there are minor deviations such as get_all_game_data using 'all' as a prefix and get_player_main_runes using 'main' as an adjective. Overall, the naming is readable and follows a predictable structure, with only slight inconsistencies.

Tool Count4/5

With 12 tools, the count is reasonable for a League of Legends client data server, covering various aspects like player data, game stats, and events. It is slightly on the higher side but still well-scoped, as each tool targets specific data subsets, though some overlap exists. The number is appropriate for the domain without being excessive.

Completeness3/5

The tool set covers key data retrieval aspects such as player info, game stats, and events, but there are notable gaps. For instance, it lacks update or action-oriented tools (e.g., for interacting with the game), and some tools like get_all_game_data may duplicate others, reducing efficiency. While agents can work with the provided tools, the surface is not fully comprehensive for a complete client interaction experience.

Maintenance

ActivityInactive
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    B
    quality
    C
    maintenance
    A community-developed Model Context Protocol server that integrates with the Riot Games API to provide League of Legends data, enabling AI assistants to retrieve player information, ranked stats, champion mastery, and match summaries through natural language queries.
    5
    27
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    MCP server for Valorant esports analytics that exposes structured metrics and database query tools, enabling AI-assisted match analysis, player profiling, scouting reports, and coaching insights.
    Apache 2.0

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/johnnyinlee/lol-client-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server