Skip to main content
Glama

Realtime Sports API

Server Details

Scores, play-by-play, schedules, box scores and odds: NFL, college football, NBA, MLB, NHL, soccer

If you are the author of this connector, you can claim ownership by verifying the domain or GitHub account it belongs to. Claimed connector authors can inspect health checks, view analytics, and manage their listing.
Status
Healthy
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL

TDQS

A3.7/5.0

Scored across 14 tools

Disambiguation4/5

get_event/get_events/get_live_events/get_schedule could superficially overlap, but descriptions explicitly draw boundaries (single game vs. scoreboard window vs. live-only vs. date/week range). get_box_score, get_plays, get_odds and get_injuries are each clearly distinct.

Naming Consistency5/5

Uniform verb_noun snake_case across the set, using list_ for collections, get_ for single resources, and search_ for lookups. Singular/plural forms (get_event vs get_events) are used meaningfully rather than arbitrarily.

Tool Count5/5

14 tools is well within the ideal range and each tool maps to a distinct resource or data type in the sports domain. No redundant or filler tools appear.

Completeness4/5

Covers leagues, teams, rosters, athletes, schedules, events, box scores, plays, injuries, news and odds — a broad lifecycle. Gaps exist: no league standings tool (only a standing summary inside get_team) and no get_athlete detail beyond search_athletes ids.

Available Tools

14 tools
get_box_scoreBox scoreB
Read-only
Inspect

Team totals and player statistics for a game (basketball, soccer, baseball, football). Not available before kickoff.

ParametersJSON Schema
NameRequiredDescriptionDefault
sportYesSport slug.
leagueYesLeague slug. Monitored leagues (sport/league): football/nfl (NFL), football/college-football (College Football), basketball/nba (NBA), basketball/mens-college-basketball (Men's College Basketball), baseball/mlb (MLB), hockey/nhl (NHL), soccer/usa.1 (MLS), soccer/usa.open (U.S. Open Cup), soccer/eng.1 (Premier League), soccer/uefa.champions (Champions League), soccer/uefa.europa (Europa League), soccer/eng.fa (FA Cup), soccer/esp.1 (LaLiga), soccer/ita.1 (Serie A), soccer/mex.1 (Liga MX), soccer/fifa.world (World Cup), soccer/eng.w.1 (Women's Super League), soccer/uefa.wchampions (Women's Champions League), soccer/uefa.europa.conf (Conference League), soccer/eng.league_cup (League Cup), soccer/ger.1 (Bundesliga), soccer/fra.1 (Ligue 1), soccer/usa.nwsl (NWSL), soccer/eng.2 (Championship), soccer/fifa.worldq.uefa (WC Qualifying UEFA), soccer/fifa.worldq.conmebol (WC Qualifying CONMEBOL), soccer/fifa.worldq.afc (WC Qualifying AFC), soccer/fifa.worldq.caf (WC Qualifying CAF), soccer/fifa.worldq.concacaf (WC Qualifying CONCACAF). Call list_leagues if unsure.
event_idYesEvent (game) id from get_live_events, get_events or get_schedule.

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already establish readOnlyHint=true and openWorldHint=true, so the safety profile is covered. The description adds one genuinely useful behavioral constraint — data is unavailable before game start — but says nothing about live-updating vs. final statistics, partial availability during play, or response shape.

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?

Two short sentences, front-loaded with what the tool returns and followed by the availability constraint. No filler; slightly terse rather than padded.

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 3-required-param lookup with full schema coverage and no output schema, the description covers the essentials of what it returns and when it becomes available. It is adequate but thin: it does not clarify whether statistics update live, whether the call should be repeated during a game, or what granularity of player stats to expect.

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%: sport enum, league slugs with guidance to call list_leagues, and event_id provenance (get_live_events/get_events/get_schedule) are all documented in the schema. The description only loosely gestures at supported sports and omits hockey, which the enum includes, so it adds no meaning beyond the schema. Baseline 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?

The description states a specific resource (team totals and player statistics for a single game) and the domain it applies to, which distinguishes it from sibling tools like get_plays, get_event, and get_team_roster. It is clear but never explicitly names the alternative tools an agent might confuse it with.

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?

'Not available before kickoff' is an implied when-to-use condition that prevents futile pre-game calls. However, there is no explicit guidance on choosing this tool over get_event, get_plays, or get_live_events, and no statement of what prerequisites (e.g., a completed or in-progress game) are needed beyond kickoff.

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

get_eventGame detailsB
Read-only
Inspect

Full details for one game: teams, score, status, venue, season/week, broadcasts, officials.

ParametersJSON Schema
NameRequiredDescriptionDefault
sportYesSport slug.
leagueYesLeague slug. Monitored leagues (sport/league): football/nfl (NFL), football/college-football (College Football), basketball/nba (NBA), basketball/mens-college-basketball (Men's College Basketball), baseball/mlb (MLB), hockey/nhl (NHL), soccer/usa.1 (MLS), soccer/usa.open (U.S. Open Cup), soccer/eng.1 (Premier League), soccer/uefa.champions (Champions League), soccer/uefa.europa (Europa League), soccer/eng.fa (FA Cup), soccer/esp.1 (LaLiga), soccer/ita.1 (Serie A), soccer/mex.1 (Liga MX), soccer/fifa.world (World Cup), soccer/eng.w.1 (Women's Super League), soccer/uefa.wchampions (Women's Champions League), soccer/uefa.europa.conf (Conference League), soccer/eng.league_cup (League Cup), soccer/ger.1 (Bundesliga), soccer/fra.1 (Ligue 1), soccer/usa.nwsl (NWSL), soccer/eng.2 (Championship), soccer/fifa.worldq.uefa (WC Qualifying UEFA), soccer/fifa.worldq.conmebol (WC Qualifying CONMEBOL), soccer/fifa.worldq.afc (WC Qualifying AFC), soccer/fifa.worldq.caf (WC Qualifying CAF), soccer/fifa.worldq.concacaf (WC Qualifying CONCACAF). Call list_leagues if unsure.
event_idYesEvent (game) id from get_live_events, get_events or get_schedule.
include_oddsNo

TDQS

B3/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and openWorldHint=true, so safety is covered. The description adds value by enumerating the returned fields in the absence of an output schema, but says nothing about the effect of include_odds, data freshness for live games, or any rate/permission 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?

A single front-loaded sentence with no filler, and the core purpose ('one game') leads. Brevity comes at the cost of any usage guidance, but the sentence itself is well-formed and waste-free.

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?

With no output schema, listing returned fields is genuinely useful, and the required-parameter trio is documented in the schema. However, a read tool spanning 25+ leagues with an unexplained include_odds flag and no usage guidance leaves clear gaps for correct invocation.

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

Parameters2/5

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

Schema coverage is 75%, below the high-coverage baseline, and the one undocumented parameter (include_odds) is left unexplained in both schema and description. The description mentions 'broadcasts' and 'officials' as outputs but clarifies nothing about sport/league/event_id semantics beyond what the schema already states.

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?

States a specific verb and resource ('Full details for one game') and enumerates the data returned (teams, score, status, venue, season/week, broadcasts, officials). An agent can distinguish it from list-style siblings like get_events, though no sibling is named explicitly.

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 is a pure field list with no when-to-use guidance, no prerequisites, and no routing to alternatives such as get_box_score or get_plays for deeper stats. The only sourcing hint (event_id from get_live_events/get_events/get_schedule) lives in the schema, not the description.

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

get_eventsCurrent scoreboardA
Read-only
Inspect

The league's current scoreboard window: recent, live and upcoming games. For specific dates or weeks use get_schedule.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax games (default 50).
sportYesSport slug.
detailNocompact (default) returns the key fields per game; full returns the complete v1 event objects.
leagueYesLeague slug. Monitored leagues (sport/league): football/nfl (NFL), football/college-football (College Football), basketball/nba (NBA), basketball/mens-college-basketball (Men's College Basketball), baseball/mlb (MLB), hockey/nhl (NHL), soccer/usa.1 (MLS), soccer/usa.open (U.S. Open Cup), soccer/eng.1 (Premier League), soccer/uefa.champions (Champions League), soccer/uefa.europa (Europa League), soccer/eng.fa (FA Cup), soccer/esp.1 (LaLiga), soccer/ita.1 (Serie A), soccer/mex.1 (Liga MX), soccer/fifa.world (World Cup), soccer/eng.w.1 (Women's Super League), soccer/uefa.wchampions (Women's Champions League), soccer/uefa.europa.conf (Conference League), soccer/eng.league_cup (League Cup), soccer/ger.1 (Bundesliga), soccer/fra.1 (Ligue 1), soccer/usa.nwsl (NWSL), soccer/eng.2 (Championship), soccer/fifa.worldq.uefa (WC Qualifying UEFA), soccer/fifa.worldq.conmebol (WC Qualifying CONMEBOL), soccer/fifa.worldq.afc (WC Qualifying AFC), soccer/fifa.worldq.caf (WC Qualifying CAF), soccer/fifa.worldq.concacaf (WC Qualifying CONCACAF). Call list_leagues if unsure.

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and openWorldHint=true, so the safety profile is covered. The description adds the useful scoping notion of a 'current window' spanning past, live, and future games, but says nothing about pagination, default limits, or how far the window extends in either direction.

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?

Two short sentences with zero waste; the scope statement comes first and the alternative-tool routing second, which is the correct front-loading.

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?

With no output schema, the description does characterize the return set (recent/live/upcoming games) adequately, and annotations cover mutability. The one meaningful gap is that the boundary with get_live_events and the extent of the 'window' are never clarified.

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%, including enum meanings, the default limit, and the compact/full detail distinction, so the schema carries the full burden. The description adds no parameter-level information beyond what is already documented.

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 names the resource ('the league's current scoreboard window') and its scope ('recent, live and upcoming games'), which is specific enough to distinguish it from a static schedule tool. The verb is implied rather than stated, but the returned set is unambiguous.

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?

It gives an explicit routing rule: use get_schedule for specific dates or weeks. However, it does not address the closely related sibling get_live_events, even though it advertises 'live' games, leaving the boundary between the two ambiguous.

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

get_injuriesInjury reportA
Read-only
Inspect

Current injury report grouped by team (empty in the off-season). Pass team_id for that team's complete report.

ParametersJSON Schema
NameRequiredDescriptionDefault
sportYesSport slug.
leagueYesLeague slug. Monitored leagues (sport/league): football/nfl (NFL), football/college-football (College Football), basketball/nba (NBA), basketball/mens-college-basketball (Men's College Basketball), baseball/mlb (MLB), hockey/nhl (NHL), soccer/usa.1 (MLS), soccer/usa.open (U.S. Open Cup), soccer/eng.1 (Premier League), soccer/uefa.champions (Champions League), soccer/uefa.europa (Europa League), soccer/eng.fa (FA Cup), soccer/esp.1 (LaLiga), soccer/ita.1 (Serie A), soccer/mex.1 (Liga MX), soccer/fifa.world (World Cup), soccer/eng.w.1 (Women's Super League), soccer/uefa.wchampions (Women's Champions League), soccer/uefa.europa.conf (Conference League), soccer/eng.league_cup (League Cup), soccer/ger.1 (Bundesliga), soccer/fra.1 (Ligue 1), soccer/usa.nwsl (NWSL), soccer/eng.2 (Championship), soccer/fifa.worldq.uefa (WC Qualifying UEFA), soccer/fifa.worldq.conmebol (WC Qualifying CONMEBOL), soccer/fifa.worldq.afc (WC Qualifying AFC), soccer/fifa.worldq.caf (WC Qualifying CAF), soccer/fifa.worldq.concacaf (WC Qualifying CONCACAF). Call list_leagues if unsure.
team_idNoTeam id from list_teams or from an event's homeTeam/awayTeam.

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and openWorldHint=true, so safety is covered. The description adds real behavioral context the annotations do not: results are grouped by team by default, the team_id filter changes the report to a 'complete' team-level view, and the dataset can be empty in the off-season. No freshness or rate-limit detail, but meaningful disclosure nonetheless.

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?

Two short sentences with zero filler; the default behavior and the caveat about the off-season come first, and the parametric instruction follows. Every clause carries information.

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?

With no output schema, the description carries the burden of describing returns; it conveys the grouping and emptiness behavior but says nothing about what an injury entry actually contains or about ordering/freshness. Adequate for a small read tool, but not fully self-sufficient.

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 description coverage is 100%, so the baseline is 3; the description goes beyond the schema by explaining the semantic effect of team_id (switches from league-wide grouped output to one team's complete report), which the schema's 'Team id from list_teams' line does not convey.

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?

States a specific verb and resource ('Current injury report') plus its scope (grouped by team, empty in the off-season). The team_id sentence distinguishes the filtered mode from the default grouped mode, so an agent can tell exactly what it gets without opening the schema.

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?

'Pass team_id for that team's complete report' implicitly tells the agent when to use the optional parameter, and the off-season note warns of empty results. However, it never names an alternative sibling (e.g. get_team_roster or get_news) or states a when-not-to-use condition, so guidance is implied rather than explicit.

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

get_live_eventsLive gamesA
Read-only
Inspect

Games in progress right now for a league, with score, period/clock and status. Empty list when nothing is live. Data is typically 20-30 s behind live play.

ParametersJSON Schema
NameRequiredDescriptionDefault
sportYesSport slug.
detailNocompact (default) returns the key fields per game; full returns the complete v1 event objects.
leagueYesLeague slug. Monitored leagues (sport/league): football/nfl (NFL), football/college-football (College Football), basketball/nba (NBA), basketball/mens-college-basketball (Men's College Basketball), baseball/mlb (MLB), hockey/nhl (NHL), soccer/usa.1 (MLS), soccer/usa.open (U.S. Open Cup), soccer/eng.1 (Premier League), soccer/uefa.champions (Champions League), soccer/uefa.europa (Europa League), soccer/eng.fa (FA Cup), soccer/esp.1 (LaLiga), soccer/ita.1 (Serie A), soccer/mex.1 (Liga MX), soccer/fifa.world (World Cup), soccer/eng.w.1 (Women's Super League), soccer/uefa.wchampions (Women's Champions League), soccer/uefa.europa.conf (Conference League), soccer/eng.league_cup (League Cup), soccer/ger.1 (Bundesliga), soccer/fra.1 (Ligue 1), soccer/usa.nwsl (NWSL), soccer/eng.2 (Championship), soccer/fifa.worldq.uefa (WC Qualifying UEFA), soccer/fifa.worldq.conmebol (WC Qualifying CONMEBOL), soccer/fifa.worldq.afc (WC Qualifying AFC), soccer/fifa.worldq.caf (WC Qualifying CAF), soccer/fifa.worldq.concacaf (WC Qualifying CONCACAF). Call list_leagues if unsure.
include_oddsNoAttach current betting odds when available.

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already cover read-only and open-world characteristics, so the bar is lower. The description adds genuinely useful traits beyond them: a 20-30 second data lag behind live play and the empty-list semantics, both of which affect how an agent interprets results.

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?

Three short sentences, front-loaded with the core purpose followed by the empty-result and freshness caveats. Every sentence earns its place with no redundancy.

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 read-only listing tool with no output schema, the description covers purpose, scope, return payload, empty-result behavior and data staleness. With annotations carrying the safety profile and the schema documenting all four params, nothing essential is missing.

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% and the league param carries a full monitored-league catalog, so the schema does the heavy lifting. The description adds no parameter-level meaning (sport, league, detail, include_odds are never mentioned), so the baseline 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?

States a specific verb and resource: games currently in progress for a league, plus the returned payload (score, period/clock, status). The phrase 'right now' implicitly separates it from get_events/get_schedule, but no sibling is named explicitly, which keeps it just short of a 5.

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?

Usage is implied by 'in progress right now' and reinforced by 'Empty list when nothing is live', which tells the agent what a null result means. However, it never states when to prefer this over get_events, get_schedule or get_event, so the routing decision is left to inference.

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

get_newsLeague newsA
Read-only
Inspect

Latest news headlines for a league (optionally one team), with links.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
sportYesSport slug.
leagueYesLeague slug. Monitored leagues (sport/league): football/nfl (NFL), football/college-football (College Football), basketball/nba (NBA), basketball/mens-college-basketball (Men's College Basketball), baseball/mlb (MLB), hockey/nhl (NHL), soccer/usa.1 (MLS), soccer/usa.open (U.S. Open Cup), soccer/eng.1 (Premier League), soccer/uefa.champions (Champions League), soccer/uefa.europa (Europa League), soccer/eng.fa (FA Cup), soccer/esp.1 (LaLiga), soccer/ita.1 (Serie A), soccer/mex.1 (Liga MX), soccer/fifa.world (World Cup), soccer/eng.w.1 (Women's Super League), soccer/uefa.wchampions (Women's Champions League), soccer/uefa.europa.conf (Conference League), soccer/eng.league_cup (League Cup), soccer/ger.1 (Bundesliga), soccer/fra.1 (Ligue 1), soccer/usa.nwsl (NWSL), soccer/eng.2 (Championship), soccer/fifa.worldq.uefa (WC Qualifying UEFA), soccer/fifa.worldq.conmebol (WC Qualifying CONMEBOL), soccer/fifa.worldq.afc (WC Qualifying AFC), soccer/fifa.worldq.caf (WC Qualifying CAF), soccer/fifa.worldq.concacaf (WC Qualifying CONCACAF). Call list_leagues if unsure.
team_idNoTeam id from list_teams or from an event's homeTeam/awayTeam.

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and openWorldHint=true, so the safety profile is covered. The description adds that results carry links, a small return-format detail, but says nothing about result limits, defaults, or ordering, so it adds only modest value beyond the 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?

A single tight sentence that front-loads the resource and qualifies the optional scope. Nothing is padded and no sentence fails to earn 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?

With no output schema, the description's mention of links partially covers the return shape, and the schema handles league/sport identification. Still missing are the default/max behavior of limit and anything about recency or ordering of 'latest' headlines, so it is 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 description coverage is 75%: league carries an extensive slug list and sport has an enum, so the schema does most of the work. The description only reinforces that team_id is optional; the limit parameter (1-25, no default stated) is undocumented in both schema and description.

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?

Names a specific verb and resource ('Latest news headlines for a league') plus the optional narrowing to one team, which no sibling tool covers. It is unambiguous, though it does not explicitly contrast itself with any sibling (none of which fetch news), so it stops short of a 5.

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 parenthetical '(optionally one team)' implies when to pass team_id versus when to omit it, which is useful implicit guidance. However, there is no explicit when-to-use statement, no exclusions, and no named alternative for related needs (e.g., list_leagues is only referenced from the schema, not the description).

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

get_oddsBetting oddsA
Read-only
Inspect

Current spread, moneyline and total for a game from a single source book. Returns null when no odds are available.

ParametersJSON Schema
NameRequiredDescriptionDefault
sportYesSport slug.
leagueYesLeague slug. Monitored leagues (sport/league): football/nfl (NFL), football/college-football (College Football), basketball/nba (NBA), basketball/mens-college-basketball (Men's College Basketball), baseball/mlb (MLB), hockey/nhl (NHL), soccer/usa.1 (MLS), soccer/usa.open (U.S. Open Cup), soccer/eng.1 (Premier League), soccer/uefa.champions (Champions League), soccer/uefa.europa (Europa League), soccer/eng.fa (FA Cup), soccer/esp.1 (LaLiga), soccer/ita.1 (Serie A), soccer/mex.1 (Liga MX), soccer/fifa.world (World Cup), soccer/eng.w.1 (Women's Super League), soccer/uefa.wchampions (Women's Champions League), soccer/uefa.europa.conf (Conference League), soccer/eng.league_cup (League Cup), soccer/ger.1 (Bundesliga), soccer/fra.1 (Ligue 1), soccer/usa.nwsl (NWSL), soccer/eng.2 (Championship), soccer/fifa.worldq.uefa (WC Qualifying UEFA), soccer/fifa.worldq.conmebol (WC Qualifying CONMEBOL), soccer/fifa.worldq.afc (WC Qualifying AFC), soccer/fifa.worldq.caf (WC Qualifying CAF), soccer/fifa.worldq.concacaf (WC Qualifying CONCACAF). Call list_leagues if unsure.
event_idYesEvent (game) id from get_live_events, get_events or get_schedule.

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and openWorldHint=true, so safety is covered. The description adds genuinely useful behavioral context beyond that: odds come from a single source book, and the tool returns null when no odds exist, which an agent must handle rather than assume a populated result.

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?

Two short sentences, zero filler, with the content of the response front-loaded ahead of the edge-case null note. Nothing could be cut without losing information.

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?

With no output schema, the description carries the burden of describing the return shape and does so in outline (spread, moneyline, total, null case). It does not explain the structure or units of those fields or whether multiple books are aggregated, so it is solid but not fully 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 description coverage is 100%: sport's enum, league's slug list and event_id's provenance are all documented in the schema. The description adds no parameter-level detail beyond what the schema provides, so the 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?

States a specific verb and resource (get current odds) and enumerates exactly what is returned: spread, moneyline and total for a game. The 'single source book' scoping and the null-return note make it unambiguous against siblings like get_event or get_box_score, which return different data for the same game.

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?

Usage is implied by the phrasing 'for a game' and the schema's note that event_id comes from get_live_events, get_events or get_schedule, but the description itself gives no explicit when-to-use or when-not-to-use guidance. No exclusions or prerequisites are stated in the text.

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

get_playsPlay-by-playA
Read-only
Inspect

Play-by-play for a game, oldest first, paginated. Use a larger limit (up to 300 here) to get more plays per call; check pagination.hasNextPage.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPage number (default 1).
limitNoPlays per page (default 50).
sportYesSport slug.
leagueYesLeague slug. Monitored leagues (sport/league): football/nfl (NFL), football/college-football (College Football), basketball/nba (NBA), basketball/mens-college-basketball (Men's College Basketball), baseball/mlb (MLB), hockey/nhl (NHL), soccer/usa.1 (MLS), soccer/usa.open (U.S. Open Cup), soccer/eng.1 (Premier League), soccer/uefa.champions (Champions League), soccer/uefa.europa (Europa League), soccer/eng.fa (FA Cup), soccer/esp.1 (LaLiga), soccer/ita.1 (Serie A), soccer/mex.1 (Liga MX), soccer/fifa.world (World Cup), soccer/eng.w.1 (Women's Super League), soccer/uefa.wchampions (Women's Champions League), soccer/uefa.europa.conf (Conference League), soccer/eng.league_cup (League Cup), soccer/ger.1 (Bundesliga), soccer/fra.1 (Ligue 1), soccer/usa.nwsl (NWSL), soccer/eng.2 (Championship), soccer/fifa.worldq.uefa (WC Qualifying UEFA), soccer/fifa.worldq.conmebol (WC Qualifying CONMEBOL), soccer/fifa.worldq.afc (WC Qualifying AFC), soccer/fifa.worldq.caf (WC Qualifying CAF), soccer/fifa.worldq.concacaf (WC Qualifying CONCACAF). Call list_leagues if unsure.
event_idYesEvent (game) id from get_live_events, get_events or get_schedule.

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint and openWorldHint, so safety is covered; the description adds value beyond that with the sort order (oldest first), the pagination contract (hasNextPage), and the effective per-call cap of 300. It stops short of describing play record contents or rate limits.

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?

Two tight sentences: the resource and ordering come first, then the pagination mechanics. Nothing is redundant or padding.

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?

With no output schema, the description does carry the return-side burden and discharges part of it by naming the pagination object and hasNextPage. It omits what a play record actually contains, which is a minor gap for a five-parameter listing 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?

Schema description coverage is 100%, so page, limit, sport, league and event_id are fully documented in the schema itself (including the monitored-league list and the list_leagues fallback). The description only echoes the limit ceiling already stated there, adding no new parameter meaning.

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?

States a specific resource (play-by-play for a game) and ordering (oldest first), which cleanly separates it from siblings like get_box_score and get_event. An agent can pick it without opening the schema.

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?

Gives practical invocation advice (raise limit up to 300, check pagination.hasNextPage) but never says when to choose this over get_box_score or get_event, nor any prerequisites. Usage is implied by the resource name rather than stated.

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

get_scheduleScheduleA
Read-only
Inspect

Games in a date range (start_date/end_date, YYYY-MM-DD, at most 31 days, US Eastern calendar days like most US schedules) or, for NFL and college football, a season week (season + week). Up to 200 games.

ParametersJSON Schema
NameRequiredDescriptionDefault
weekNoWeek number (NFL / college football only).
sportYesSport slug.
detailNocompact (default) returns the key fields per game; full returns the complete v1 event objects.
leagueYesLeague slug. Monitored leagues (sport/league): football/nfl (NFL), football/college-football (College Football), basketball/nba (NBA), basketball/mens-college-basketball (Men's College Basketball), baseball/mlb (MLB), hockey/nhl (NHL), soccer/usa.1 (MLS), soccer/usa.open (U.S. Open Cup), soccer/eng.1 (Premier League), soccer/uefa.champions (Champions League), soccer/uefa.europa (Europa League), soccer/eng.fa (FA Cup), soccer/esp.1 (LaLiga), soccer/ita.1 (Serie A), soccer/mex.1 (Liga MX), soccer/fifa.world (World Cup), soccer/eng.w.1 (Women's Super League), soccer/uefa.wchampions (Women's Champions League), soccer/uefa.europa.conf (Conference League), soccer/eng.league_cup (League Cup), soccer/ger.1 (Bundesliga), soccer/fra.1 (Ligue 1), soccer/usa.nwsl (NWSL), soccer/eng.2 (Championship), soccer/fifa.worldq.uefa (WC Qualifying UEFA), soccer/fifa.worldq.conmebol (WC Qualifying CONMEBOL), soccer/fifa.worldq.afc (WC Qualifying AFC), soccer/fifa.worldq.caf (WC Qualifying CAF), soccer/fifa.worldq.concacaf (WC Qualifying CONCACAF). Call list_leagues if unsure.
seasonNoSeason year, used with week.
end_dateNoLast day, YYYY-MM-DD (US Eastern). Defaults to start_date.
start_dateNoFirst day, YYYY-MM-DD (US Eastern).
season_typeNo1 preseason, 2 regular (default), 3 postseason.

TDQS

A3.8/5.0
Behavior4/5

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

With readOnlyHint and openWorldHint already declaring safety and external reach, the description adds real behavioral context: a 31-day maximum window, a 200-game result cap, and US Eastern calendar-day semantics. This is meaningful disclosure beyond the annotations, though it omits what happens on the boundary cases (e.g., no start_date supplied).

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?

A single dense sentence that front-loads the date-range mode and follows with the weekly exception and result cap. Every clause carries information; the parenthetical nesting is slightly heavy but not wasteful.

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 tool with no output schema, the description covers the two input modes, formats, limits, and the 200-game cap. It does not state default behavior when start_date is omitted (end_date defaults to start_date is in schema, but start_date's absence is unaddressed), leaving a minor gap.

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 genuine meaning: the date format, the 31-day constraint, the Eastern-time convention, and the required pairing of season+week for the weekly mode. That exceeds what the schema alone conveys.

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?

States a specific resource (games/schedule) and lays out two distinct query modes (date range vs. season week). It is clear on its own, but it never distinguishes itself from the sibling get_events, which an agent could plausibly confuse it with.

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?

It specifies when the season+week mode applies (NFL and college football only) and the 31-day date-range limit, which is useful routing. However, it gives no guidance on when to choose this over get_events or get_live_events, so alternative selection is left to inference.

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

get_teamTeam detailsB
Read-only
Inspect

One team: names, record, standing summary, venue.

ParametersJSON Schema
NameRequiredDescriptionDefault
sportYesSport slug.
leagueYesLeague slug. Monitored leagues (sport/league): football/nfl (NFL), football/college-football (College Football), basketball/nba (NBA), basketball/mens-college-basketball (Men's College Basketball), baseball/mlb (MLB), hockey/nhl (NHL), soccer/usa.1 (MLS), soccer/usa.open (U.S. Open Cup), soccer/eng.1 (Premier League), soccer/uefa.champions (Champions League), soccer/uefa.europa (Europa League), soccer/eng.fa (FA Cup), soccer/esp.1 (LaLiga), soccer/ita.1 (Serie A), soccer/mex.1 (Liga MX), soccer/fifa.world (World Cup), soccer/eng.w.1 (Women's Super League), soccer/uefa.wchampions (Women's Champions League), soccer/uefa.europa.conf (Conference League), soccer/eng.league_cup (League Cup), soccer/ger.1 (Bundesliga), soccer/fra.1 (Ligue 1), soccer/usa.nwsl (NWSL), soccer/eng.2 (Championship), soccer/fifa.worldq.uefa (WC Qualifying UEFA), soccer/fifa.worldq.conmebol (WC Qualifying CONMEBOL), soccer/fifa.worldq.afc (WC Qualifying AFC), soccer/fifa.worldq.caf (WC Qualifying CAF), soccer/fifa.worldq.concacaf (WC Qualifying CONCACAF). Call list_leagues if unsure.
team_idYesTeam id from list_teams or from an event's homeTeam/awayTeam.

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and openWorldHint=true, so the safety profile is covered. With no output schema, the description usefully sketches the return payload (names, record, standing summary, venue), but it adds nothing about freshness, error behavior, or missing-data handling for an open-world lookup.

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?

A single telegraphic fragment with zero waste, and the resource is front-loaded. It is arguably too terse to read as a sentence, which keeps it just under the top mark.

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 single-entity read with a fully documented 3-param schema, this is minimally adequate, and the listed return fields compensate partially for the absent output schema. An agent still gets no hint about what happens with an unknown team_id or how standings/record are scoped.

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%, and the league parameter even embeds a full monitored-league list with a pointer to list_leagues, so the schema does the heavy lifting. The description adds no parameter meaning of its own; baseline 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?

The fragment names a specific resource ('One team') and enumerates what comes back (names, record, standing summary, venue), which separates it from list_teams and get_team_roster. It stops short of explicitly saying it retrieves a single team by id, but the singular 'One team' plus the id parameter makes the intent unambiguous.

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 when-to-use guidance is given. It never says to prefer this over get_team_roster for roster data or list_teams for discovery, and the only routing hint ('Team id from list_teams') lives in the schema, not the description.

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

get_team_rosterTeam rosterB
Read-only
Inspect

Current roster for a team, grouped by position.

ParametersJSON Schema
NameRequiredDescriptionDefault
sportYesSport slug.
leagueYesLeague slug. Monitored leagues (sport/league): football/nfl (NFL), football/college-football (College Football), basketball/nba (NBA), basketball/mens-college-basketball (Men's College Basketball), baseball/mlb (MLB), hockey/nhl (NHL), soccer/usa.1 (MLS), soccer/usa.open (U.S. Open Cup), soccer/eng.1 (Premier League), soccer/uefa.champions (Champions League), soccer/uefa.europa (Europa League), soccer/eng.fa (FA Cup), soccer/esp.1 (LaLiga), soccer/ita.1 (Serie A), soccer/mex.1 (Liga MX), soccer/fifa.world (World Cup), soccer/eng.w.1 (Women's Super League), soccer/uefa.wchampions (Women's Champions League), soccer/uefa.europa.conf (Conference League), soccer/eng.league_cup (League Cup), soccer/ger.1 (Bundesliga), soccer/fra.1 (Ligue 1), soccer/usa.nwsl (NWSL), soccer/eng.2 (Championship), soccer/fifa.worldq.uefa (WC Qualifying UEFA), soccer/fifa.worldq.conmebol (WC Qualifying CONMEBOL), soccer/fifa.worldq.afc (WC Qualifying AFC), soccer/fifa.worldq.caf (WC Qualifying CAF), soccer/fifa.worldq.concacaf (WC Qualifying CONCACAF). Call list_leagues if unsure.
team_idYesTeam id from list_teams or from an event's homeTeam/awayTeam.

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and openWorldHint=true, so safety and data-source profile are covered. The description adds one genuine behavioral detail — results are grouped by position — but says nothing about roster size, injuries/status flags, or truncation.

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?

A single front-loaded sentence fragment with zero waste. It is efficient but so terse that it borders on under-specification rather than maximal conciseness.

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?

With no output schema, the description carries responsibility for describing the return value and only contributes 'grouped by position'. For a simple read-only tool this is minimally adequate, but an agent still cannot anticipate fields or record counts.

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 all three parameters are fully documented in the schema, including the enum for sport and the extensive league slug list. The description adds no parameter meaning beyond that, so the baseline 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?

States a specific resource (team roster) with a scope qualifier (current) and result shape (grouped by position). It is clear what the tool returns, though it never names how it differs from siblings like get_team or get_box_score.

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

Usage Guidelines2/5

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

There is no when-to-use guidance and no alternative named; the agent must infer that this is the roster-fetching tool. Nothing says what it excludes or which sibling to pick for related data such as injuries or schedule.

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

list_leaguesList leaguesA
Read-only
Inspect

List the leagues this API monitors live, with the sport and league slugs every other tool needs. 29 leagues monitored live: NFL, college football, NBA, men's college basketball, MLB, NHL and 23 soccer competitions.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.5/5.0
Behavior4/5

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

The annotations already declare readOnlyHint and openWorldHint, so the safety profile is covered. The description adds useful behavioral scope: it lists 29 live-monitored leagues and notes the inclusion of sport and league slugs, though it does not cover response format or pagination.

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 two efficient sentences, front-loads the purpose, and includes a compact enumeration of league coverage without any filler.

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 zero-parameter, read-only list tool with no output schema, the description is complete enough: it states what is returned, why it matters, and the full scope of leagues monitored live.

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?

There are zero input parameters, which sets the baseline at 4. The description does not need to explain parameter meaning because no parameters exist, and the schema is effectively empty.

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 states a specific verb and resource: list the leagues the API monitors live. It also explains the output contains sport and league slugs that every other tool needs, which distinguishes it from siblings like list_teams and get_team.

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?

It clearly implies this tool should be called to discover league slugs required by other tools, giving strong context for when to use it. However, it does not explicitly name an alternative or state 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.

list_teamsTeamsB
Read-only
Inspect

Teams in a league (paginated; college football has 800+ teams across divisions).

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNo
limitNoTeams per page (default 50).
sportYesSport slug.
leagueYesLeague slug. Monitored leagues (sport/league): football/nfl (NFL), football/college-football (College Football), basketball/nba (NBA), basketball/mens-college-basketball (Men's College Basketball), baseball/mlb (MLB), hockey/nhl (NHL), soccer/usa.1 (MLS), soccer/usa.open (U.S. Open Cup), soccer/eng.1 (Premier League), soccer/uefa.champions (Champions League), soccer/uefa.europa (Europa League), soccer/eng.fa (FA Cup), soccer/esp.1 (LaLiga), soccer/ita.1 (Serie A), soccer/mex.1 (Liga MX), soccer/fifa.world (World Cup), soccer/eng.w.1 (Women's Super League), soccer/uefa.wchampions (Women's Champions League), soccer/uefa.europa.conf (Conference League), soccer/eng.league_cup (League Cup), soccer/ger.1 (Bundesliga), soccer/fra.1 (Ligue 1), soccer/usa.nwsl (NWSL), soccer/eng.2 (Championship), soccer/fifa.worldq.uefa (WC Qualifying UEFA), soccer/fifa.worldq.conmebol (WC Qualifying CONMEBOL), soccer/fifa.worldq.afc (WC Qualifying AFC), soccer/fifa.worldq.caf (WC Qualifying CAF), soccer/fifa.worldq.concacaf (WC Qualifying CONCACAF). Call list_leagues if unsure.

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and openWorldHint=true, so safety and data-source reach are covered. The description usefully adds that results are paginated and that volume can be very large in college football, which affects calling strategy, but it says nothing about ordering, total counts, or auth needs.

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?

A single tight sentence with the core purpose front-loaded and the scale caveat parenthesized. Nothing is wasted, though the parenthetical mixes two ideas (pagination and division spread) briefly.

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 read-only list tool with no output schema, the agent gets the keys (sport, league), pagination and volume awareness, which is adequate. It does not describe what a returned team record contains or how ordering works, so completeness is only mid-tier.

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 75%: sport and league are well documented (league includes the enumerated slugs and an escape hatch, 'Call list_leagues if unsure'), limit is documented, but page has no schema description. The description only contributes the pagination framing, not per-parameter meaning, so the baseline 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 names the resource and scope: teams belonging to a league, with pagination as the delivery mode. It is clear and specific, though it never explicitly contrasts itself with the sibling get_team (single team) or get_team_roster, leaving sibling differentiation to the name alone.

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?

Usage is implied rather than stated: the pagination note and the '800+ teams' scale hint that callers should page through results for large leagues. There is no explicit when-to-use guidance or statement of when to prefer this over get_team/get_team_roster, so the agent must infer.

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

search_athletesSearch athletesA
Read-only
Inspect

Find players by name within a league; returns athlete ids and teams.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
queryYesPlayer name, e.g. "mahomes".
sportYesSport slug.
leagueYesLeague slug. Monitored leagues (sport/league): football/nfl (NFL), football/college-football (College Football), basketball/nba (NBA), basketball/mens-college-basketball (Men's College Basketball), baseball/mlb (MLB), hockey/nhl (NHL), soccer/usa.1 (MLS), soccer/usa.open (U.S. Open Cup), soccer/eng.1 (Premier League), soccer/uefa.champions (Champions League), soccer/uefa.europa (Europa League), soccer/eng.fa (FA Cup), soccer/esp.1 (LaLiga), soccer/ita.1 (Serie A), soccer/mex.1 (Liga MX), soccer/fifa.world (World Cup), soccer/eng.w.1 (Women's Super League), soccer/uefa.wchampions (Women's Champions League), soccer/uefa.europa.conf (Conference League), soccer/eng.league_cup (League Cup), soccer/ger.1 (Bundesliga), soccer/fra.1 (Ligue 1), soccer/usa.nwsl (NWSL), soccer/eng.2 (Championship), soccer/fifa.worldq.uefa (WC Qualifying UEFA), soccer/fifa.worldq.conmebol (WC Qualifying CONMEBOL), soccer/fifa.worldq.afc (WC Qualifying AFC), soccer/fifa.worldq.caf (WC Qualifying CAF), soccer/fifa.worldq.concacaf (WC Qualifying CONCACAF). Call list_leagues if unsure.

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and openWorldHint=true, so the safety and open-world nature are covered. The description adds the return shape (athlete ids and teams), which is useful given no output schema, but says nothing about result limits, pagination, or partial-match behavior of the name search.

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?

A single front-loaded sentence that names the action, scope, and output with zero filler. Every clause 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?

With no output schema, the description correctly tells the agent what comes back (athlete ids and teams). The remaining gap is behavioral: no mention of the "limit" default, result caps, or how ambiguous names are handled, which an agent would need to call this confidently.

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 75%: query, sport, and league are documented in the schema (league including the full monitored-league list), while limit has no description anywhere. The description only reinforces "by name within a league," adding little beyond what the schema already provides, so the baseline 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?

States a specific verb+resource (find players), the scope constraint (within a league), and even the return payload (athlete ids and teams). It clearly differs from the get_* siblings, but it never names the closest alternative like get_team_roster, so it falls short of full differentiation.

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?

"Find players by name" implies the use case (name-based lookup when the athlete id is unknown), but there is no explicit when-to-use/when-not guidance and no pointer to alternatives such as get_team_roster or list_teams for enumerating players.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 14 tool updates
    • First observedget_box_score
    • First observedget_event
    • First observedget_events
    • First observedget_injuries
    • First observedget_live_events
    • First observedget_news
    • First observedget_odds
    • First observedget_plays
    • First observedget_schedule
    • First observedget_team
    • First observedget_team_roster
    • First observedlist_leagues
    • First observedlist_teams
    • First observedsearch_athletes

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    A
    maintenance
    Get live scores, schedules, standings, team and player data for NFL, NBA, MLB, NHL, soccer, and more via MCP.
    298 npm
    2
    Apache 2.0
  • A
    license
    A
    quality
    A
    maintenance
    Live sports betting odds, cross-book +EV, and graded player-prop resolution across 13 books.
    11
    1,312 npm
    1
    MIT
  • F
    license
    Not graded
    quality
    C
    maintenance
    Provides comprehensive sports intelligence including live scores, standings, schedules, betting odds, news, highlights, and more via SSE transport.
    -
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources