Skip to main content
Glama
rexlManu

League of Legends MCP Server

by rexlManu

League of Legends MCP Server

npm version CI License: MIT

MCP server exposing 35 tools for League of Legends player analysis, match review, and training-plan generation.

Installation

npm install -g @rexlmanu/lol-mcp-server

Via npx (no install)

npx @rexlmanu/lol-mcp-server

From source

git clone https://github.com/rexlManu/lol-mcp-server.git
cd lol-mcp-server
pnpm install
pnpm build

Related MCP server: MCP Riot Server

Setup

cp .env.example .env
# Edit .env and add your RIOT_API_KEY

Get your Riot API key at https://developer.riotgames.com/

MCP Client Configuration

Add to your MCP client config (Cursor, Claude Desktop, etc.):

{
  "mcpServers": {
    "league-of-legends": {
      "command": "lol-mcp-server",
      "env": {
        "RIOT_API_KEY": "your-api-key-here"
      }
    }
  }
}

Or if installed from source:

{
  "mcpServers": {
    "league-of-legends": {
      "command": "node",
      "args": ["/path/to/lol-mcp-server/dist/index.js"],
      "env": {
        "RIOT_API_KEY": "your-api-key-here"
      }
    }
  }
}

Stack

  • Runtime: Node.js 20+, TypeScript

  • Package manager: pnpm

  • MCP SDK: @modelcontextprotocol/sdk

  • Validation: zod

  • Scraping: cheerio (Lolalytics, League Wiki)

  • Static data: Data Dragon API

  • Testing: vitest

pnpm dev          # Run with tsx (hot reload)
pnpm build        # Compile to dist/
pnpm start        # Run compiled server
pnpm test         # Run tests
pnpm typecheck    # Type checking

MCP Client Configuration

Cursor / VS Code

{
  "mcpServers": {
    "league-of-legends": {
      "command": "node",
      "args": ["dist/index.js"],
      "env": {
        "RIOT_API_KEY": "your-api-key-here"
      }
    }
  }
}

opencode

{
  "mcpServers": {
    "league-of-legends": {
      "command": "node",
      "args": ["dist/index.js"],
      "env": {
        "RIOT_API_KEY": "your-api-key-here"
      }
    }
  }
}

Tools (35 total)

Account & Profile (4)

Tool

Description

lol_get_account

Get Riot account info by Riot ID

lol_get_summoner

Get summoner info (level, icon) by PUUID

lol_get_ranked

Get ranked stats (tier, rank, LP, win rate)

lol_get_player_profile

Complete player profile in one call

Match History (3)

Tool

Description

lol_get_match_history

Get recent match IDs (with filters)

lol_get_match_details

Get detailed match data (batch supported)

lol_get_match_timeline

Get minute-by-minute match timeline

Match Review (5)

Tool

Description

lol_get_player_match_summary

Compact review stats for one player in one match

lol_get_player_deaths

Chronological death timeline with killer, assists, position, and context

lol_get_player_vision_summary

Compact vision review with wards, control wards, trinkets, and phase grouping

lol_get_champion_review

Multi-match compact review for recent games on one champion

lol_get_timeline_events

Filtered timeline events by participant, event type, and time range

Champion & Live (4)

Tool

Description

lol_get_champion_mastery

Get champion mastery data

lol_get_live_game

Check if player is in game

lol_get_champion_rotation

Get free champion rotation

lol_get_featured_games

Get featured games

League & Clash (7)

Tool

Description

lol_get_league_by_id

Get league info by ID

lol_get_league_entries

Get league entries by summoner

lol_get_league_entries_exp

Get league entries (paginated, by queue/tier/division)

lol_get_league_top

Get top players (challenger/grandmaster/master)

lol_get_clash_tournaments

Get active Clash tournaments

lol_get_clash_player

Get Clash player info

lol_get_clash_team

Get Clash team info

Challenges & Status (3)

Tool

Description

lol_get_challenges

Get all challenge configurations

lol_get_player_challenges

Get player challenge progress

lol_get_server_status

Get server status (maintenance/incidents)

Static Game Data (4)

Tool

Description

lol_get_all_champions

List all champions (from Data Dragon)

lol_get_champ_info

Detailed champion info (Data Dragon + Wiki)

lol_get_all_items

List all items with stats, cost, build path

lol_get_runes

Get rune trees with keystones and descriptions

Lolalytics (1)

Tool

Description

lol_get_builds_for_champion

Scrape Lolalytics for builds, runes, counters, meta

AI Analysis (4)

Tool

Description

lol_analyze_performance

Analyze recent performance with recommendations

lol_analyze_champion

Analyze performance on a specific champion

lol_get_improvement_tips

Get personalized improvement tips

lol_compare_players

Compare stats between two players

Region Support

User-facing regions: euw, eune, na, kr, br, lan, las, oce, ru, tr, jp, ph2, sg2, th2, tw2, vn2

Platform routing: euw1, eun1, na1, kr, jp1, br1, la1, la2, oc1, tr1, ru

Regional routing: europe, americas, asia, sea

Caching

Data Type

TTL

Live game / server status

15-30s

Account / summoner / ranked

60s

Champion mastery / match history

2min

Lolalytics pages

5min

Match details / timelines

1h

Static data (champions/items/runes)

24h

Error Handling

Error

Description

not found (404)

Player/match not found

rate limited (429)

Auto-retry with backoff

forbidden (403)

Private data or restricted access

invalid key (401)

Invalid Riot API key

scrape_layout_changed

Lolalytics page structure changed

network failure

Connection/API error

invalid region

Unknown region code

Project Structure

src/
  index.ts              # Entry point, MCP server setup
  config.ts             # Environment config
  riot/
    client.ts           # Riot API HTTP client with rate limiting
    regions.ts          # Region routing maps
    types.ts            # Core Riot API types
    types-extra.ts      # Additional Riot API types
  cache/
    cache.ts            # TTL-based in-memory cache
  static-data/
    dataDragon.ts       # Data Dragon API client
    wikiScraper.ts      # League Wiki scraper (cheerio)
    types.ts            # Static data types
  lolalytics/
    scraper.ts          # Lolalytics page fetcher
    parser.ts           # HTML parser (cheerio)
    types.ts            # Lolalytics types
  tools/
    account.ts          # Account, summoner, ranked, profile, match tools
    champion.ts         # Mastery, live game, rotation, featured games
    league.ts           # League, clash, challenges, status
    staticData.ts       # Champions, items, runes
    lolalytics.ts       # Lolalytics builds
    analysis.ts         # Performance analysis, tips, comparison
  analysis/
    performance.ts      # Performance analysis engine
    championReview.ts   # Champion-specific analysis
    trainingPlan.ts     # Improvement tips generator
    compare.ts          # Player comparison
tests/
  regions.test.ts       # Region mapping tests
  cache.test.ts         # Cache tests
  lolalytics-parser.test.ts  # Parser tests
  analysis.test.ts      # Analysis engine tests

License

MIT

Available Tools

35 tools
lol_analyze_championLoL analyze championC

Analyze performance on a specific champion

ParametersJSON Schema
NameRequiredDescriptionDefault
puuidYesPlayer PUUID
regionNoRegion: euw, eune, na, kr, br, lan, las, oce, ru, tr, jpeuw
championYesChampion name
platformNoPlatform: euw1, eun1, na1, kr, jp1, br1, la1, la2, oc1, tr1, rueuw1
matchCountNoNumber of matches to analyze

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 must convey behavioral traits. It only says 'Analyze performance' without mentioning read-only nature, auth needs, or side effects. This is insufficient.

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 concise and front-loaded, using a single sentence. It could be improved by adding more detail without becoming verbose.

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 (5 parameters, no output schema), the description is too minimal. It lacks information about what the analysis returns or how the tool behaves.

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

Parameters3/5

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

Schema description coverage is 100%, so baseline is 3. The description adds no additional meaning beyond what the schema already provides for the parameters.

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 it analyzes performance on a specific champion, which is a specific verb+resource. However, it doesn't differentiate from sibling tools like lol_analyze_performance, which likely does something similar.

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 on when to use this tool versus alternatives. The description does not specify context or prerequisites for usage.

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

lol_analyze_performanceLoL analyze performanceC

Analyze recent performance and give recommendations

ParametersJSON Schema
NameRequiredDescriptionDefault
puuidYesPlayer PUUID
queueNoQueue filter (420=Solo)
regionNoRegion: euw, eune, na, kr, br, lan, las, oce, ru, tr, jpeuw
championNoChampion ID filter
platformNoPlatform: euw1, eun1, na1, kr, jp1, br1, la1, la2, oc1, tr1, rueuw1
matchCountNoNumber of matches to analyze

TDQS

C2.5/5.0
Behavior2/5

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

No annotations provided, so description bears full burden. It only says 'analyze' and 'give recommendations', implying read-only but no mention of data freshness, rate limits, or computational cost. Lacks behavioral detail.

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 a single short sentence, which is concise but under-specified. It could be more informative without becoming wordy.

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 6 parameters and no output schema, the tool has complex behavior. The description is too thin—doesn't define 'recent' (uses matchCount parameter), performance metrics, or recommendation types.

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

Parameters3/5

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

Schema coverage is 100% with detailed parameter descriptions (e.g., 'Queue filter (420=Solo)'). The tool description adds no additional meaning beyond the schema, earning the baseline score of 3.

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 'analyze recent performance and give recommendations' is vague. It doesn't specify what type of performance metrics are analyzed (e.g., KDA, CS, win rate) or what kind of recommendations (e.g., champion picks, item builds). Compared to siblings like 'lol_get_match_history' or 'lol_analyze_champion', it 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?

No guidance on when to use this tool versus alternatives. For example, it doesn't say to use this for overall performance analysis versus 'lol_get_player_profile' for stats or 'lol_analyze_champion' for champion-specific tips. No exclusions or context provided.

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

lol_compare_playersLoL compare playersC

Compare stats between two players

ParametersJSON Schema
NameRequiredDescriptionDefault
regionNoRegion: euw, eune, na, kr, br, lan, las, oce, ru, tr, jpeuw
platformNoPlatform: euw1, eun1, na1, kr, jp1, br1, la1, la2, oc1, tr1, rueuw1
tagLineAYesPlayer A tag line
tagLineBYesPlayer B tag line
gameNameAYesPlayer A game name
gameNameBYesPlayer B game name
matchCountNoNumber of matches per player

TDQS

C2.2/5.0
Behavior1/5

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

No annotations provided, and the description gives no behavioral details such as how stats are computed, API calls, or limits. The tool's behavior is opaque.

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 (one sentence), but it sacrifices necessary detail for brevity. It is front-loaded but incomplete.

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?

The tool has 7 parameters and no output schema, yet the description only says 'Compare stats'. It lacks context on what stats are returned, how the comparison is displayed, or any post-conditions.

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

Parameters3/5

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

Schema coverage is 100% with descriptive parameter names and descriptions. The description adds no additional meaning beyond what is in the schema, so baseline 3 applies.

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 'Compare stats between two players' clearly states the verb and resource, but lacks specificity about which stats are compared. It distinguishes from siblings as the only compare tool, but is vague.

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 on when to use this tool versus alternatives like individual stat retrieval tools. The description does not mention any preconditions or context.

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

lol_get_accountLoL get accountA

Get Riot account info by Riot ID (gameName#tagLine)

ParametersJSON Schema
NameRequiredDescriptionDefault
regionNoRegion: euw, eune, na, kr, br, lan, las, oce, ru, tr, jp, ph2, sg2, th2, tw2, vn2euw
tagLineYesTag line (e.g. EUW, KR1)
gameNameYesGame name

TDQS

A4/5.0
Behavior3/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 implies a read operation but does not disclose potential side effects, authentication requirements, error handling (e.g., account not found), or rate limits. For a simple retrieval, the gap is moderate.

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, front-loaded sentence that conveys the essential information with no extraneous words. Every part is necessary.

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

Completeness4/5

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

Given the low complexity and full schema coverage, the description adequately explains the tool's purpose and input. It explicitly mentions the Riot ID format. However, it does not describe the return value (e.g., account details like puuid, summoner level), which would add completeness but is not critical since the tool name implies the output.

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

Parameters3/5

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

Schema description coverage is 100%, with each parameter having a description. The tool description does not add additional semantics beyond the schema (e.g., explaining the format of tagLine or region). According to guidelines, baseline 3 is appropriate when coverage is high.

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

Purpose5/5

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

The description uses a specific verb ('Get') and resource ('Riot account info'), and clarifies the input format ('Riot ID (gameName#tagLine)'). It clearly distinguishes from sibling tools that focus on game data, matches, champions, etc.

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

Usage Guidelines4/5

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

The description states the input format, making it clear when to use the tool (when you have a Riot ID). However, it does not explicitly mention when not to use it or provide alternatives among siblings. Since no other sibling tool retrieves account info, the context is sufficient but lacks exclusions.

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

lol_get_all_championsLoL get all championsB

List all current champions with ID, name, title, roles/tags

ParametersJSON Schema
NameRequiredDescriptionDefault
patchNoPatch version (default: latest)

TDQS

B3.4/5.0
Behavior2/5

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

No annotations provided, so description carries burden. It only states 'list all current champions' but doesn't disclose any behavioral traits like rate limits, caching behavior, or default patch handling.

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?

Single sentence is concise and front-loaded with the key information. Could be slightly expanded for clarity, but no wasted words.

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's simplicity and no output schema, the description is mostly adequate but could mention default patch behavior or response format for completeness.

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

Parameters3/5

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

Schema coverage is 100% with one optional parameter 'patch' described in schema. Description does not add additional meaning beyond the schema, so baseline score is appropriate.

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

Purpose5/5

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

Description clearly states it lists all current champions with specific fields (ID, name, title, roles/tags), distinguishing it from sibling tools that focus on individual champions or games.

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

Usage Guidelines3/5

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

No explicit when-to-use or alternatives mentioned, but the purpose is straightforward. With many sibling tools, some guidance could help, but the name and description make it reasonable to infer usage.

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

lol_get_all_itemsLoL get all itemsB

List all items with stats, cost, build path

ParametersJSON Schema
NameRequiredDescriptionDefault
groupNoFilter by tag/group
patchNoPatch version (default: latest)

TDQS

B3.3/5.0
Behavior2/5

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

No annotations are provided, so the description bears full responsibility. It only lists what the tool returns, but does not disclose behaviors like rate limits, authentication requirements, error handling, or whether the result is paginated.

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 sentence that is concise and front-loaded with the key information. Every word adds value, with no extraneous details.

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 simplicity of the tool (read-only list with two optional parameters and no output schema), the description is minimally complete. However, it could benefit from explaining what 'group' filters and what 'patch' refers to, as well as indicating the response format.

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

Parameters3/5

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

Schema coverage is 100% with descriptions already provided for both parameters. The tool description does not add any additional meaning beyond the schema, so baseline 3 is appropriate.

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

Purpose5/5

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

The description clearly states the action 'List', the resource 'all items', and the included fields 'stats, cost, build path'. It distinguishes this tool from sibling tools which focus on champions, matches, players, etc.

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, nor does it mention any prerequisites or exclusions. Among many sibling tools, this is the only item-listing tool, but the agent receives no explicit context.

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

lol_get_builds_for_championLoL get builds for championB

Scrape Lolalytics for best builds, runes, counters, and meta data for a champion

ParametersJSON Schema
NameRequiredDescriptionDefault
laneNoLane: top, jungle, mid, adc, support
rankNoRank: iron, bronze, silver, gold, plat, diamond, master, grandmaster, challenger, all
patchNoPatch version (default: current)
regionNoRegion: world, na, euw, eune, kr, br, lan, las, oce, ru, tr, jp
championYesChampion name (e.g. 'Ahri', 'Lee Sin')

TDQS

B3.2/5.0
Behavior2/5

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

No annotations provided, so the description must disclose behavior. It mentions scraping Lolalytics but does not explain if results are cached, real-time, or rate-limited. It also omits side effects, authentication needs, or response format.

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?

Single sentence, no unnecessary words, front-loaded with key action and resource. Efficient.

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?

For a scraping tool with no output schema, the description should explain return structure or limitations (e.g., patch dependency). It lacks this context, leaving the agent underinformed.

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

Parameters3/5

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

Schema coverage is 100%, with each parameter having a description. The tool description adds no extra meaning beyond what the schema provides, so baseline 3 is appropriate.

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

Purpose5/5

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

The description clearly states the tool scrapes Lolalytics for builds, runes, counters, and meta data, using a specific verb and resource. It distinguishes from sibling tools that focus on other LoL data, like champion info or match details.

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 on when to use this tool vs. alternatives like 'lol_get_champ_info' or 'lol_get_all_champions'. The description does not mention prerequisites, preferred scenarios, or when not to use it.

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

lol_get_challengesLoL get challengesB

Get all challenge configurations

ParametersJSON Schema
NameRequiredDescriptionDefault
platformNoPlatform: euw1, eun1, na1, kr, jp1, br1, la1, la2, oc1, tr1, rueuw1

TDQS

B3.3/5.0
Behavior2/5

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

No annotations provided, so description must carry full burden. It discloses no behavioral traits such as read-only nature, rate limits, or authentication needs. Minimal transparency beyond the action itself.

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?

Single sentence with zero wasted words. Efficiently front-loads the purpose.

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?

Adequate for a simple tool with one optional parameter and no output schema, but lacks explanation of what 'challenge configurations' entails or the return format. Minimal completeness.

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

Parameters3/5

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

Schema description coverage is 100% for the single optional parameter 'platform', including defaults and allowed values. The description adds no additional meaning, meeting but not exceeding the baseline of 3.

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

Purpose5/5

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

Description 'Get all challenge configurations' provides a clear verb and resource. It distinguishes this global config retrieval from sibling tools like 'lol_get_player_challenges' which fetch player-specific 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?

No guidance on when to use this tool vs alternatives (e.g., when to use lol_get_player_challenges instead). No context about prerequisites or use cases.

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

lol_get_champ_infoLoL get champ infoB

Get detailed champion info (stats, abilities, cooldowns, ratios, passive, skill order)

ParametersJSON Schema
NameRequiredDescriptionDefault
patchNoPatch version (default: latest)
championYesChampion name (e.g. 'Ahri', 'LeeSin')

TDQS

B3.2/5.0
Behavior2/5

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

No annotations are present, so the description carries the full burden. It does not disclose read-only nature, error handling (e.g., unknown champion), rate limits, or authentication needs. The behavior implied is a simple fetch, but details are missing.

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 sentence that front-loads the purpose and lists the key categories of information. While concise, it could be better structured (e.g., bullet points), but it remains clear and efficient.

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 output schema or annotations, the description lists return categories, which helps somewhat. However, it does not cover error cases, output format, or any constraints. For a simple tool with two parameters, it is minimally adequate but not complete.

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

Parameters3/5

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

Schema coverage is 100%, so the description does not need to add parameter details. The description adds context about what the tool returns, but does not enhance understanding of the 'patch' or 'champion' parameters beyond the schema. Baseline 3 is appropriate.

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

Purpose5/5

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

The description clearly states the tool returns 'detailed champion info' and explicitly lists the categories: stats, abilities, cooldowns, ratios, passive, skill order. This distinguishes it from sibling tools like lol_get_all_champions or lol_get_builds_for_champion, which serve different purposes.

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 usage guidelines are provided. The description does not indicate when to use this tool over alternatives, nor does it mention prerequisites, case sensitivity, or when not to use it. The agent has no guidance on contextual usage.

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

lol_get_champion_masteryLoL get champion masteryB

Get champion mastery data (list or single champion)

ParametersJSON Schema
NameRequiredDescriptionDefault
puuidYesPlayer PUUID
platformNoPlatform: euw1, eun1, na1, kr, jp1, br1, la1, la2, oc1, tr1, rueuw1
championIdNoSpecific champion ID (omit for top list)

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 must fully disclose behavioral traits. It only says 'get' without indicating read-only nature, rate limits, or what happens with absent championId. Very minimal disclosure.

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?

One sentence, very brief. It is not front-loaded with key information; the core function is clear but lacks structure like bullet points. Could be more informative without being wordy.

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?

With no output schema, the description should explain return values, but it doesn't. It doesn't mention what mastery data includes, how many results, or any limits. Incomplete for a tool with 3 parameters.

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

Parameters3/5

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

Schema covers all 3 parameters with descriptions. The description adds the 'list or single champion' context, but the schema already notes championId can be omitted for top list. No significant added value beyond schema.

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

Purpose5/5

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

The description clearly states the action ('Get'), resource ('champion mastery data'), and the two modes ('list or single champion'). This distinguishes it from sibling tools like 'lol_get_champion_rotation' and 'lol_get_champ_info'.

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 on when to use this tool vs alternatives. No prerequisites (e.g., need a PUUID from another tool) or exclusions are mentioned.

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

lol_get_champion_reviewLoL get champion reviewC

Get compact multi-match review for recent games on one champion

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoNumber of champion matches to return
queueNoQueue ID, default 420 ranked solo/duo
regionNoRegion: euw, eune, na, kr, br, lan, las, oce, ru, tr, jp, ph2, sg2, th2, tw2, vn2euw
tagLineYesRiot ID tag line
gameNameYesRiot ID game name
championIdNoOptional champion ID
championNameYesChampion name, e.g. Viktor

TDQS

C2.9/5.0
Behavior2/5

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

No annotations provided, so description carries full burden. It only states the tool gets a review but does not disclose behavioral traits like data freshness, what 'recent' means, any side effects, or authentication needs. 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.

Conciseness5/5

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

Single sentence with 10 words, directly stating purpose. No unnecessary information, front-loaded and efficient.

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?

No output schema exists, so description should explain return value format. It merely says 'compact multi-match review' without specifying structure, statistics, or performance metrics. Incomplete for agent decision-making.

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

Parameters3/5

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

Schema description coverage is 100%, so baseline is 3. Description adds no additional parameter context beyond what the schema already provides. It does not explain parameter relationships or usage nuances.

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?

Description clearly states verb 'Get' and resource 'compact multi-match review for recent games on one champion'. It distinguishes from sibling tools like lol_get_match_history (which returns raw matches) and lol_analyze_champion (deeper analysis). However, 'compact multi-match review' is somewhat vague and could be more specific about what the review contains.

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 on when to use this tool versus alternatives such as lol_get_match_history or lol_analyze_champion. No explicit context, exclusions, or prerequisites provided.

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

lol_get_champion_rotationLoL get champion rotationB

Get current free champion rotation

ParametersJSON Schema
NameRequiredDescriptionDefault
platformNoPlatform: euw1, eun1, na1, kr, jp1, br1, la1, la2, oc1, tr1, rueuw1

TDQS

B3.2/5.0
Behavior2/5

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

No annotations provided. Description does not disclose behavioral traits such as authentication requirements, rate limits, or what data is returned (e.g., champion IDs only, or full info). The tool appears simple, but transparency is limited.

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?

Description is a single sentence, very concise. No wasted words, but lacks structure.

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?

For a simple tool with one parameter and no output schema, the description is minimally adequate. However, it does not explain the return format or typical use case, leaving some gaps.

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

Parameters3/5

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

Schema coverage is 100% with a description for the platform parameter. Description adds no additional meaning beyond the schema, so baseline 3 is appropriate.

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

Purpose5/5

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

The description clearly states the tool gets the current free champion rotation, which is a specific verb+resource. It distinguishes from sibling tools like lol_get_all_champions or lol_get_champion_mastery.

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 on when to use this tool vs alternatives. Does not mention that it is read-only or that it returns a list of champion IDs.

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

lol_get_clash_playerLoL get clash playerC

Get Clash info for a player

ParametersJSON Schema
NameRequiredDescriptionDefault
puuidYesPlayer PUUID
platformNoPlatform: euw1, eun1, na1, kr, jp1, br1, la1, la2, oc1, tr1, rueuw1

TDQS

C2.8/5.0
Behavior2/5

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

No annotations provided. Description fails to disclose behavioral traits such as authentication requirements, error conditions (e.g., player not in Clash), or whether the operation is read-only. A minimal description leaves agents without critical context.

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?

Extremely concise at one sentence, but it lacks structure and additional informative content. No waste, but also no added value beyond the minimum.

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 no output schema, the description should hint at the response structure. 'Clash info' is too vague. Important context about what the tool returns is missing, making it incomplete for an agent to rely on.

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

Parameters3/5

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

Input schema provides 100% coverage with descriptions for both parameters. The description adds no additional meaning beyond what the schema already states, so baseline score of 3 applies.

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?

Description clearly states the tool gets Clash info for a player, distinguishing it from sibling tools like lol_get_clash_tournaments and lol_get_clash_team. However, 'Clash info' is somewhat vague, missing specifics like whether it includes player stats or team details.

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 on when to use this tool vs alternatives. Does not mention prerequisites such as having the player's PUUID or that it should be used after obtaining a summoner. Lacks any usage context or exclusion cases.

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

lol_get_clash_teamLoL get clash teamC

Get Clash team info

ParametersJSON Schema
NameRequiredDescriptionDefault
teamIdYesClash team ID
platformNoPlatform: euw1, eun1, na1, kr, jp1, br1, la1, la2, oc1, tr1, rueuw1

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. It discloses nothing beyond a simple read operation. There is no mention of authentication, rate limits, or return behavior. The description is insufficient for a tool with no annotations.

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 very short—one sentence—but this comes at the cost of missing important details. It is not verbose, but it is under-specified. Average conciseness for a minimal description.

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?

Without an output schema, the description should hint at return value structure. It does not. Given the simplicity of the tool (2 params, no nested objects), a slightly more detailed description would be expected to fully cover what the agent needs to know. The description falls short.

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

Parameters3/5

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

Schema description coverage is 100% with clear descriptions for both parameters (teamId and platform). The tool description adds no additional meaning beyond the schema, so the baseline score of 3 is appropriate.

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 'Get Clash team info' clearly states the action (get) and resource (Clash team info). It is not a tautology and indicates a specific retrieval operation. However, it lacks detail about what 'info' comprises and does not differentiate from sibling tools like lol_get_clash_player.

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 such as lol_get_clash_tournaments or lol_get_clash_player. The description does not specify any prerequisites or context, leaving the agent without decision support.

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

lol_get_clash_tournamentsLoL get clash tournamentsB

Get active/upcoming Clash tournaments

ParametersJSON Schema
NameRequiredDescriptionDefault
platformNoPlatform: euw1, eun1, na1, kr, jp1, br1, la1, la2, oc1, tr1, rueuw1

TDQS

B3.1/5.0
Behavior2/5

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

No annotations are provided, so the description must bear the full burden of behavioral disclosure. It only states the tool gets tournaments but does not mention aspects like authentication requirements, rate limits, or whether the operation is read-only. The word 'Get' implies non-destructive, but this is minimal.

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 concise sentence that communicates the core purpose without any wasted words. However, it could be slightly more front-loaded with important details like return format.

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 simplicity of the tool (one optional parameter, no output schema), the description is too brief. It does not explain what the tool returns (e.g., a list of tournament objects) or any limitations, leaving the agent underinformed.

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

Parameters3/5

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

The schema description coverage is 100% (the single parameter 'platform' has a description listing valid values). The tool description adds no additional meaning beyond what the schema already provides, earning the baseline score of 3.

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

Purpose5/5

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

The description clearly states the tool retrieves active/upcoming Clash tournaments, specifying the resource (Clash tournaments) and action (get). This distinguishes it from sibling tools like lol_get_clash_player and lol_get_clash_team, which focus on different Clash-related entities.

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. While the sibling list includes other Clash tools, there is no explicit advice on when to choose this one over lol_get_clash_player or lol_get_clash_team.

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

lol_get_improvement_tipsLoL get improvement tipsC

Get personalized improvement tips

ParametersJSON Schema
NameRequiredDescriptionDefault
goalNoSpecific improvement goal
roleNoRole filter: TOP, JUNGLE, MIDDLE, BOTTOM, UTILITY
puuidYesPlayer PUUID
regionNoRegion: euw, eune, na, kr, br, lan, las, oce, ru, tr, jpeuw
championNoChampion name filter
platformNoPlatform: euw1, eun1, na1, kr, jp1, br1, la1, la2, oc1, tr1, rueuw1
matchCountNoNumber of matches to analyze

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 must disclose behavioral traits. It fails to mention whether the tool is read-only, requires authentication, has rate limits, or fetches data from the Riot API. This is a critical gap.

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?

The description is extremely short (one sentence) but lacks essential details. It is under-specified rather than concisely informative. Every sentence should add value, but here it provides minimal context.

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?

The tool has 7 parameters and no output schema, so the description should explain the purpose and output more fully. It does not describe what the tips look like, how they are generated, or what the user can expect from the response.

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

Parameters3/5

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

All 7 parameters have descriptions in the input schema (100% coverage), so the schema already documents each parameter. The tool description adds no further semantic information beyond the schema, meeting the baseline expectation.

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 'Get personalized improvement tips' is vague. It does not specify what the tips are based on (e.g., recent matches, champion performance) or how they are personalized. Siblings like lol_analyze_performance and lol_analyze_champion suggest similar functionality, but no differentiation is provided.

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 on when to use this tool versus alternatives such as lol_analyze_performance or lol_compare_players. There is no mention of prerequisites or context where this tool is most appropriate.

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

lol_get_league_by_idLoL get league by idC

Get league info by league ID

ParametersJSON Schema
NameRequiredDescriptionDefault
leagueIdYesLeague ID
platformNoPlatform: euw1, eun1, na1, kr, jp1, br1, la1, la2, oc1, tr1, rueuw1

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 must fully disclose behavior. It only states 'Get league info', implying a read operation, but does not disclose rate limits, authentication needs, output format, or potential side effects. The description is too minimal for a tool with no annotations.

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 clear sentence, front-loaded with the action and resource. It is concise with no wasted words, though it could benefit from one additional sentence to clarify the return value.

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?

With no output schema, the description should explain what 'league info' includes. It does not. Given the tool's moderate complexity (2 parameters) and the lack of annotations, the description is incomplete for an agent to confidently use this tool.

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

Parameters3/5

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

The input schema has 100% description coverage, so the baseline is 3. The description adds no additional meaning beyond what is in the schema: it does not clarify the format of 'leagueId' or the effect of 'platform' (e.g., regional routing).

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 'Get league info by league ID' clearly states the verb ('get'), resource ('league info'), and identifier ('by league ID'). It differentiates from siblings like 'lol_get_league_entries' (which returns entries rather than league metadata) and 'lol_get_league_top' (top of league), but does not explicitly call out these distinctions.

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 such as 'lol_get_league_entries' or 'lol_get_league_top'. There is no mention of prerequisites, context, or exclusions.

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

lol_get_league_entriesLoL get league entriesC

Get league entries by PUUID

ParametersJSON Schema
NameRequiredDescriptionDefault
puuidYesPlayer PUUID
platformNoPlatform: euw1, eun1, na1, kr, jp1, br1, la1, la2, oc1, tr1, rueuw1

TDQS

C2.6/5.0
Behavior1/5

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

No annotations provided, and description lacks any behavioral details such as rate limits, data freshness, or potential side effects. The description only states the function without transparency.

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?

Extremely concise (one sentence) but at the cost of completeness. It is front-loaded but lacks sufficient detail. Could be expanded without being verbose.

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 no output schema and simple parameters, the description is too brief. It does not explain what league entries are, the structure of the response, or how to interpret results. Additional context would improve completeness.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents both parameters. The description adds no extra meaning beyond what the schema provides, hence baseline score of 3.

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?

Description clearly states action ('get') and resource ('league entries') with distinguishing filter ('by PUUID'). It differentiates from siblings like lol_get_league_by_id or lol_get_league_top, but could be more explicit about the 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?

No guidance on when to use this tool versus alternatives. Siblings like lol_get_league_by_id or lol_get_league_top may serve similar purposes but no distinctions are provided.

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

lol_get_league_entries_expLoL get league entries expC

Get league entries by queue, tier, division (paginated)

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPage number
tierYesTier: IRON, BRONZE, SILVER, GOLD, PLATINUM, EMERALD, DIAMOND, MASTER, GRANDMASTER, CHALLENGER
queueYesQueue type: RANKED_SOLO_5x5, RANKED_FLEX_SR
divisionYesDivision: I, II, III, IV
platformNoPlatform: euw1, eun1, na1, kr, jp1, br1, la1, la2, oc1, tr1, rueuw1

TDQS

C2.9/5.0
Behavior2/5

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

No annotations provided. The description adds 'paginated' as a trait, but does not disclose other important behaviors such as authentication needs, rate limits, data freshness, or whether the operation is read-only (likely read-only but not stated).

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?

Single sentence that is front-loaded and direct. No wasted words; every part contributes to understanding the core purpose.

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?

The description lacks details about return values (no output schema), pagination behavior (page size, total pages), and any constraints. For a data retrieval tool with 5 parameters, more context is needed for complete understanding.

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

Parameters3/5

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

Schema description coverage is 100%, so the baseline is 3. The description adds 'paginated' and the order of parameters, but does not add significant meaning beyond what the schema already provides for each parameter.

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 (Get), resource (league entries), and key parameters (queue, tier, division, pagination). However, it does not differentiate from the sibling tool 'lol_get_league_entries', which may have a similar purpose.

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 on when to use this tool versus alternatives like 'lol_get_league_entries' or 'lol_get_league_top'. The description lacks context about prerequisites, when not to use, or comparison with siblings.

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

lol_get_league_topLoL get league topB

Get top players in a league (challenger/grandmaster/master)

ParametersJSON Schema
NameRequiredDescriptionDefault
tierYesTier: CHALLENGER, GRANDMASTER, MASTER
queueYesQueue: RANKED_SOLO_5x5, RANKED_FLEX_SR
platformNoPlatform: euw1, eun1, na1, kr, jp1, br1, la1, la2, oc1, tr1, rueuw1

TDQS

B3.3/5.0
Behavior2/5

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

No annotations are provided, and the description lacks behavioral details such as rate limits, data freshness, pagination, or authorization requirements. The phrase 'get top players' only states the basic function without disclosing side effects or constraints.

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 concise sentence that front-loads the core purpose. It is efficient but could improve with structured details (e.g., bullet points for parameters or usage).

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?

With three parameters, no output schema, and no annotations, the description is too minimal. It does not explain the return format, common use cases, or how the tool fits into a workflow. For a tool listing top players, additional context like sorting or limits would be valuable.

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

Parameters3/5

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

The input schema has 100% description coverage for all three parameters. The description adds no additional meaning beyond what the schema already provides (e.g., listing tier options). Baseline 3 is appropriate as the schema carries the full burden.

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

Purpose5/5

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

The description clearly specifies the verb 'get', the resource 'top players', and the scope 'league (challenger/grandmaster/master)'. It distinguishes from sibling tools like 'lol_get_league_entries' by focusing on the top tiers only.

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

Usage Guidelines3/5

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

The description implies usage for retrieving top-tier league players but does not explicitly state when to use this tool versus alternatives like 'lol_get_league_entries' or 'lol_get_league_by_id'. No when-not-to-use guidance or prerequisite context is provided.

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

lol_get_live_gameLoL get live gameB

Check if a player is currently in game

ParametersJSON Schema
NameRequiredDescriptionDefault
platformNoPlatform: euw1, eun1, na1, kr, jp1, br1, la1, la2, oc1, tr1, rueuw1
summonerIdYesSummoner ID

TDQS

B3.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 full burden for behavioral transparency. It only states the purpose, lacking any disclosure about authentication needs, rate limits, or what happens when the player is not in a game.

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 with no wasted words. It is front-loaded and immediately clear.

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 too minimal. It does not explain what data is returned (e.g., game details) or handle edge cases, making it incomplete for a tool that likely has more context.

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

Parameters3/5

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

Schema coverage is 100%, so the description adds no additional meaning beyond the schema. The baseline score of 3 is appropriate as the description does not enhance parameter understanding.

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

Purpose5/5

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

The description clearly states the tool's purpose: 'Check if a player is currently in game'. It uses specific verb 'check' and resource 'player', and it distinguishes itself from sibling tools like match history or summoner info.

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

Usage Guidelines3/5

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

The description implies usage for checking live game status, but it does not explicitly state when to use this tool vs alternatives, nor does it provide any exclusions or prerequisites.

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

lol_get_match_detailsLoL get match detailsB

Get detailed info for one or more matches

ParametersJSON Schema
NameRequiredDescriptionDefault
regionNoRegion: euw, eune, na, kr, br, lan, las, oce, ru, tr, jp, ph2, sg2, th2, tw2, vn2euw
matchIdsYesMatch ID(s)

TDQS

B3.4/5.0
Behavior2/5

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

No annotations provided, description does not disclose behavioral traits such as rate limits, data size, what 'detailed info' includes, or any side effects. For a tool with no annotations, this is insufficient.

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?

Single concise sentence, no extraneous information, front-loaded with key action and resource.

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?

No output schema, no annotations, description is minimal. It lacks details on return format or what 'detailed info' entails. Given the tool's potential complexity (match details), the description is incomplete.

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

Parameters3/5

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

Schema coverage is 100% (both parameters described in schema), baseline is 3. Description adds no extra meaning beyond parameter names and defaults; e.g., doesn't explain format of matchIds or region values.

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

Purpose5/5

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

Description clearly states purpose: 'Get detailed info for one or more matches'. Verb is specific, resource is explicit, and it distinguishes from siblings like match_history (lists matches) and match_timeline (timeline events).

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

Usage Guidelines3/5

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

Implies usage for retrieving details of known match IDs, but no explicit guidance on when to use vs. siblings like match_history or match_timeline, and no mention of prerequisites or alternatives.

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

lol_get_match_historyLoL get match historyC

Get recent match IDs

ParametersJSON Schema
NameRequiredDescriptionDefault
countNoNumber of matches (1-100)
puuidYesPlayer PUUID
queueNoQueue ID filter (420=Solo, 440=Flex, 450=ARAM)
startNoStart index for pagination
regionNoRegion: euw, eune, na, kr, br, lan, las, oce, ru, tr, jp, ph2, sg2, th2, tw2, vn2euw
endTimeNoEpoch timestamp end
championNoChampion ID filter
startTimeNoEpoch timestamp start
championIdNoChampion ID filter (alias for champion)
championNameNoChampion name filter, e.g. Viktor

TDQS

C2.8/5.0
Behavior2/5

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

Without annotations, the description carries full burden for behavioral disclosure. It only states it gets recent match IDs, but does not explain what 'recent' means, authentication requirements, rate limits, or return behavior. The description is insufficient for safe agent invocation.

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 a single sentence, which is concise but arguably too terse given the tool's complexity (10 parameters). It front-loads the core purpose, but addition of a brief sentence on return type or usage context would improve it without sacrificing 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?

The tool has multiple optional filters and pagination parameters, yet the description does not mention the output format (a list of match IDs), pagination behavior, or how filters combine. Without an output schema, the description should provide more context to complete the tool's picture.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents all parameters. The description 'Get recent match IDs' adds no additional meaning beyond the existing schema descriptions. Thus a baseline score of 3 is appropriate.

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 'Get recent match IDs' clearly states the action (get) and the resource (recent match IDs). It effectively conveys the tool's purpose, though it does not differentiate from siblings like 'lol_get_match_details' which also retrieve match-related 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 instead of alternatives, nor does it mention prerequisites or exclusions. For a tool that can filter by queue, champion, and time range, the lack of usage context is a significant gap.

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

lol_get_match_timelineLoL get match timelineC

Get minute-by-minute match timeline

ParametersJSON Schema
NameRequiredDescriptionDefault
regionNoRegion: euw, eune, na, kr, br, lan, las, oce, ru, tr, jp, ph2, sg2, th2, tw2, vn2euw
matchIdYesMatch ID

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations, the description carries full burden for behavioral traits. It only states it 'gets' data, implying a read operation, but omits details on authentication, rate limits, or whether the timeline includes all events (e.g., vs 'lol_get_timeline_events').

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, clear sentence that front-loads the core purpose. It is appropriately sized for a simple tool, but could be slightly more informative without being verbose.

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?

No output schema and lack of explanation about what the timeline contains (e.g., events, stats) leaves the agent uncertain about the return structure. Given the existence of 'lol_get_timeline_events', the description should clarify the difference for completeness.

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

Parameters3/5

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

Schema coverage is 100%, so the schema already describes both parameters. The description adds no extra meaning beyond 'minute-by-minute', which is already implied. Baseline score of 3 is appropriate.

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 it gets a 'minute-by-minute match timeline', which is a specific resource and action. However, it does not distinguish itself from the sibling tool 'lol_get_timeline_events', which also likely returns timeline data, missing a key differentiation.

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 like 'lol_get_match_details' or 'lol_get_timeline_events'. There is no mention of prerequisites or appropriate contexts.

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

lol_get_player_challengesLoL get player challengesC

Get player challenge progress

ParametersJSON Schema
NameRequiredDescriptionDefault
puuidYesPlayer PUUID
platformNoPlatform: euw1, eun1, na1, kr, jp1, br1, la1, la2, oc1, tr1, rueuw1

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description must cover behavioral traits. It only states the operation type (get) but omits details like whether it is read-only, latency, rate limits, or required authentication. The agent cannot infer safety or side effects.

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 short sentence that effectively communicates the core purpose. It is front-loaded and free of fluff, though slightly under-specified for full clarity.

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 output schema and annotations, the description should explain what 'challenge progress' includes, typical response structure, or any nuances. The current text is insufficient for an agent to fully understand output expectations.

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

Parameters3/5

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

Schema description coverage is 100% (both parameters have descriptions in the schema). The tool description adds no additional context beyond the schema, meeting the baseline of 3.

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 'Get player challenge progress' clearly states the action (get) and the resource (player challenge progress). It is specific enough to differentiate from the sibling `lol_get_challenges` which likely covers all challenges rather than per-player progress.

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 like `lol_get_challenges`. There is no mention of prerequisites, contexts where it applies, or whether it should be used for specific player identification.

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

lol_get_player_deathsLoL get player deathsB

Get chronological death events for a player in a match with compact coaching context

ParametersJSON Schema
NameRequiredDescriptionDefault
regionNoRegion: euw, eune, na, kr, br, lan, las, oce, ru, tr, jp, ph2, sg2, th2, tw2, vn2euw
matchIdYesMatch ID
tagLineYesRiot ID tag line
gameNameYesRiot ID game name

TDQS

B3.3/5.0
Behavior2/5

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

No annotations are provided, so the description bears full responsibility for behavioral disclosure. It mentions 'chronological' and 'compact coaching context' but does not explain what the latter entails, nor does it disclose any constraints (e.g., rate limits, auth requirements, read-only nature). The description is too sparse to inform safe and correct invocation.

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 sentence with clear verb-first structure. It is concise but could include more detail without becoming verbose. No unnecessary words.

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 there is no output schema, the description should at least hint at the return format or data structure. It mentions 'compact coaching context' without explanation. With many sibling tools and no behavioral context, the description is incomplete for adequate understanding.

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

Parameters3/5

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

Schema coverage is 100%, so the input schema already documents all parameters with descriptions. The tool description adds no additional meaning beyond the schema (e.g., 'chronological' does not relate to any parameter). Baseline 3 is appropriate as the schema does the heavy lifting.

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

Purpose5/5

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

The description clearly states the verb 'Get', the resource 'chronological death events', and the scope 'for a player in a match with compact coaching context'. It effectively sets this tool apart from sibling tools like lol_get_match_timeline or lol_get_timeline_events by specifying death events and coaching context.

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

Usage Guidelines3/5

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

The description implies the tool is for retrieving death events, but it does not explicitly state when to use it versus alternatives (e.g., lol_get_timeline_events might also provide deaths). No exclusions or contextual hints are provided, leaving the agent to infer usage from the name and purpose alone.

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

lol_get_player_match_summaryLoL get player match summaryB

Get compact review stats for one player in one match without full match blob

ParametersJSON Schema
NameRequiredDescriptionDefault
regionNoRegion: euw, eune, na, kr, br, lan, las, oce, ru, tr, jp, ph2, sg2, th2, tw2, vn2euw
matchIdYesMatch ID, e.g. EUW1_123
tagLineYesRiot ID tag line
gameNameYesRiot ID game name

TDQS

B3.4/5.0
Behavior2/5

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

No annotations provided, so description must fully disclose behavior. It mentions 'compact review stats' but does not define what stats are included, return format, or any side effects/auth needs. 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.

Conciseness4/5

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

Single sentence, front-loaded with key information. Concise and to the point, though could include slightly more detail without losing efficiency.

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?

No output schema exists, so description should ideally hint at return shape. It describes input and purpose but omits output structure. Adequate but incomplete given sibling variety.

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

Parameters3/5

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

Input schema covers 100% of parameters with descriptions. The tool description adds no extra meaning beyond schema; baseline 3 is appropriate.

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

Purpose5/5

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

Description clearly states the verb 'Get' and resource 'compact review stats for one player in one match', and explicitly distinguishes from 'full match blob', implying a filtered subset. This effectively differentiates from sibling tools like lol_get_match_details.

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

Usage Guidelines3/5

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

The description implies use when compact stats are needed instead of full match data, but does not explicitly state when not to use or list specific alternatives. It provides only implied context without clear exclusions.

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

lol_get_player_profileLoL get player profileA

Get complete player profile in one call (account, summoner, ranked, mastery summary)

ParametersJSON Schema
NameRequiredDescriptionDefault
regionNoRegion: euw, eune, na, kr, br, lan, las, oce, ru, tr, jp, ph2, sg2, th2, tw2, vn2euw
tagLineYesTag line
gameNameYesGame name
platformNoPlatform: euw1, eun1, na1, kr, jp1, br1, la1, la2, oc1, tr1, rueuw1

TDQS

A3.5/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 it makes 'one call' but does not address potential issues like data freshness, error handling, or any restrictions. The description is too minimal to guide the agent on behavioral expectations.

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 sentence that is concise, front-loaded with the purpose, and contains no unnecessary information. Every part earns its place.

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 lack of output schema and annotations, the description is adequate for a simple aggregation tool but does not specify the return format or structure of the profile. It could be more complete by hinting at what fields are included, but it is not severely lacking.

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

Parameters3/5

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

Schema coverage is 100% and includes descriptions for each parameter. The tool description does not add any additional meaning beyond what the schema already provides, so the baseline score of 3 is appropriate.

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

Purpose5/5

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

The description clearly states the tool gets a complete player profile, listing the components (account, summoner, ranked, mastery summary). It distinguishes itself from sibling tools that fetch individual components, making the purpose very clear.

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

Usage Guidelines3/5

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

The description implies use when needing a full profile, but does not explicitly state when to use this tool vs. calling individual sibling tools (e.g., lol_get_account, lol_get_ranked). No alternatives or exclusions are mentioned, leaving the agent to infer usage.

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

lol_get_player_vision_summaryLoL get player vision summaryB

Get compact vision review data for a player in one match

ParametersJSON Schema
NameRequiredDescriptionDefault
regionNoRegion: euw, eune, na, kr, br, lan, las, oce, ru, tr, jp, ph2, sg2, th2, tw2, vn2euw
matchIdYesMatch ID
tagLineYesRiot ID tag line
gameNameYesRiot ID game name

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations present, the description carries full burden but only states it retrieves vision data; it does not disclose behavior like read-only nature, scope limitations, or output format.

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, front-loaded sentence that communicates the core function. It is concise but could benefit from slightly more context without losing efficiency.

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 no output schema, the description does not explain return values, and it lacks behavioral or usage context. For a tool with four parameters and many siblings, more detail would be beneficial.

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

Parameters3/5

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

Schema description coverage is 100% so baseline is 3. The description adds no additional parameter semantics beyond what the schema already provides (e.g., 'matchId', 'gameName', 'tagLine', 'region').

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

Purpose5/5

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

The description uses a specific verb 'Get' and a unique resource 'compact vision review data' for a player in one match, clearly distinguishing it from sibling tools like 'lol_get_player_match_summary' which covers overall match summary.

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 alternative vision or match analysis tools, nor any prerequisites or context for usage.

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

lol_get_rankedLoL get rankedC

Get ranked stats (tier, rank, LP, wins, losses, winRate)

ParametersJSON Schema
NameRequiredDescriptionDefault
puuidYesPlayer PUUID
platformNoPlatform: euw1, eun1, na1, kr, jp1, br1, la1, la2, oc1, tr1, rueuw1

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, and the description does not disclose any behavioral traits beyond 'get'. It does not mention whether the operation is read-only, any potential side effects, rate limits, or data freshness.

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 very concise and front-loaded. Every word serves a purpose, listing the returned data fields. Could be slightly expanded but remains efficient.

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 output schema, the description partially explains return values by listing fields. However, it lacks details on which queues are covered (e.g., solo/duo, flex) or how tier/rank are structured. It is adequate but not thorough.

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

Parameters3/5

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

Schema coverage is 100%, so the baseline is 3. The description adds no additional meaning for the parameters (puuid, platform) beyond what the schema already provides.

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 'Get' and the resource 'ranked stats' with enumerated fields (tier, rank, LP, wins, losses, winRate). However, it does not differentiate from sibling tools like lol_get_league_entries or lol_get_player_profile that may also return ranked 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?

No guidance is provided on when to use this tool over alternatives (e.g., lol_get_league_entries). There is no mention of prerequisites beyond the required puuid parameter or typical use cases.

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

lol_get_runesLoL get runesB

Get rune trees with keystones, minor runes, descriptions

ParametersJSON Schema
NameRequiredDescriptionDefault
groupNoFilter by tree name (Precision, Domination, Sorcery, Resolve, Inspiration)
patchNoPatch version (default: latest)

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 full burden for behavioral transparency. It only states the basic action ('get') and result content, but does not disclose whether it is destructive, requires authentication, has rate limits, or any side effects. For a data retrieval tool, this is minimally acceptable but leaves many safety aspects implicit.

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, front-loaded sentence that conveys essential information. It is efficient with no wasted words. A slightly structured format (e.g., listing returned data) could improve readability, but current form is adequate.

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

Completeness4/5

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

Given no output schema, the description reasonably explains return values ('rune trees with keystones, minor runes, descriptions'). The optional parameters are well-documented in the schema. For a simple data retrieval tool with low complexity, the description is sufficiently complete to guide correct invocation.

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 covers both parameters with descriptions (e.g., 'Filter by tree name' for group). The description adds context about what the tool returns (rune trees, keystones, etc.), which complements the schema. With 100% schema coverage, the description adds meaningful extra clarity.

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 tool retrieves rune trees including keystones, minor runes, and descriptions. It uses a specific verb ('Get') and resource ('rune trees'). No sibling tools directly overlap with rune data, so differentiation is not needed.

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. There is no mention of prerequisites, context, or exclusions. The agent must infer usage from the tool name and description alone.

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

lol_get_server_statusLoL get server statusA

Get server status (maintenance/incidents) for a region

ParametersJSON Schema
NameRequiredDescriptionDefault
regionNoRegion: euw, eune, na, kr, br, lan, las, oce, ru, tr, jpeuw

TDQS

A4/5.0
Behavior3/5

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

No annotations provided, so description carries full burden. It mentions 'maintenance/incidents', giving some insight into output content, but does not discuss request limits, authentication, or potential latency.

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?

Single sentence, no wasted words, and the purpose is front-loaded. Every word earns its place.

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

Completeness4/5

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

For a simple one-parameter tool with no output schema, the description is mostly complete. It hints at the return type (maintenance/incidents), though it could be more explicit about the format.

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

Parameters3/5

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

Schema covers the region parameter 100%, including a list of valid regions. The description adds no extra value beyond the schema; baseline 3 applies.

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

Purpose5/5

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

The description uses a specific verb 'get' and resource 'server status', and scopes it to a region. It clearly distinguishes from sibling tools, which focus on game data, not server maintenance.

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

Usage Guidelines4/5

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

The description implies use when checking server status. No explicit alternatives are given, but no other sibling tool provides this functionality, so the context is sufficiently clear.

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

lol_get_summonerLoL get summonerB

Get summoner info (level, profile icon) by PUUID

ParametersJSON Schema
NameRequiredDescriptionDefault
puuidYesPlayer PUUID
platformNoPlatform: euw1, eun1, na1, kr, jp1, br1, la1, la2, oc1, tr1, rueuw1

TDQS

B3.3/5.0
Behavior2/5

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

No annotations are present, so the description must fully disclose behavior. It only mentions the returned fields (level, profile icon) but fails to state that this is a read-only operation, whether authentication is needed, or what happens on failure (e.g., invalid PUUID). The basic description is insufficient for an informed agent.

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, highly concise sentence that immediately conveys the core function. No extraneous words or details.

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?

The description mentions the key output fields (level, profile icon), which is helpful given there is no output schema. However, it omits other important details such as the return format, potential error scenarios, and prerequisites (e.g., needing a PUUID from a prior call). It is adequate but not fully complete for a tool with no output schema.

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

Parameters3/5

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

Schema description coverage is 100%, with both parameters described adequately in the schema. The tool description adds no additional meaning beyond repeating 'by PUUID'. According to the rules, baseline 3 is correct as the schema already documents the parameters.

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

Purpose5/5

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

The description clearly states the action ('Get'), the resource ('summoner info'), specific fields ('level, profile icon'), and the identifier ('by PUUID'). This directly distinguishes it from sibling tools that retrieve other data (e.g., account, match history) or use different identifiers.

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 lol_get_account or lol_get_player_profile. There is no mention of prerequisites, limitations, or explicit context for selection.

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

lol_get_timeline_eventsLoL get timeline eventsC

Get filtered timeline events by participant, event type, and time range

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
regionNoRegion: euw, eune, na, kr, br, lan, las, oce, ru, tr, jp, ph2, sg2, th2, tw2, vn2euw
matchIdYesMatch ID
endTimeMsNo
eventTypesNoOptional event type filter
startTimeMsNo
participantIdNoOptional participant ID filter

TDQS

C2.9/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. It states 'Get' which implies read-only behavior, but there is no disclosure of other behavioral traits such as rate limits, response size, or whether the tool modifies data. The description is minimal and does not add value beyond the tool name.

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, clear sentence that conveys the core functionality. It is appropriately sized for a tool with a detailed schema, though it could be slightly more informative without being verbose.

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 7 parameters, no output schema, and no annotations, the description is insufficient. It does not explain the output format, order of events, pagination behavior, or region selection. For a filtering tool, more context on how filters interact (e.g., AND vs OR) would be helpful.

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

Parameters3/5

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

Schema description coverage is 57%, meaning some parameters (region, matchId, eventTypes, participantId) have descriptions. The tool description mentions participant, event type, and time range, which maps to three of the seven parameters. However, it does not explain the limit, startTimeMs, or endTimeMs beyond the schema defaults. It adds some context but is not comprehensive.

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 (Get) and resource (timeline events), and specifies filtering by participant, event type, and time range. It distinguishes the tool from siblings like lol_get_match_timeline, which likely returns unfiltered events. However, it does not explicitly mention that the events are for a match, though the required matchId parameter implies this.

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 (e.g., lol_get_match_timeline for full timeline). The description only states what the tool does, without explaining when filtering is beneficial or when not to use it. There is no mention of prerequisites or best practices.

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

TDQS

B3.1/5.0
Disambiguation4/5

Most tools target distinct data or actions, but some overlap exists: lol_get_league_entries and lol_get_league_entries_exp both handle league entries via different parameters, and lol_get_player_profile composites multiple endpoints, which could blur boundaries.

Naming Consistency5/5

All tools follow a consistent lol_verb_noun pattern (e.g., lol_get_live_game, lol_analyze_performance), with verbs like get, analyze, compare, and nouns clearly describing the resource, making the naming predictable and easy to navigate.

Tool Count3/5

35 tools is on the higher end, covering many specific endpoints (e.g., death events, vision summary) and composite functions. While each tool has a purpose, the count feels slightly bloated; could be streamlined by reducing redundancy.

Completeness4/5

The tool set covers a broad range of League of Legends data and analysis: account, matches, champions, items, runes, builds, and performance tips. Only minor gaps like advanced spectator features or tournament data beyond Clash are missing.

Maintenance

ActivityActive
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
    C
    quality
    D
    maintenance
    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.
    12
    12
    Apache 2.0
  • 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
  • F
    license
    Not graded
    quality
    D
    maintenance
    MCP server for Valorant match analysis. Enables fetching player stats, match history, agent performance, and more via Henrik's Valorant API.

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/rexlManu/lol-mcp-server'

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