Skip to main content
Glama

Cito API

upcoming_schedule

Read-only

Upcoming matches/events for one game, with game-specific filters.

When to use:

  • "What's on this week?"

  • Calendar UI; team next matches

Prefer over: live_matches for not-yet-started fixtures.

Do not use when: only in-progress matches needed → live_matches.

Filter support (unsupported params are ignored with meta.warnings — do not assume filtering worked):

  • lol: hours, team (slug), league (slug)

  • cs2: team, from, to (ISO); hours not applied upstream

  • cod: team, tournamentId

  • dota2: limit/cursor primarily; team may be client-filtered where data allows

  • ufc: hours / from / to applied client-side after bout expansion (API has no hours); event shells labeled by event name; bouts use fighters[] corners

Parallel-safe: yes. Upstream cost: 1–2. Example: { "game": "lol", "hours": 72, "team": "t1", "limit": 20 }

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
toNoISO-8601 end bound.
fromNoISO-8601 start bound.
gameYesGame title: lol | cs2 | dota2 | cod | ufc | tennis. Example: "cs2".
teamNoTeam id or slug filter.
hoursNoHorizon in hours when from/to not set (default 72). Example: 48.
limitNoMax items to return (default 20, max 50). Example: 20.
cursorNoOpaque cursor from pagination.nextCursor only.
leagueNoLeague id or slug filter.
tournamentIdNoTournament id filter.

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

  1. First observed

TDQS

A5/5.0
Behavior5/5

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

Annotations already mark the tool read-only and non-destructive, and the description adds substantial behavioral context beyond that: unsupported params are silently ignored with meta.warnings, per-game filter application varies, 'hours not applied upstream' for cs2, client-side filtering for dota2/ufc, parallel safety, and upstream cost. These are critical operational details not derivable from the schema or annotations.

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 longer than average but every section earns its place: purpose, usage context, exclusions, per-game filter caveats, parallel safety, cost, and an example. The bulleted structure keeps it scannable and the critical filter caveat is front-loaded before the per-game breakdown.

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 multi-game tool with 9 parameters, varying filter support, and an output schema available, this description is complete. It covers what the tool returns conceptually, when to use it, when not to, per-game filter limitations, ignored-parameter behavior, and performance characteristics. Return-value details are appropriately left to 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?

Although schema coverage is 100%, the description adds meaning the schema cannot convey: which parameters are actually honored per game, which are ignored, and which are applied client-side rather than upstream. The worked example '{"game": "lol", "hours": 72, "team": "t1", "limit": 20}' further clarifies intended usage.

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 opens with a specific verb and resource: 'Upcoming matches/events for one game, with game-specific filters.' It immediately differentiates from the sibling 'live_matches' by stating 'Prefer over: live_matches for not-yet-started fixtures,' so an agent can tell which tool matches the requested state.

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?

Usage guidance is explicit: 'When to use' bullets cover calendar UI and team next-match queries, and 'Do not use when: only in-progress matches needed → live_matches' provides a direct exclusion and alternative. This is exactly the kind of when-versus-sibling guidance an agent needs.

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.

TDQS

A4.5/5.0
Disambiguation5/5

Each tool has a clearly distinct job, and the descriptions explicitly separate temporal states (live vs upcoming vs preview vs recap vs deep-dive) and interaction modes (one-best resolve vs browse search, curated tool vs raw escape hatch). Even the match/event families are carefully tiered so an agent should rarely misselect.

Naming Consistency3/5

Names are readable and grouped into recognizable families like list_*, match_*, and *_profile, but the overall convention is mixed: verb-prefixed names like resolve_entity and call_api sit alongside noun-phrase names like event_card, match_summary, and standings. Consistent snake_case prevents chaos, but there is no uniform verb_noun pattern.

Tool Count4/5

16 tools is at the upper edge of the ideal range, but the server spans multiple games and several composite read workflows, so each tool has a distinct purpose. It feels slightly heavy but not bloated.

Completeness4/5

The set covers health, discovery, entity resolution, profiles, standings, schedules, live matches, previews, recaps, and deep-dive match data, with call_api as an escape hatch for long-tail routes. Notable omissions like a standalone historical results search and some per-game upstream gaps keep it from a perfect score.

Resources