Skip to main content
Glama

Cito API

match_details

Read-only

Deep match package: optional timelines, advanced stats, live state/snapshots, full map/game tree, media inventory.

When to use:

  • Analyst deep dive

  • Live in-game window (LoL/CS2/UFC)

  • Full demo list

Prefer over match_summary only when summary is insufficient. Prefer match_summary for short answers and default cards.

Do not use when: first-pass live board (use live_matches + match_summary).

Section selection: pass includeTimeline / includeLiveState / includeAdvanced booleans, OR an explicit sections[] list. UFC betting lines: sections:["odds"] (opt-in, never in the default set). If sections[] is non-empty it wins (booleans are ignored). LoL liveState/advanced require gameId.

Parallel-safe: yes. Upstream cost: 1–8 (section-gated). Example: { "game": "lol", "matchId": "lol-match-1", "includeTimeline": true, "includeLiveState": false }

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "game": "<game>",
      "matchId": "<matchId>"
    },
    "name": "match_details"
  }
}

Input Schema

NameRequiredDescriptionDefault
gameYesGame title: lol | cs2 | dota2 | cod | ufc | tennis | valorant. Example: "cs2".
gameIdNoLoL per-game live window target when distinct from matchId.
matchIdYesGame-native match id (UFC boutId).
sectionsNoExplicit section list; defaults to base+playerStats+gamesOrMaps+media. "odds" is opt-in: UFC returns moneyline summarised per fighter with bookmaker count, best and median American price and implied probability plus a count of every other market (closing lines for a finished fight come back with currentlyOffered=false rather than being omitted). Tennis odds were withdrawn alongside the /tennis/odds/* routes, so for any other game the section reports NOT_IMPLEMENTED. Odds exist for UFC only.
includeAdvancedNoInclude advanced packages when available (LoL).
includeTimelineNoInclude timeline section (heavy).
includeLiveStateNoInclude live state/snapshots.

Output Schema

NameRequiredDescriptionDefault
okYestrue if the tool succeeded
dataNoResult payload when ok is true; null on error
metaYes
errorNo
partialNo
paginationNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changed
    • changedInput schema / properties / game / description
      Previous value: -"Game title: lol | cs2 | dota2 | cod | ufc | tennis. Example: \"cs2\"."New value: +"Game title: lol | cs2 | dota2 | cod | ufc | tennis | valorant. Example: \"cs2\"."
    • changedInput schema / properties / game / enum
      Previous value: -[
      -  "lol",
      -  "cs2",
      -  "dota2",
      -  "cod",
      -  "ufc",
      -  "tennis"
      -]New value: +[
      +  "lol",
      +  "cs2",
      +  "dota2",
      +  "cod",
      +  "ufc",
      +  "tennis",
      +  "valorant"
      +]
  2. Changed1 schema field changed
    • changedInput schema / properties / sections / description
      Previous value: -"Explicit section list; defaults to base+playerStats+gamesOrMaps+media. \"odds\" is opt-in: UFC returns moneyline summarised per fighter with bookmaker count, best and median American price and implied probability plus a count of every other market (closing lines for a finished fight come back with currentlyOffered=false rather than being omitted); tennis returns the same bookmaker/market/outcome projection that tennis_odds serves, including oddsAvailable=false when no book is quoting. Odds exist for UFC and tennis only."New value: +"Explicit section list; defaults to base+playerStats+gamesOrMaps+media. \"odds\" is opt-in: UFC returns moneyline summarised per fighter with bookmaker count, best and median American price and implied probability plus a count of every other market (closing lines for a finished fight come back with currentlyOffered=false rather than being omitted). Tennis odds were withdrawn alongside the /tennis/odds/* routes, so for any other game the section reports NOT_IMPLEMENTED. Odds exist for UFC only."
  3. Changed1 schema field changed
    • changedInput schema / properties / sections / description
      Previous value: -"Explicit section list; defaults to base+playerStats+gamesOrMaps+media. \"odds\" (UFC) is opt-in: moneyline summarised per fighter with bookmaker count, best and median American price and implied probability, plus a count of every other market. Closing lines for a finished fight come back with currentlyOffered=false rather than being omitted."New value: +"Explicit section list; defaults to base+playerStats+gamesOrMaps+media. \"odds\" is opt-in: UFC returns moneyline summarised per fighter with bookmaker count, best and median American price and implied probability plus a count of every other market (closing lines for a finished fight come back with currentlyOffered=false rather than being omitted); tennis returns the same bookmaker/market/outcome projection that tennis_odds serves, including oddsAvailable=false when no book is quoting. Odds exist for UFC and tennis only."
  4. Changed2 schema fields changed
    • changedInput schema / properties / sections / description
      Previous value: -"Explicit section list; defaults to base+playerStats+gamesOrMaps+media."New value: +"Explicit section list; defaults to base+playerStats+gamesOrMaps+media. \"odds\" (UFC) is opt-in: moneyline summarised per fighter with bookmaker count, best and median American price and implied probability, plus a count of every other market. Closing lines for a finished fight come back with currentlyOffered=false rather than being omitted."
    • changedInput schema / properties / sections / items / enum
      Previous value: -[
      -  "base",
      -  "playerStats",
      -  "gamesOrMaps",
      -  "timeline",
      -  "liveState",
      -  "media",
      -  "advanced"
      -]New value: +[
      +  "base",
      +  "playerStats",
      +  "gamesOrMaps",
      +  "timeline",
      +  "liveState",
      +  "media",
      +  "advanced",
      +  "odds"
      +]
  5. First observed

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already cover safety (readOnlyHint, destructiveHint=false, openWorldHint), so the description focuses on what they cannot: parallel safety, section-gated upstream cost of 1–8, and the precedence rule that a non-empty sections[] overrides the booleans. It also discloses that LoL liveState/advanced require gameId. A minor gap remains in not flagging that cost scales with the number of requested sections beyond the 1–8 range.

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?

Well front-loaded: headline, then when-to-use, then anti-patterns, then section mechanics, then cost. The one redundancy is the pair 'Prefer over match_summary only when summary is insufficient' and 'Prefer match_summary for short answers and default cards', which say the same thing twice from both directions.

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

Completeness5/5

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

An output schema exists, so return-value detail is unnecessary; annotations cover the safety profile. What an agent still needs — section selection precedence, per-game constraints, cost, and parallel safety — is all present.

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?

Schema coverage is 100%, so the baseline is 3, but the description adds real meaning beyond it: sections[] wins over the include* booleans, odds is opt-in and never in the default set, and LoL live-state/advanced need gameId. The worked example payload shows the intended call shape. The odds field's own schema text is already thorough, so this is additive rather than decisive.

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 headline names the resource (a deep match package) and enumerates the payload it can carry: timelines, advanced stats, live state, map/game tree, media inventory. It is clearly distinguishable from match_summary by depth. It lacks a crisp verb like 'fetch' and never states the resource is a single match by id, though the required matchId parameter implies it.

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

Usage Guidelines5/5

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

Explicit when-to-use list (analyst deep dive, live in-game window, full demo list), explicit routing rules ('Prefer match_summary for short answers and default cards'), and an explicit do-not-use case ('first-pass live board — use live_matches + match_summary'). Every alternative is named with the condition that selects it.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources