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 }

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
gameYesGame title: lol | cs2 | dota2 | cod | ufc | tennis. 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

TableJSON 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. 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."
  2. 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."
  3. 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"
      +]
  4. First observed

TDQS

A5/5.0
Behavior5/5

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

Annotations cover the safety profile (readOnly, openWorld, non-destructive), and the description adds genuinely new behavioral context: parallel-safety, a section-gated upstream cost of 1–8, precedence rules for sections[] vs booleans, the LoL gameId precondition, and odds-specific caveats (closing lines returning currentlyOffered=false, NOT_IMPLEMENTED for non-UFC). This is well beyond what structured fields provide.

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?

Front-loaded with the one-line purpose, then bulleted when/when-not, section mechanics, and a concrete example call. Dense with no filler; the only mild redundancy is the paired match_summary preference lines, which earn their place as a routing rule.

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?

For a 7-parameter, multi-section tool with an existing output schema, the description supplies everything an agent needs: purpose, alternatives, section-selection mechanics, precedence, per-game constraints, cost, and an example invocation. Return-value explanation is correctly omitted given the output schema.

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

Parameters5/5

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

Schema coverage is already 100%, but the description adds precedence semantics absent from the schema — a non-empty sections[] overrides the booleans — plus the per-game conditional requirement that LoL liveState/advanced need gameId. It clarifies parameter interaction rather than restating field names.

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 first line names a specific verb-and-resource (deep match package) and enumerates its contents (timelines, advanced stats, live state/snapshots, map/game tree, media inventory). It explicitly frames itself relative to the sibling match_summary, so an agent can distinguish the two without opening schemas.

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?

Provides explicit when-to-use scenarios (analyst deep dive, live in-game window, full demo list), explicit when-not (first-pass live board → live_matches + match_summary), and names the preferred alternative for short answers. Routing decision is fully determined.

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