Skip to main content
Glama

sportiq-mcp

Server Details

MCP tools for FIFA World Cup 2026 football, Formula 1, and IPL cricket — sims, strategy, fantasy.

If you are the author of this connector, you can claim ownership with GitHub, an HTTP challenge, or a DNS record. Claimed connector authors can inspect health checks, view analytics, and manage their listing.
Status
Healthy
Last Tested
Transport
Streamable HTTP
URL
Repository
Ninjabeam20/SportIQ-MCP
GitHub Stars
10
Server Listing
SportIQ

Available Tools

44 tools
cricket_build_dream11_teamA
Read-onlyIdempotent
Inspect

Recommend an optimal fantasy XI + captain + vice-captain for one fixture.

Args: match_id: CricAPI match identifier; resolves team_a/team_b/venue automatically. team_a: First team code/name (e.g. MI). Required if match_id is absent. team_b: Second team code/name (e.g. CSK). Required if match_id is absent. venue: Venue key/name (e.g. wankhede). Required if match_id is absent. strategy: "balanced" only in Phase 2; future variants reserved.

Returns: data.players: 11 picked players with name/role/credits/team/projected_points. data.captain: name of the chosen captain. data.vice_captain: name of the chosen VC. data.total_credits: sum of credits used (<= 100). data.total_projected_points: fantasy points including C x2 and VC x1.5 boosts. meta.estimated: true — projections are model output, not a fantasy oracle.

Example: cricket_build_dream11_team(team_a="MI", team_b="CSK", venue="wankhede") cricket_build_dream11_team(match_id="abc123")

ParametersJSON Schema
NameRequiredDescriptionDefault
venueNoVenue key/name (e.g. ``wankhede``). Required if match_id is absent.
team_aNoFirst team code/name (e.g. ``MI``). Required if match_id is absent.
team_bNoSecond team code/name (e.g. ``CSK``). Required if match_id is absent.
match_idNoCricAPI match identifier; resolves team_a/team_b/venue automatically.
strategyNo``"balanced"`` only in Phase 2; future variants reserved.balanced

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataNo
metaNo
errorNo

TDQS

A4.7/5.0
Behavior5/5

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

Beyond annotations (readOnly, idempotent, non-destructive), the description reveals that results are estimated model output ('meta.estimated: true — projections are model output, not a fantasy oracle'), constrained to <=100 credits, and apply C x2 / VC x1.5 scoring boosts. No contradiction with 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 well-structured with Args, Returns, and Example sections, and every line carries useful information. The main purpose is front-loaded before implementation details.

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 five-parameter tool with an output schema, the description is complete: it documents both identification modes, the strategy restriction, expected response fields, scoring assumptions, and result reliability. An agent has everything needed to select and invoke it correctly.

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. The description adds relational meaning by explaining that match_id resolves team/venue automatically and team_a/team_b/venue are required 'if match_id is absent', plus concrete examples. This goes beyond the schema's per-field descriptions.

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: 'Recommend an optimal fantasy XI + captain + vice-captain for one fixture.' This clearly distinguishes it from siblings like cricket_captain_recommendation (captain only) and cricket_differential_picks.

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 states a clear context: full fantasy team building for one fixture, and gives two input modes (match_id or team/venue). It does not explicitly name alternatives or say when not to use it, but the purpose is specific enough to route usage.

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

cricket_captain_recommendationA
Read-onlyIdempotent
Inspect

Return the top-3 captain candidates ranked by projected points.

Args: match_id: CricAPI match identifier; resolves team_a/team_b/venue automatically. team_a: First team code/name. Required if match_id is absent. team_b: Second team code/name. Required if match_id is absent. venue: Venue key/name. Required if match_id is absent.

Returns: data.candidates: list of 3 dicts with name/role/team/projected_points. meta.source: model:captain_score. meta.estimated: true.

ParametersJSON Schema
NameRequiredDescriptionDefault
venueNoVenue key/name. Required if match_id is absent.
team_aNoFirst team code/name. Required if match_id is absent.
team_bNoSecond team code/name. Required if match_id is absent.
match_idNoCricAPI match identifier; resolves team_a/team_b/venue automatically.

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataNo
metaNo
errorNo

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already declare readOnly, openWorld, idempotent, and non-destructive, so the bar is lower. The description adds useful behavioral context: results are estimates (meta.estimated: true), backed by a captain_score model, and match_id auto-resolves team/venue.

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 key one-line purpose is front-loaded, and the Args/Returns structure makes details scannable. Minor redundancy: the Args section mostly repeats the input schema descriptions.

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 annotations, output schema presence, and clear parameter dependency, the description covers what an agent needs to call the tool correctly. It could be more explicit about precedence when both match_id and team/venue are supplied, but this is not a critical gap.

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 the schema descriptions repeat the same parameter semantics. The description clarifies that match_id resolves the other three arguments and that team_a/team_b/venue are required only when match_id is absent, but this is also in the schema, so the added value is minimal.

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: 'Return the top-3 captain candidates ranked by projected points.' This clearly differentiates the tool from cricket siblings like differential_picks or player_form_index by naming captain selection and projected-point ranking.

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 gives a clear functional context—when you need captain recommendations for a match—and specifies the input path (match_id or manual team/venue). It doesn't explicitly name alternatives or exclusions, but the context is clear enough for an agent to choose it over siblings.

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

cricket_differential_picksA
Read-onlyIdempotent
Inspect

Suggest low-ownership picks with positive projected upside.

Ownership is estimated — proxied by credit weight (lower-credit players tend to have lower ownership), not real ownership data. Flagged estimated: true in the response.

Args: match_id: CricAPI match identifier; resolves team_a/team_b/venue automatically. team_a: First team code/name. Required if match_id is absent. team_b: Second team code/name. Required if match_id is absent. venue: Venue key/name. Required if match_id is absent. ownership_threshold: percent ownership cap; affects estimated label.

Returns: data.picks: list of {name, role, team, credits, projected_points, estimated_ownership_pct}. meta.source: model:captain_score (filtered). meta.estimated: true.

ParametersJSON Schema
NameRequiredDescriptionDefault
venueNoVenue key/name. Required if match_id is absent.
team_aNoFirst team code/name. Required if match_id is absent.
team_bNoSecond team code/name. Required if match_id is absent.
match_idNoCricAPI match identifier; resolves team_a/team_b/venue automatically.
ownership_thresholdNopercent ownership cap; affects estimated label.

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataNo
metaNo
errorNo

TDQS

A3.5/5.0
Behavior4/5

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

Annotations already establish read-only, idempotent, non-destructive behavior. The description adds meaningful context beyond that: ownership is an estimated proxy based on credit weight, not real ownership data, and this is flagged as 'estimated: true' in the response. It also discloses that match_id auto-resolves team_a/team_b/venue and names the model source. No contradiction with 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 well organized with a front-loaded purpose sentence, an important estimation caveat, and clearly separated Args and Returns sections. Every section adds value without excessive verbosity. Minor redundancy with schema descriptions is acceptable and aids agent readability.

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 read-only prediction tool with five optional parameters and an output schema, the description covers purpose, parameter dependencies, the estimation caveat, and the return shape. It does not discuss error cases or validation failures, but the annotations and schema provide enough structural safety that no critical calling context 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%, so the baseline is 3 even without extra parameter detail. The description largely restates the schema's parameter semantics, including the match_id resolution and ownership_threshold behavior. It adds little beyond the structured schema, though the return-field explanation does help clarify what the parameters produce.

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 clear purpose: 'Suggest low-ownership picks with positive projected upside,' naming the resource and the specific selection criterion. The caveat about estimated ownership further clarifies what the tool actually returns. It does not explicitly name a sibling alternative, but the low-ownership focus distinguishes it from value-bet and captain-recommendation tools.

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 explicit guidance is given for when to use this tool versus alternatives like cricket_find_value_bets or cricket_captain_recommendation. The parameter dependency notes (match_id vs team_a/team_b/venue) are invocation rules, not selection guidance. The intended use is only implied by the first sentence.

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

cricket_find_value_betsA
Read-onlyIdempotent
Inspect

Compare model probabilities against market-implied IPL odds. Requires THEODDS_KEY.

NOTE: cricket has no calibrated team-strength model wired yet (unlike the football Elo/Poisson path), so this tool currently returns an EMPTY value_bets list — scoring an edge against a neutral 50/50 prior would flag every market underdog, which would be misleading. It still reports how many events were screened so callers know odds were available. For raw de-vigged prices use cricket_get_live_odds. Real edge detection lands when a cricket win model is wired (see cricket_head_to_head).

Args: team: Optional team name to filter events (case-insensitive substring). Omit to scan every IPL odds event. min_edge: Minimum edge (model_prob - devigged_market_prob), 0..1. Default 0.05. Currently informational only (no bets emitted).

Returns: data.value_bets: always [] until a cricket model is wired. data.events_analysed: count of events screened (both teams present). data.model: "neutral_baseline". data.note: why no bets are emitted. meta.estimated: true.

ParametersJSON Schema
NameRequiredDescriptionDefault
teamNoOptional team name to filter events (case-insensitive substring). Omit to scan every IPL odds event.
min_edgeNoMinimum edge (model_prob - devigged_market_prob), 0..1. Default 0.05. Currently informational only (no bets emitted).

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataNo
metaNo
errorNo

TDQS

A4.7/5.0
Behavior5/5

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

Beyond the readOnly/idempotent annotations, the description discloses the major behavioral caveat: the tool always returns an empty value_bets list because no calibrated cricket model exists. It further explains why a neutral baseline would be misleading, describes the exact return fields (value_bets, events_analysed, model, note, meta.estimated), and reveals the auth requirement. No contradiction with 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: the caveat is essential to prevent misuse, the alternative routing prevents wasted calls, and the Args/Returns breakdown is compact and scannable. The structure front-loads the most critical behavioral warning before details.

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 tool with a major behavioral caveat, the description is complete: it covers prerequisites, current stub behavior, why the behavior exists, what callers can rely on, and where to go for alternatives. Even with an output schema present, the explicit description of value_bets always being [] is necessary and provided.

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 largely repeats the schema text for team and min_edge, adding no genuinely new semantic detail beyond what is already in the parameter descriptions. It is adequate but does not elevate understanding beyond the 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 tool's intent ('Compare model probabilities against market-implied IPL odds') and immediately corrects the expectation by noting the tool currently returns an empty value_bets list. This distinguishes it from siblings like cricket_get_live_odds and football_find_value_bets, and makes its actual role as an odds-screening stub unmistakable.

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?

The description gives explicit guidance: raw prices belong in cricket_get_live_odds, real edge detection will come via cricket_head_to_head once a model is wired, and callers should use the events_analysed count to confirm odds availability. It also notes the THEODDS_KEY prerequisite and explains why the tool should not be relied on for actual bets.

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

cricket_get_live_matchesA
Read-onlyIdempotent
Inspect

Return all currently live cricket matches across all series.

Returns: data.matches: list of live match objects (team names, score, status). meta.source: which adapter served the response. meta.is_stale: true if data is from stale cache.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataNo
metaNo
errorNo

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already indicate read-only, idempotent, non-destructive behavior, so the description does not need to repeat those. It adds useful behavioral context by documenting meta.source (adapter provenance) and meta.is_stale (stale cache indication), which are not visible from annotations or schema alone.

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 compact and front-loaded with the primary purpose. The Returns section is clearly structured and provides just enough detail about the response shape without unnecessary fluff. Every sentence earns its place.

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 live-matches listing tool, this description is complete. It explains what data is returned (matches array with teams, score, status) and includes metadata fields that could affect interpretation (source, staleness). The annotations cover safety semantics, and the output schema is available, so no further detail is needed.

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 tool has zero parameters, and the schema coverage is 100%, so there is no parameter ambiguity. The description correctly notes that it returns live matches 'across all series', implying no filtering is needed. A baseline of 4 is appropriate for a no-parameter tool.

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: 'Return all currently live cricket matches across all series.' It clearly distinguishes this from sibling tools like schedule, scorecard, and points table by focusing on live matches. The scope 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 Guidelines3/5

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

The intended use is implied by the phrase 'currently live cricket matches' — an agent would know to call this when live match data is needed. However, there is no explicit guidance about when not to use it or which sibling tool would be a better alternative for scheduled, completed, or match-detail queries.

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

cricket_get_live_oddsA
Read-onlyIdempotent
Inspect

Return live market head-to-head odds for upcoming/live IPL matches.

Sourced from The Odds API (requires THEODDS_KEY). Without a key the call returns a clean ALL_SOURCES_FAILED envelope rather than crashing.

Args: team: Optional team name to filter events (case-insensitive substring, matched against both sides). Omit to return every IPL event. The Odds API uses its own opaque event ids, so a CricAPI match_id cannot be resolved to an event yet — filtering is by team name.

Returns: data.events: list of {event_id, home, away, commence_time, bookmakers: [{name, home, away}]} with decimal h2h prices per bookmaker. meta.source: adapter that served the data (theodds / cache:stale).

ParametersJSON Schema
NameRequiredDescriptionDefault
teamNoOptional team name to filter events (case-insensitive substring, matched against both sides). Omit to return every IPL event. The Odds API uses its own opaque event ids, so a CricAPI match_id cannot be resolved to an event yet — filtering is by team name.

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataNo
metaNo
errorNo

TDQS

A4.5/5.0
Behavior5/5

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

Beyond the strong annotations, the description discloses critical runtime behavior: it requires THEODDS_KEY, returns a clean ALL_SOURCES_FAILED envelope instead of crashing when the key is missing, and exposes meta.source to indicate the odds adapter or cache:stale. This is exactly the kind of behavioral context an agent needs beyond readOnly/idempotent hints.

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 front-loaded with the core purpose, followed by essential dependency/error behavior, then parameter and return details in clear sections. Every sentence earns its place, and the formatting makes it easy for an agent to parse quickly.

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?

With an output schema available, the description still takes care to explain the return shape (events with bookmakers and decimal h2h prices) and the meta.source field. It also covers the prerequisite key, failure envelope, and filtering caveats, leaving no important operational gap for an agent invoking 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?

Schema description coverage is 100%, and the description's Args section essentially repeats the schema's team parameter explanation. Since the schema already fully documents the parameter, the description adds no additional semantic value beyond what's already structured, giving 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 uses a specific verb and resource: 'Return live market head-to-head odds for upcoming/live IPL matches.' This clearly distinguishes the tool from the many sibling tools, such as football_get_odds or cricket_find_value_bets, by scope (IPL) and data type (h2h odds).

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 gives clear context: it is for IPL live/upcoming h2h odds, with optional team filtering and a note about The Odds API's opaque event ids. It does not explicitly name sibling alternatives or state when not to use them, but the intended use is clear enough for an agent to select it correctly.

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

cricket_get_pitch_reportA
Read-onlyIdempotent
Inspect

Summarise pitch characteristics for a venue.

Args: venue: Venue key (e.g. wankhede), official name, or city.

Returns: data: {batting_friendly 0..1, expected_first_inn, recommendation, venue, pitch_type}. meta.source: which adapter served the venue record.

ParametersJSON Schema
NameRequiredDescriptionDefault
venueYesVenue key (e.g. ``wankhede``), official name, or city.

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataNo
metaNo
errorNo

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint=false, so the safety profile is covered. The description adds useful behavioral detail about the return shape: batting_friendly score scale 0..1, expected_first_inn, recommendation, venue, pitch_type, and meta.source. This goes beyond the annotations without contradicting them.

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 compact and well-structured with a one-sentence summary followed by clear Args and Returns sections. Every line earns its place, and the most important information is front-loaded. There is no unnecessary prose.

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 simple single-parameter read-only reporting tool, the description is complete: it explains the input, the output fields, and the meaning of score ranges. The output schema presence plus the documented return structure leaves little ambiguity for an agent selecting or invoking this tool. No critical information 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 single parameter 'venue' is described identically in both the schema and tool description. The description adds no meaning beyond what the schema already provides, such as disambiguation rules or formatting constraints. Baseline 3 is appropriate given the high schema coverage.

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 ('Summarise') and resource ('pitch characteristics for a venue'), making the tool's function immediately clear. It is clearly distinct from sibling cricket tools like scores, squads, or odds. The one-line summary is not a tautology and accurately names the domain.

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 should be used when pitch-related context for a venue is needed, and the venue parameter guidance is helpful. However, it does not explicitly state when to prefer this tool over alternatives or mention any exclusions or sibling tools. Usage is inferred rather than stated.

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

cricket_get_points_tableA
Read-onlyIdempotent
Inspect

Return the points table / standings for a cricket series.

Args: series_id: The series identifier (e.g. IPL 2026 series ID from CricAPI).

Returns: data: points table rows with team, P, W, L, NRR, Points. meta.source: adapter that served the data.

ParametersJSON Schema
NameRequiredDescriptionDefault
series_idYesThe series identifier (e.g. IPL 2026 series ID from CricAPI).

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataNo
metaNo
errorNo

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already communicate read-only, idempotent, non-destructive behavior. The description adds value by describing the return contract: rows with team, P, W, L, NRR, Points, and meta.source indicating which adapter served the data. This goes beyond the annotation-only picture without contradicting it.

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 core statement is concise and front-loaded, and the Returns section adds useful behavioral detail. The Args section is somewhat redundant with the schema, but the overall length and structure remain clean and scannable.

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 one-parameter, read-only tool with full schema coverage and an output schema, the description is complete enough. It explains what data the caller receives and which adapter produced it. Nothing essential for selecting and invoking the tool correctly 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 description's Args section merely restates the schema's series_id description. It adds no additional parameter-level insight beyond what the schema already provides, so it meets the baseline but does not exceed it.

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 'Return the points table / standings for a cricket series,' which states a specific verb and resource. It also distinguishes itself from sibling standings tools like football_get_standings and f1_get_standings by specifying 'cricket' and 'series.'

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 clearly establishes when to use it: when a cricket series points table is needed, with a series_id provided. It does not explicitly discuss exclusions or alternatives, but among the cricket sibling tools there is no overlapping standings tool, so the practical ambiguity is low.

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

cricket_get_scheduleA
Read-onlyIdempotent
Inspect

Return the upcoming match schedule, optionally filtered by series.

Args: series_id: Optional. Filter to a specific series. If omitted, returns all upcoming fixtures across all active series. limit: Max matches to return, 1..200 (default 50). offset: Number of matches to skip for paging (default 0).

Returns: data.matches: page of upcoming matches with teams, date, venue. data.pagination: {total, count, offset, limit, has_more, next_offset}. meta.source: adapter that served the data.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax matches to return, 1..200 (default 50).
offsetNoNumber of matches to skip for paging (default 0).
series_idNoOptional. Filter to a specific series. If omitted, returns all upcoming fixtures across all active series.

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataNo
metaNo
errorNo

TDQS

A4.5/5.0
Behavior5/5

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

Annotations already establish read-only, idempotent, non-destructive behavior. The description adds valuable behavioral detail beyond annotations: pagination semantics, default limit and offset, return shape for matches and pagination, and the meta.source adapter field. This is rich, non-obvious behavior disclosed clearly.

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 well-structured and front-loaded with the core purpose. The Args and Returns sections are compact, each line carries needed information, and there is no filler or repetition beyond what is useful.

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 tool with zero required parameters, the description is complete enough: it explains filtering, paging, defaults, and what the response contains. The output schema is noted as present, and the description reinforces the key return fields without unnecessary detail.

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 three parameters and their default/range semantics. The description repeats this information rather than adding new meaning. It clarifies the 'all active series' behavior for series_id, but this is also in the 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 states a specific action ('Return') and a specific resource ('the upcoming match schedule'), with an optional series filter. It clearly distinguishes itself from siblings like cricket_get_live_matches and cricket_get_scorecard by focusing on future fixtures.

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 gives clear context: it returns upcoming fixtures, optionally filtered by series, and explains the default behavior when series_id is omitted. It does not explicitly name alternatives or say when not to use it, but the purpose is unambiguous.

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

cricket_get_scorecardA
Read-onlyIdempotent
Inspect

Return the full scorecard for a specific match.

Args: match_id: The match identifier (e.g. from cricket_get_live_matches).

Returns: data: full scorecard with innings, partnerships, bowling figures. meta.source: adapter that served the data.

ParametersJSON Schema
NameRequiredDescriptionDefault
match_idYesThe match identifier (e.g. from cricket_get_live_matches).

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataNo
metaNo
errorNo

TDQS

A4.1/5.0
Behavior3/5

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

Annotations already establish read-only, idempotent, non-destructive behavior, lowering the burden. The description adds useful context about the scope of 'full scorecard' and the meta.source adapter field, but does not go deeper into data freshness or error behavior. This is on par with the calibrated baseline for annotation-carrying tools.

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 concise and well-structured with clear Args and Returns sections. The core purpose is front-loaded in a single sentence, and every listed item adds useful information without filler or 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?

The tool takes a single required parameter, has 100% schema coverage, an output schema, and strong safety annotations. The description supplies the only missing workflow detail—how to source the match_id—making it fully complete for an agent to invoke correctly.

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 tool description repeats the same match_id explanation (including the reference to cricket_get_live_matches). The description does not add any semantic detail beyond what the input 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?

Description opens with 'Return the full scorecard for a specific match', a specific verb and resource, and the Returns section details exactly what a scorecard contains (innings, partnerships, bowling figures). This clearly distinguishes it from siblings like cricket_get_live_matches, cricket_get_squad, and cricket_get_pitch_report.

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 provides a clear prerequisite by noting the match_id is obtained from cricket_get_live_matches, which establishes when this tool is appropriate. It does not explicitly name alternatives or exclusion cases, but the narrow scope of 'scorecard for a specific match' makes those unnecessary.

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

cricket_get_squadA
Read-onlyIdempotent
Inspect

Return the squad roster for a cricket team, optionally for a specific series.

Args: team: Team code or name (e.g. "MI", "CSK", "IND", "AUS"). series_id: Optional. Series ID to pull the tournament-specific squad. If omitted, falls back to static seed data.

Returns: data.players: list of players with name, role, and credits. meta.source: adapter that served the data (cricapi / static_seed).

ParametersJSON Schema
NameRequiredDescriptionDefault
teamYesTeam code or name (e.g. "MI", "CSK", "IND", "AUS").
series_idNoOptional. Series ID to pull the tournament-specific squad. If omitted, falls back to static seed data.

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataNo
metaNo
errorNo

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare this as read-only, idempotent, and non-destructive, so the safety profile is covered. The description adds meaningful behavioral context beyond annotations by disclosing the fallback to static seed data and the meta.source adapter behavior, which helps the agent understand possible data provenance.

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 concise and well-structured with a clear one-line purpose, Args section, and Returns section. Every sentence provides useful information, and the most important statement is front-loaded. There is no redundant or filler content.

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 simple two-parameter, read-only tool with full schema coverage, an output schema, and rich annotations, the description is fully sufficient. It explains the optional behavior, fallback source, and return fields, leaving no important operational gap for an agent to call it correctly.

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 fully documents both parameters. The description repeats the examples and fallback explanation without adding significant new meaning beyond the schema. This matches the baseline of 3 for fully covered 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 opens with a clear, specific verb and resource: 'Return the squad roster for a cricket team'. It clearly differentiates this tool from the many other cricket and football tools by naming the exact data domain. The optional series scoping is also stated immediately.

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 provides clear context for when to supply series_id and what happens when it is omitted, falling back to static seed data. It does not explicitly name alternatives or exclusions, but the purpose and optional parameter behavior are clear enough for an agent to decide when to invoke it.

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

cricket_head_to_headA
Read-onlyIdempotent
Inspect

Compare two cricket teams head-to-head using squad form and player stats.

Args: team_a: First team code or name (e.g. "MI", "India"). team_b: Second team code or name (e.g. "CSK", "Australia").

Returns: data: {team_a, team_b, team_a_edge_count, team_b_edge_count, key_players_a, key_players_b, h2h_win_rate_a, h2h_win_rate_b, win_prob_a, win_prob_b}. meta.estimated: true.

ParametersJSON Schema
NameRequiredDescriptionDefault
team_aYesFirst team code or name (e.g. "MI", "India").
team_bYesSecond team code or name (e.g. "CSK", "Australia").

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataNo
metaNo
errorNo

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already indicate read-only, idempotent, and non-destructive behavior. The description adds value by stating that results are estimates via 'meta.estimated: true' and by listing the computed output fields such as edge counts and win probabilities.

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 well-structured with a front-loaded purpose statement, followed by Args and Returns sections. It is reasonably concise, though the Args section is redundant with the input schema and could be trimmed.

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?

Given the simple two-parameter interface, read-only annotations, and output schema availability, the description is complete. It explains what the tool does, what inputs are needed, and what outputs to expect, including the estimated-result flag.

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 both parameters are already documented with examples in the input schema. The description's Args section duplicates that information without adding extra semantics like accepted code formats, case sensitivity, or ordering constraints.

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 verb and resource: 'Compare two cricket teams head-to-head'. It is specific to cricket team comparison, which distinguishes it from player-level, football, and F1 sibling tools.

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 first sentence gives clear context for when to use the tool: comparing two cricket teams using squad form and player stats. However, it does not explicitly mention alternative tools or state when not to use it, so it falls short of a perfect score.

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

cricket_player_form_indexA
Read-onlyIdempotent
Inspect

Report a 0-100 form score for a player using the player_stats chain.

Args: player_id: Upstream player identifier (CricAPI/Cricbuzz id).

Returns: data.form_score: 0..100 indicator. data.trend: "rising" / "stable" / "falling". data.samples: how many recent innings were available. meta.source: which adapter served the underlying stats. meta.estimated: true.

ParametersJSON Schema
NameRequiredDescriptionDefault
player_idYesUpstream player identifier (CricAPI/Cricbuzz id).

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataNo
metaNo
errorNo

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, non-destructive, and idempotent behavior. The description adds meaningful behavioral context: the result is estimated (meta.estimated true), the score range is 0-100, and it reveals the underlying player_stats chain and adapter sourcing.

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 structure is clear and front-loaded with the core purpose, followed by concise Args and Returns sections. It is slightly repetitive of the schema, but every included detail serves a purpose and there is no fluff.

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 single-parameter, read-only tool with an output schema, the description is sufficiently complete. It covers the score, trend direction, sample size, source adapter, and estimation flag, giving an agent enough context to invoke the tool correctly.

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's Args section duplicates the schema's player_id description rather than adding new meaning such as examples, formats, or acceptable identifier variants.

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: reporting a 0-100 form score for a player. It names the resource ('player') and the specific output ('form score'), which distinguishes it from other cricket tools focused on scorecards, matchups, or recommendations.

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 usage context is implied: call this tool when a numeric player form score or trend is needed. However, it does not explicitly contrast itself with sibling tools like cricket_player_matchup or football_form_trends, nor provide when-not-to-use guidance.

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

cricket_player_matchupA
Read-onlyIdempotent
Inspect

Analyse the head-to-head matchup between two cricket players based on role and career stats.

Args: player_a: Player ID or name for the first player. player_b: Player ID or name for the second player.

Returns: data: {matchup_type, edge_holder, edge_reason, signals, role_a, role_b}. meta.estimated: true — heuristic model, not ball-by-ball H2H data.

ParametersJSON Schema
NameRequiredDescriptionDefault
player_aYesPlayer ID or name for the first player.
player_bYesPlayer ID or name for the second player.

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataNo
metaNo
errorNo

TDQS

A3.9/5.0
Behavior5/5

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

Beyond the readOnlyHint and idempotentHint annotations, the description openly discloses that this is a heuristic model, not ball-by-ball H2H data, and clarifies that results are estimated (meta.estimated: true). It also reveals the return shape including edge_holder and edge_reason, adding meaningful behavioral context.

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 compact, well-organized with Args and Returns sections, and contains no filler. The core purpose is front-loaded and the heuristic caveat is clearly stated, earning its place.

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 two-parameter read-only tool with a documented output schema, the description is complete. It covers the purpose, input semantics, return fields, and the critical estimation limitation, leaving no meaningful gap for an agent to invoke it correctly.

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 description repeats the schema's player_a/player_b semantics without adding extra detail. There is no additional guidance on ID formats, name resolution behavior, or input preprocessing, so it adds no value beyond the schema.

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 analyzes the head-to-head matchup between two cricket players based on role and career stats, with a specific verb and resource. However, it does not explicitly differentiate this from the sibling tool cricket_head_to_head, leaving some ambiguity.

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 given on when to use this tool versus alternatives like cricket_head_to_head or cricket_player_form_index. The description implies pairwise player comparison but does not specify exclusions, routing conditions, or preferred scenarios.

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

cross_sport_build_accumulatorA
Read-onlyIdempotent
Inspect

Model the joint probability of multiple outcomes across football and cricket.

Args: legs: Total legs across both sports (2-8). Default 3. min_edge: Minimum edge per leg. Default 0.05.

Returns: data: same shape as football_build_accumulator, with sport field per leg. meta.estimated: true.

ParametersJSON Schema
NameRequiredDescriptionDefault
legsNoTotal legs across both sports (2-8). Default 3.
min_edgeNoMinimum edge per leg. Default 0.05.

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataNo
metaNo
errorNo

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already provide readOnlyHint, idempotentHint, and destructiveHint=false, so safety is covered. The description adds useful behavioral context: return data has the same shape as football_build_accumulator with a per-leg sport field, and meta.estimated is true. This goes beyond the annotations and helps the agent understand the output before invoking.

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 short and front-loaded with the purpose, followed by a clean Args/Returns structure. The Args section is redundant with the schema, which slightly reduces efficiency, but overall there is no fluff and it remains easy to scan.

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 an output schema present and annotations describing the tool as read-only, idempotent, and non-destructive, the description is mostly complete. It clarifies the return shape and the estimated flag, which are not in the annotations. A small gap is that it relies on knowledge of football_build_accumulator's shape, but that is acceptable given the output schema exists.

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 with defaults and constraints. The description's Args section repeats this information without adding new meaning. The parameter semantics are adequately covered by the schema, and the description adds no extra value here.

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 models joint probability of outcomes across football and cricket, which distinguishes it from single-sport siblings like football_build_accumulator. The verb 'model' is somewhat abstract, but the resource and scope are explicit. It does not explicitly name an alternative, but the cross-sport scope is 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 phrase 'across football and cricket' implies this is for multi-sport accumulators, and referencing football_build_accumulator's shape hints at a relationship. However, it never explicitly says when to use this tool versus a single-sport alternative, nor does it state any exclusions or prerequisites. Usage context is implied, not clearly directed.

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

f1_get_driversA
Read-onlyIdempotent
Inspect

Return driver list for a specific F1 session.

Args: session_key: OpenF1 session identifier.

Returns: data.drivers: list of driver objects with driver_number, full_name, team. meta.source: adapter that served the data.

ParametersJSON Schema
NameRequiredDescriptionDefault
session_keyYesOpenF1 session identifier.

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataNo
metaNo
errorNo

TDQS

A3.7/5.0
Behavior3/5

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

Annotations already carry the safety profile (readOnlyHint=true, idempotentHint=true, destructiveHint=false), so the bar is lower. The description adds modest context by documenting the response shape (data.drivers with specific fields, meta.source), but since an output schema exists, this adds limited value beyond the structured data. No contradiction with 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 compact and well-structured with clear Args/Returns sections, and the purpose is front-loaded. One minor deduction: the Args section duplicates the schema exactly, which adds no value beyond the structured field.

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, read-only tool with full schema coverage, an output schema, and complete safety annotations, the description is nearly sufficient. The only gap is routing guidance—how to acquire the session_key and when to prefer this tool over sibling tools—which is a minor omission given the simplicity.

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 fully documents session_key as 'OpenF1 session identifier.' The description merely repeats this verbatim, adding no additional meaning about format, source, or how to obtain a valid value. 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 first sentence states a specific verb ('Return'), a specific resource ('driver list'), and a precise scope ('for a specific F1 session'). Combined with the Returns section listing driver_number, full_name, and team, an agent can unambiguously distinguish this from siblings like f1_get_standings or f1_get_race_results.

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 requirement of a session_key implies the agent must first obtain one (likely from f1_get_sessions), but this is never stated. There is no explicit guidance on when to choose this tool over the many F1 siblings that also return driver-related data, such as f1_get_standings or f1_get_race_results.

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

f1_get_lap_timesA
Read-onlyIdempotent
Inspect

Return lap times for a driver in a specific F1 session.

Args: session_key: OpenF1 session identifier. driver_number: Driver's race number (e.g. 1 for Verstappen). limit: Max laps to return, 1..200 (default 100 — covers most full races). offset: Number of laps to skip for paging (default 0).

Returns: data.laps: page of lap objects with lap_number and lap_duration. OpenF1 does not put compound/tyre_life here — those live on the stints endpoint. data.pagination: {total, count, offset, limit, has_more, next_offset}. meta.source: adapter that served the data.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax laps to return, 1..200 (default 100 — covers most full races).
offsetNoNumber of laps to skip for paging (default 0).
session_keyYesOpenF1 session identifier.
driver_numberYesDriver's race number (e.g. 1 for Verstappen).

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataNo
metaNo
errorNo

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, covering the safety profile. The description adds valuable operational behavior: pagination details (has_more, next_offset), response shape, and the data-availability caveat about compound/tyre_life living elsewhere. No contradiction with 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?

Well-structured with a one-line purpose, an Args section, and a Returns breakdown. Every sentence earns its place; the description is detailed yet concise, with no redundant repetition of schema descriptions.

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, paged list endpoint with an output schema, this description is complete: it covers required parameters, defaults, response structure, pagination semantics, source metadata, and a data-availability caveat. Nothing an agent needs to call it correctly is missing.

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, but the description adds practical semantics beyond the schema: a concrete driver number example ('1 for Verstappen'), why the default limit of 100 covers most races, and how offset enables paging. This enriches 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?

Description opens with a specific verb and resource: 'Return lap times for a driver in a specific F1 session.' This clearly distinguishes it from siblings like f1_get_race_results, f1_get_standings, and f1_get_drivers, leaving no ambiguity about what the tool does.

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?

Provides clear context on paging and defaults, and explicitly notes that compound/tyre_life are not included and live on the stints endpoint, which helps prevent misuse when tyre data is needed. It does not explicitly name sibling tools as alternatives, but the guidance is sufficient for correct selection.

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

f1_get_race_resultsA
Read-onlyIdempotent
Inspect

Return the final classification for one F1 race, keyed by year and round.

Args: year: Championship year (e.g. 2025). round: Round number within the season (1-based; e.g. 1 for the opener).

Returns: data.results: Ergast/Jolpica RaceTable payload — finishing order, times, grid positions, points, and fastest laps for the race. meta.source: adapter that served the data.

ParametersJSON Schema
NameRequiredDescriptionDefault
yearYesChampionship year (e.g. 2025).
roundYesRound number within the season (1-based; e.g. 1 for the opener).

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataNo
metaNo
errorNo

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already cover read-only, idempotent, and non-destructive behavior. The description adds useful context about the returned payload: finishing order, times, grid positions, points, fastest laps, and the meta.source adapter. It does not detail rate limits or errors, but it does not contradict any annotation and provides meaningful 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.

Conciseness5/5

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

The description is concise and well-structured: a one-sentence purpose, clear Args, and a Returns section. Every sentence carries useful information with no fluff, and the core purpose is front-loaded.

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 simple two-parameter, read-only tool with full schema coverage and an output schema, the description is complete. It covers what the tool returns, the key parameters, and the data source, leaving no critical gaps for an agent to invoke it correctly.

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 description's Args section essentially mirrors the schema's parameter descriptions. It adds no extra semantic meaning beyond the schema, so the baseline of 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 states a specific verb and resource: 'Return the final classification for one F1 race, keyed by year and round.' It clearly differentiates from sibling tools like f1_get_lap_times, f1_get_sessions, and f1_get_standings by focusing on a single race's final classification.

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 clearly implies when to use this tool: when you need the final classification/results of one specific race. It does not explicitly name alternatives or exclusion conditions, but the resource scope ('one F1 race') provides clear context among the F1 sibling tools.

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

f1_get_sessionsA
Read-onlyIdempotent
Inspect

Return F1 sessions for a given year, optionally filtered by country.

Args: year: Championship year (e.g. 2025). country: Optional country name to filter (e.g. "Monaco").

Returns: data.sessions: list of session objects with session_key, session_type, date. meta.source: adapter that served the data.

ParametersJSON Schema
NameRequiredDescriptionDefault
yearYesChampionship year (e.g. 2025).
countryNoOptional country name to filter (e.g. "Monaco").

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataNo
metaNo
errorNo

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint false, covering the safety profile. The description adds return structure (session_key, session_type, date) and meta.source, but does not disclose additional behavioral details like ordering, timezone handling, or edge cases.

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 well-structured and front-loaded with a one-sentence summary, followed by clear Args and Returns sections. Every element carries useful information, with no fluff or redundancy.

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 two-parameter read-only tool with an output schema and safety annotations, the description covers the essential contract. It could mention whether the country filter is exact or partial and whether sessions are sorted, but nothing critical blocks correct invocation.

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 already fully documents both parameters with descriptions and examples ('2025', 'Monaco'). The description repeats this information without adding extra meaning such as exact-match semantics, required formats, or allowed value ranges.

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 states a specific verb and resource: 'Return F1 sessions for a given year, optionally filtered by country.' The resource is unique among siblings (no other sessions tool), so it is clearly distinguishable from f1_get_drivers, f1_get_race_results, and similar tools.

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 gives clear scope (year, optional country) but no explicit guidance on when to use this tool versus alternatives or when not to use it. Usage is implied by the tool name and resource rather than stated as a recommendation.

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

f1_get_standingsA
Read-onlyIdempotent
Inspect

Return F1 driver and constructor championship standings for a year.

Args: year: Championship year (e.g. 2025).

Returns: data.driver_standings: driver championship positions and points. data.constructor_standings: constructor championship positions and points. meta.source: adapter that served the data.

ParametersJSON Schema
NameRequiredDescriptionDefault
yearYesChampionship year (e.g. 2025).

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataNo
metaNo
errorNo

TDQS

A3.9/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the description carries a lower burden. It adds a little context about the returned sections and meta.source, but does not disclose any additional behavioral traits such as data freshness, error handling, or how standings are computed mid-season.

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 compact, organized with Args/Returns/Meta sections, and every sentence carries useful information. There is no filler or redundant content.

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 simple one-parameter, read-only tool with strong annotations and an output schema, this description is complete. It covers what the tool returns, the required argument, and the source metadata, which is sufficient for an agent to invoke it correctly.

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 coverage is 100% and the sole parameter 'year' is already fully described in the schema. The description only repeats the same example and does not add new semantic meaning such as allowed ranges or formatting requirements.

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 ('Return'), a precise resource ('F1 driver and constructor championship standings'), and a scope ('for a year'). It clearly distinguishes this from sibling tools like f1_get_drivers, f1_get_race_results, and football_get_standings.

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 use case is implied: use this tool when F1 championship standings for a given year are needed. However, it does not explicitly say when to prefer this over alternatives or mention exclusions (e.g., race results, individual driver data).

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

f1_get_weatherA
Read-onlyIdempotent
Inspect

Return weather data for a specific F1 session.

Args: session_key: OpenF1 session identifier.

Returns: data.weather: list of weather snapshots with temperature, rainfall, wind. meta.source: adapter that served the data.

ParametersJSON Schema
NameRequiredDescriptionDefault
session_keyYesOpenF1 session identifier.

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataNo
metaNo
errorNo

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already establish this as a safe, read-only, idempotent operation. The description adds meaningful behavioral detail by specifying the return shape: a list of weather snapshots with temperature, rainfall, and wind, plus a meta.source field. This goes beyond the annotation-only baseline without contradicting any hints.

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 reasonably concise, front-loads the core purpose in the first sentence, and uses an Args/Returns structure that is easy to parse. It slightly redundantly repeats the parameter description from the schema, but overall it is efficient and well organized.

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 single-parameter, read-only data retrieval tool with a known output schema, the description covers the essential inputs and return fields. It is complete enough for an agent to call correctly, though it could optionally note that session_key comes from f1_get_sessions. The presence of an output schema reduces the need to document return values in detail.

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 session_key as an OpenF1 session identifier. The description repeats the exact same phrase, adding no new semantic meaning. The baseline of 3 is appropriate since the schema fully handles parameter documentation.

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: 'Return weather data for a specific F1 session.' It clearly distinguishes from sibling tools like f1_weather_strategy_impact (which analyzes strategy impact) and f1_get_sessions (session metadata), making the tool's function 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?

The description explains what the tool does but provides no guidance on when to use it versus alternatives. It does not mention that a session_key must first be obtained via f1_get_sessions, nor does it contrast with f1_weather_strategy_impact, which would help an agent choose the right weather-related tool.

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

f1_head_to_head_paceA
Read-onlyIdempotent
Inspect

Compare lap-time pace distribution between two drivers in a session.

Args: session_key: OpenF1 session identifier. driver_a: First driver's race number. driver_b: Second driver's race number.

Returns: data: {driver_a_avg_s, driver_b_avg_s, delta_s, faster_driver}. meta.estimated: true.

ParametersJSON Schema
NameRequiredDescriptionDefault
driver_aYesFirst driver's race number.
driver_bYesSecond driver's race number.
session_keyYesOpenF1 session identifier.

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataNo
metaNo
errorNo

TDQS

A3.5/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and non-destructive behavior. The description adds meaningful context by stating the return shape and the behavioral trait 'meta.estimated: true', signaling that results are estimates rather than exact measurements. No annotation contradictions exist.

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 compact, front-loaded with the core purpose, and structured into Args/Returns sections. Every line contributes information, and there is no wasted text or redundant elaboration.

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 an output schema present and annotations covering safety, the description is mostly sufficient. However, it says 'distribution' yet only returns averages (averages, delta, faster driver), which is a potential mismatch. It also omits any detail on lap selection methodology (e.g., whether pit laps are excluded) and gives no contextual guidance for choosing this over f1_race_pace_compare.

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 description's Args section merely repeats the same information as the schema fields. It adds no deeper meaning about parameter formats, constraints, or how session_key/driver numbers are resolved. A baseline of 3 is appropriate because the schema carries the semantic load.

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 opens with a specific verb and resource: 'Compare lap-time pace distribution between two drivers in a session.' This clearly conveys the core operation. However, it does not explicitly differentiate from the closely named sibling f1_race_pace_compare, so the agent must infer the distinction from the 'head-to-head' framing.

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 given about when to use this tool versus alternatives like f1_race_pace_compare or f1_get_lap_times. The description only states what the tool does and its parameters, leaving the selection criteria entirely to the agent's inference.

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

f1_predict_pit_strategyA
Read-onlyIdempotent
Inspect

Predict the optimal pit-stop strategy for a driver in an F1 race session.

Args: session_key: OpenF1 session identifier for a recorded race. driver_number: Driver's race number (e.g. 1 for Verstappen). current_lap: Current lap to project from (default 1 = full race ahead). total_laps: Total race laps. If omitted, inferred from the highest observed lap_number in the fetched laps (correct for Monaco 78 / Spa 44), falling back to 57 when no laps are available. An explicit value always wins.

Returns: data.stop_laps: recommended pit laps. data.compound_sequence: tyre compounds for each stint. data.expected_finish_position: currently always None (not modelled). data.confidence: 0.0-1.0 model confidence. meta.total_laps: race length used (explicit arg, else inferred from laps). meta.estimated: true.

Example: f1_predict_pit_strategy(session_key=9158, driver_number=1) f1_predict_pit_strategy(session_key=9158, driver_number=16, current_lap=20, total_laps=78)

ParametersJSON Schema
NameRequiredDescriptionDefault
total_lapsNoTotal race laps. If omitted, inferred from the highest observed lap_number in the fetched laps (correct for Monaco 78 / Spa 44), falling back to 57 when no laps are available. An explicit value always wins.
current_lapNoCurrent lap to project from (default 1 = full race ahead).
session_keyYesOpenF1 session identifier for a recorded race.
driver_numberYesDriver's race number (e.g. 1 for Verstappen).

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataNo
metaNo
errorNo

TDQS

A4.4/5.0
Behavior5/5

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

The description discloses important behavioral details beyond the annotations: expected_finish_position is currently always None, confidence is a 0.0-1.0 model output, meta.estimated is always true, and total_laps has a specific inference/fallback strategy. This prevents the agent from over-relying on unmodelled outputs and clarifies the tool's computational nature.

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 well-structured with Args, Returns, and Example sections, and the most important purpose is front-loaded. Some redundancy exists because the Args section repeats the schema descriptions nearly verbatim, but the Returns section and examples add genuine value.

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?

Even though an output schema exists, the description goes further by explaining the shape and semantics of the returned fields, including expected_finish_position limitations, confidence, and total_laps resolution. It also provides two illustrative call examples and documents fallback behavior, making the tool fully actionable for an agent.

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 four parameters. The description's Args section largely duplicates the schema text and adds only marginal value through concrete examples and the 'Monaco 78 / Spa 44' clarification already present in the schema. It does not meaningfully extend parameter semantics beyond what structured data provides.

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: 'Predict the optimal pit-stop strategy for a driver in an F1 race session.' This clearly distinguishes it from sibling tools like f1_tyre_degradation or f1_undercut_window, which focus on narrower data rather than full strategy prediction.

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 gives clear context for when to use the tool: for projecting pit-stop strategy from a current lap in a race session, with examples. However, it does not explicitly tell the agent when not to use it or name related alternatives such as f1_tyre_degradation or f1_undercut_window, so it stops short of full alternative routing.

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

f1_qualifying_analysisA
Read-onlyIdempotent
Inspect

Analyse a qualifying session: best lap per driver, gap to pole, projected grid.

Args: session_key: OpenF1 session identifier for a Qualifying session.

Returns: data.grid: [{position, driver_number, full_name, team_name, best_lap_gap_s}]. data.pole_time_s: pole lap duration in seconds. data.drivers_analysed: count of drivers with valid laps. meta.estimated: true — grid derived from session laps, not official timing.

ParametersJSON Schema
NameRequiredDescriptionDefault
session_keyYesOpenF1 session identifier for a Qualifying session.

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataNo
metaNo
errorNo

TDQS

A4.3/5.0
Behavior4/5

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

Beyond annotations, the description discloses that the returned grid is estimated and derived from session laps, not official timing ('meta.estimated: true — grid derived from session laps'), and defines drivers_analysed as valid laps only. This adds meaningful non-obvious behavior while annotations already cover read-only/idempotent safety.

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 compact and front-loaded with a one-line summary, followed by a short Args block and a clearly structured Returns list. Every line earns its place, including the estimated-grid caveat.

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 single-parameter analytical tool with read-only/idempotent annotations and an output schema, this description fully covers input requirements, return fields, and the key estimation caveat. Nothing needed to invoke the tool correctly 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 coverage is 100%, and the single parameter's schema description already provides 'OpenF1 session identifier for a Qualifying session.' The description merely repeats that wording without adding format, source, or examples, so it adds no semantic value beyond the 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?

Description opens with a specific verb and resource: 'Analyse a qualifying session', then lists concrete outputs (best lap per driver, gap to pole, projected grid). This clearly distinguishes it from sibling f1_get_* tools, which return raw sessions, laps, or results rather than a derived grid.

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 intended context: use it to analyse a qualifying session, and the schema/Args reinforce that session_key must identify a Qualifying session. It does not explicitly name alternative tools for official timing or race analysis, so it stops short of a 5, but the qualifying-only scope is clear.

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

f1_race_pace_compareA
Read-onlyIdempotent
Inspect

Compare race-pace and tyre degradation between two F1 drivers in a session.

Args: session_key: OpenF1 session identifier. driver_a: First driver's race number. driver_b: Second driver's race number.

Returns: data: {by_compound, overall_faster, compounds_compared}. meta.estimated: true — degradation model fit, not official timing.

ParametersJSON Schema
NameRequiredDescriptionDefault
driver_aYesFirst driver's race number.
driver_bYesSecond driver's race number.
session_keyYesOpenF1 session identifier.

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataNo
metaNo
errorNo

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already declare this a safe, read-only, idempotent operation. The description adds valuable transparency by explicitly stating that the result is a degradation model fit, not official timing (meta.estimated: true). This goes beyond the annotations and informs the agent that output is estimated.

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 compact and front-loaded with a clear one-sentence summary. The Args block is redundant with the schema, but the Returns section adds useful structure about the output, making the overall definition efficient and scannable.

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 rich annotations, 100% schema coverage, and presence of an output schema, the description provides sufficient context for correct invocation. It also highlights the estimated nature of the results. A small gap is the lack of differentiation from f1_head_to_head_pace, but this does not critically impair 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%, and the description's Args section essentially repeats the schema's parameter descriptions without adding new meaning. It correctly identifies session_key, driver_a, and driver_b, but adds no extra semantic detail, so the baseline 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?

The description states a specific action ('Compare race-pace and tyre degradation') and a clear resource scope ('between two F1 drivers in a session'). It is distinguishable from generic F1 tools, though it does not explicitly differentiate itself from the closely related sibling f1_head_to_head_pace.

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 intended use is implied by the first sentence: use this when comparing two drivers' race pace and tyre degradation. However, there is no explicit 'when to use' vs 'when not to use' guidance, nor any mention of alternatives among the many F1 sibling tools.

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

f1_tyre_degradationA
Read-onlyIdempotent
Inspect

Fit a tyre degradation model for a driver + compound in a session.

Args: session_key: OpenF1 session identifier. driver_number: Driver's race number. compound: Tyre compound (SOFT, MEDIUM, HARD, INTER, WET).

Returns: data: {intercept, slope, residual_std, sample_count}. meta.estimated: true — model output, not telemetry oracle.

ParametersJSON Schema
NameRequiredDescriptionDefault
compoundYesTyre compound (SOFT, MEDIUM, HARD, INTER, WET).
session_keyYesOpenF1 session identifier.
driver_numberYesDriver's race number.

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataNo
metaNo
errorNo

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare the tool read-only, idempotent, and non-destructive. The description adds meaningful context beyond that by explicitly stating the result is estimated model output rather than observed telemetry, and it exposes key return fields like residual_std and sample_count, which signal reliability and uncertainty.

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 tightly organized with a one-sentence summary followed by compact Args and Returns sections. Every line provides necessary information, and the key behavioral note about estimated output is prominently placed at the end.

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 three-parameter model-fitting tool with an output schema and clear return fields, the description is largely complete. It covers inputs, output shape, and the estimated nature of the result; a minor gap is the absence of caveats about data sufficiency or when model fitting might fail.

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 description simply restates the same parameter meanings (session key, driver number, compound) without adding new detail such as formats, constraints, or compound-specific behavior. This meets the baseline for schema-covered parameters but adds no extra semantic value.

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: 'Fit a tyre degradation model for a driver + compound in a session.' It clearly identifies the exact inputs and the statistical nature of the tool, distinguishing it from raw-telemetry sibling tools like f1_get_lap_times.

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 explicit when-to-use or when-not-to-use guidance is provided relative to sibling tools. The 'model output, not telemetry oracle' phrase hints at a distinction from raw data tools, but it does not state when an agent should choose this over alternatives like f1_race_pace_compare or f1_predict_pit_strategy.

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

f1_undercut_windowA
Read-onlyIdempotent
Inspect

Estimate whether an undercut is viable for the attacker against the target.

Args: session_key: OpenF1 session identifier. attacker_number: Attacking driver's race number. target_number: Target driver's race number. current_lap: Current lap number in the race.

Returns: data: {laps_to_clear, viable, marginal}. meta.estimated: true.

ParametersJSON Schema
NameRequiredDescriptionDefault
current_lapYesCurrent lap number in the race.
session_keyYesOpenF1 session identifier.
target_numberYesTarget driver's race number.
attacker_numberYesAttacking driver's race number.

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataNo
metaNo
errorNo

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, and non-destructive behavior. The description adds useful behavioral context by stating this is an estimate and exposing meta.estimated: true, indicating the result is a model calculation rather than an observed race fact. No contradiction with 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 short, front-loaded with the primary purpose, and closes with a compact Returns summary. However, the Args block duplicates information already present in the input schema, introducing mild redundancy.

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 that an output schema exists and annotations cover safety/idempotence, the description supplies enough calling context: required parameters, expected outputs, and the estimated nature of the result. It does not explain viability thresholds, but that is not necessary for correct invocation.

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 Args section merely repeats the schema descriptions without adding constraints, units, edge-case guidance, or formatting rules. The schema carries the parameter documentation burden, 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 opens with a specific verb and resource: 'Estimate whether an undercut is viable for the attacker against the target.' It also clarifies the return fields (laps_to_clear, viable, marginal), making the tool's scope unmistakable and distinguishable from broader pit/tyre strategy siblings.

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 purpose clearly implies when to use the tool, but the description does not explicitly state when to prefer it over related alternatives like f1_predict_pit_strategy or f1_tyre_degradation, nor does it mention any exclusions. Usage context is implied rather than stated.

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

f1_weather_strategy_impactA
Read-onlyIdempotent
Inspect

Analyse weather data and recommend compound or pit-window adjustments.

Args: session_key: OpenF1 session identifier.

Returns: data: {has_rain, avg_track_temp_c, compound_recommendation, recommendation}. meta.estimated: true.

ParametersJSON Schema
NameRequiredDescriptionDefault
session_keyYesOpenF1 session identifier.

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataNo
metaNo
errorNo

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, idempotentHint=true, and destructiveHint=false, so safety behavior is covered. The description adds useful context by listing the returned fields and stating 'meta.estimated: true', which signals the output includes estimates. No contradiction exists between the description and 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 compact and well-structured: a one-sentence purpose statement followed by concise Args and Returns blocks. Every element adds information, and the key action is front-loaded in the first sentence, making the tool's purpose immediately scannable.

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 single-parameter, read-only tool with strong annotations and an explicit return shape, the description is largely complete. It covers what the tool does, the required input, and the output structure. It would be more complete if it clarified when to prefer this over sibling strategy tools, but nothing critical for invoking it correctly 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%: the only parameter, session_key, is described in the schema as 'OpenF1 session identifier.' The description repeats this exact meaning without adding further semantic detail such as accepted session types, format, or example values, 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 opens with a specific verb ('Analyse'), a clear resource ('weather data'), and an explicit outcome ('recommend compound or pit-window adjustments'). This distinguishes it from raw-data tools like f1_get_weather and makes the tool's function obvious, though it does not explicitly separate it from closely-related strategy tools like f1_predict_pit_strategy or f1_undercut_window.

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 intended use case is implied: call this when you need weather-based compound or pit-window recommendations. However, there is no explicit when-to-use guidance, no mention of when not to use it, and no reference to alternative F1 strategy or weather tools, so an agent must infer the boundary from the name and description.

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

football_build_accumulatorA
Read-onlyIdempotent
Inspect

Model the joint probability of several match outcomes from the top model-vs-market gaps.

Calls football_find_value_bets internally to fetch live odds, then selects the strongest legs and combines them under the joint-probability model.

Args: legs: Number of legs (2-8). Default 3. min_edge: Minimum edge threshold per leg. Default 0.05.

Returns: data: {legs, legs_used, combined_odds, combined_model_prob, combined_edge, risk_flag, independence_warning}. meta.estimated: true.

ParametersJSON Schema
NameRequiredDescriptionDefault
legsNoNumber of legs (2-8). Default 3.
min_edgeNoMinimum edge threshold per leg. Default 0.05.

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataNo
metaNo
errorNo

TDQS

A4.5/5.0
Behavior5/5

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

Annotations already mark it read-only, open-world, and idempotent, and the description adds meaningful context beyond that: it relies on a live internal call to football_find_value_bets, selects the strongest legs, and returns risk_flag and independence_warning alongside meta.estimated=true. This gives an agent a solid model of execution behavior and output caveats without contradicting 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?

The description is compact and well-organized: a one-sentence purpose, a two-sentence mechanism, then clearly labeled Args and Returns. Every sentence contributes useful information, and the internal dependency is front-loaded alongside the purpose.

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 combinatorial modeling tool, the description is complete: it explains how legs are sourced, what parameters control the behavior, what the return object contains, and that the result is estimated. The presence of an output schema further reduces the burden, and no critical operational gap remains.

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 Args section largely repeats the schema's parameter descriptions ('Number of legs (2-8). Default 3.' and 'Minimum edge threshold per leg. Default 0.05.'), adding no notably deeper semantic context beyond what the structured schema already provides.

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-resource pair: 'Model the joint probability of several match outcomes from the top model-vs-market gaps.' It then clarifies the workflow by stating it calls football_find_value_bets internally and combines selected legs, which clearly distinguishes it from the single-value-bet sibling and the cross-sport accumulator.

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 intended context is clear: build an accumulator from strong model-vs-market edges using live odds fetched via football_find_value_bets. It does not explicitly state when not to use it or name alternatives such as cross_sport_build_accumulator, so it stops short of full exclusion guidance.

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

football_find_value_betsA
Read-onlyIdempotent
Inspect

Surface the largest gaps between the model's win probability and the market.

De-vigs each market's 1X2 decimal odds (removes the margin so implied probabilities sum to 1) and compares them to this server's own match-outcome probabilities — the same Elo/Poisson path football_match_predictor uses. Where the model probability exceeds the de-vigged market probability by at least min_edge, the outcome is flagged with its edge and the model's fair odds.

Args: team: Optional team name to filter events (case-insensitive substring, matched against both sides). Omit to scan every WC 2026 odds event. min_edge: Minimum edge (model_prob - devigged_market_prob), 0..1. Default 0.05 (5 percentage points).

Returns: data.value_bets: list of {event_id, home, away, outcome, model_prob, fair_odds, market_odds, edge, bookmaker}, sorted by edge descending. data.events_analysed: events with both teams rated (model-comparable). meta.estimated: true. meta.is_stale reflects the odds freshness.

ParametersJSON Schema
NameRequiredDescriptionDefault
teamNoOptional team name to filter events (case-insensitive substring, matched against both sides). Omit to scan every WC 2026 odds event.
min_edgeNoMinimum edge (model_prob - devigged_market_prob), 0..1. Default 0.05 (5 percentage points).

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataNo
metaNo
errorNo

TDQS

A4.5/5.0
Behavior5/5

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

Beyond the annotations (readOnly, idempotent, non-destructive), the description discloses the de-vigging algorithm, the model source (same Elo/Poisson path as football_match_predictor), the limitation that events_analysed only includes model-comparable events, and that meta.estimated is true with meta.is_stale reflecting odds freshness. This gives an agent a realistic picture of the tool's behavior and edge cases. There is no contradiction with 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?

The description is front-loaded with a one-sentence purpose, followed by a concise algorithm explanation and structured Args/Returns sections. Every sentence earns its place, covering the key behavioral nuance, filter semantics, and return shape without repetition or padding.

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?

Given the read-only annotations and an output schema, the description provides the essential invocation context: filter semantics, threshold behavior, return fields, sort order, model provenance, and the staleness flag. An agent has enough information to decide whether to call this tool and how to interpret its results.

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 fully documents team and min_edge. The description's Args section largely restates the schema, adding little new parameter-level meaning beyond reinforcing the default and the WC 2026 scope. With the schema doing the heavy lifting, the baseline 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 first sentence states a specific verb and resource: it surfaces gaps between the model's win probability and the market. The rest of the description makes the purpose concrete by defining the de-vigging process, the edge threshold, and the comparison to the server's own probabilities. It also distinguishes itself from football_match_predictor by clarifying it is the market-comparison layer, and its football scope separates it from cricket_find_value_bets.

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 gives clear context for when to invoke the tool: to find football value bets where model probability exceeds de-vigged market probability by at least min_edge. It explains how to narrow to a team or scan all WC 2026 odds events. It does not explicitly state when-not-to-use it or name alternatives like football_get_odds or football_match_predictor, so it stops short of a 5.

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

football_get_fixturesA
Read-onlyIdempotent
Inspect

Return World Cup 2026 fixtures (live providers, else the group schedule).

Args: limit: Max fixtures to return, 1..200 (default 50). offset: Number of fixtures to skip for paging (default 0).

Returns: data.fixtures: page of {home, away, date/group, status, home_goals, away_goals}. data.pagination: {total, count, offset, limit, has_more, next_offset}. meta.source: adapter that served the data (static_seed = group schedule only).

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax fixtures to return, 1..200 (default 50).
offsetNoNumber of fixtures to skip for paging (default 0).

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataNo
metaNo
errorNo

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, and non-destructive behavior, so the burden is lower. The description adds meaningful behavioral context by disclosing that results may come from a static_seed adapter (group schedule only) when live providers are unavailable, and it outlines the response fields including pagination and meta.source. This goes beyond the annotations without contradicting them.

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 well-structured with a front-loaded purpose sentence followed by Args and Returns sections. Some redundancy exists because the Args block duplicates the schema and the output schema already documents return values, but overall it remains compact and readable.

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 simple paginated read-only fixture tool, the description is complete: it explains the data source fallback, pagination semantics, and return shape via structured sections. With annotations covering safety and an output schema present, an agent has everything needed to invoke it correctly.

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 description repeats the limit and offset documentation almost verbatim. It adds no new meaning beyond what the input schema already provides, so the baseline 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 opens with a specific verb and resource: 'Return World Cup 2026 fixtures', which clearly identifies the tool's purpose. The parenthetical 'live providers, else the group schedule' adds useful scoping, though it does not explicitly contrast with sibling tools like football_get_groups or football_get_standings.

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 gives a clear context for use: it is the fixture-list tool, with the data source conditionally explained as live providers or the group schedule. It does not name alternatives or exclusions, but among the football siblings there is no other direct 'get fixtures' tool, so the intended usage is reasonably clear.

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

football_get_groupsA
Read-onlyIdempotent
Inspect

Return the FIFA World Cup 2026 group draw and advancement format.

Returns: data.groups: {group_letter: [4 team codes]} for all 12 groups. data.format: 48-team / 12-group / top-2 + 8-best-thirds rule. data.teams: team-code -> {name, fifa_code} metadata. meta.source: adapter that served the data.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataNo
metaNo
errorNo

TDQS

A4/5.0
Behavior3/5

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

Annotations already declare read-only, idempotent, and non-destructive behavior. The description adds useful context about the returned data structure and the meta.source adapter, but it does not disclose potential limitations such as data freshness, whether the draw is final, or how the adapter behaves if data is unavailable.

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 logically structured with a brief summary followed by a clear Returns breakdown. It is slightly verbose in re-specifying output schema details that the output schema already provides, but every line is informative and no filler exists.

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 tool with rich annotations and an output schema, the description fully covers what the agent needs: what the tool returns, the exact group structure, the format rule, and team metadata. There is no missing essential context for 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 tool has zero parameters and schema coverage is 100%, so there is no parameter documentation burden on the description. Per the rubric, a zero-parameter tool gets a baseline of 4, and the description confirms the tool takes no input.

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 ('Return') and a specific resource ('FIFA World Cup 2026 group draw and advancement format'). It clearly differentiates this tool from siblings like football_simulate_group or football_get_standings by naming the actual draw and format as the subject.

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 intended use is implied by the tool's scope: an agent needing the actual 2026 World Cup group composition and format should call this. However, the description does not explicitly mention when not to use it or point to alternatives like football_simulate_group for hypothetical scenarios, leaving some routing judgment to the agent.

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

football_get_match_statsA
Read-onlyIdempotent
Inspect

Return a team's aggregate World Cup tournament statistics.

Network-only enrichment: requires a configured API-Football (or football-data.org) key. There is no offline static fallback, so without a key the call returns a clean ALL_SOURCES_FAILED envelope.

Args: team: API-Football numeric team id (not a country code).

Returns: data.team_stats: {team, played, wins, goals_for, goals_against}. meta.source: adapter that served the data.

ParametersJSON Schema
NameRequiredDescriptionDefault
teamYesAPI-Football numeric team id (not a country code).

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataNo
metaNo
errorNo

TDQS

A4.3/5.0
Behavior5/5

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

Beyond the annotations (read-only, idempotent, non-destructive), the description adds substantial behavioral detail: it is network-only with no offline fallback, returns a clean ALL_SOURCES_FAILED envelope when no key is configured, and describes the exact return shape plus the meta.source adapter. This gives an agent full transparency about failure modes and response structure.

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 compact and well-structured with clear sections for purpose, network requirements, args, and returns. Every line earns its place, and the primary purpose is front-loaded. No redundant or filler content.

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 single-parameter tool, this description is complete. It explains the data requirement, the failure envelope, the return fields, and the source adapter. Even though an output schema exists, the description's return breakdown adds practical clarity, and nothing an agent needs to call it correctly 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?

The input schema already covers the single parameter 'team' with a clear description ('API-Football numeric team id (not a country code)') and 100% coverage. The description repeats this information in the Args section without adding any new semantic meaning, so it meets the baseline for high schema coverage.

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 ('Return') and an unambiguous resource ('a team's aggregate World Cup tournament statistics'), which clearly distinguishes it from sibling tools that return fixtures, standings, or individual match data. Even though the tool name says 'match_stats', the description clarifies it is aggregate tournament statistics, so an agent knows exactly what it gets.

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 when to use the tool: whenever a team's aggregate World Cup statistics are needed. However, it does not explicitly state when not to use it or name alternatives among the many football sibling tools. It does add a practical usage constraint (requires an API key and only works in network-enabled contexts), which supports usage decisions.

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

football_get_oddsB
Read-onlyIdempotent
Inspect

Return live market head-to-head odds for upcoming World Cup 2026 matches.

Sourced from The Odds API (requires THEODDS_KEY). Without a key the call returns a clean ALL_SOURCES_FAILED envelope rather than crashing.

Args: team: Optional team name to filter events (case-insensitive substring, matched against both sides). Omit to return every WC event.

Returns: data.events: list of {event_id, home, away, commence_time, bookmakers: [{name, home, draw, away}]} with decimal 1X2 prices per bookmaker. meta.source: adapter that served the data (theodds / cache:stale).

ParametersJSON Schema
NameRequiredDescriptionDefault
teamNoOptional team name to filter events (case-insensitive substring, matched against both sides). Omit to return every WC event.

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataNo
metaNo
errorNo

TDQS

B3.4/5.0
Behavior1/5

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

The description usefully discloses the THEODDS_KEY requirement, the ALL_SOURCES_FAILED envelope, and cache/stale source metadata. However, it claims 'Omit to return every WC event,' which contradicts the openWorldHint=true annotation that responses may not be exhaustive. This is an annotation contradiction.

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 well-structured with Args and Returns sections and front-loads the core purpose. It is appropriately sized, though the team parameter text is repeated from the schema, a mild redundancy.

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 covers authentication, failure behavior, parameter use, and return shape, which is generally strong for a simple read-only tool. However, the conflict with openWorldHint=true means it is misleading about completeness, and the description does not acknowledge that the response may not include every World Cup event.

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%: the schema already explains the team parameter as an optional case-insensitive substring matched against both sides. The description's Args section duplicates this rather than adding new semantic meaning, so the baseline of 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 states a specific action, resource, and scope: returning live market head-to-head 1X2 odds for upcoming World Cup 2026 matches. This clearly distinguishes it from sibling tools like football_get_fixtures or football_match_predictor.

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 context is clear: use this tool for live head-to-head odds on World Cup 2026 matches, with an optional team filter. It documents when to omit the team parameter, but it does not explicitly discuss alternatives or when not to use the tool.

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

football_get_squadA
Read-onlyIdempotent
Inspect

Return a national team's World Cup squad.

Args: team: Team code or name (e.g. "ARG"). Without an API-Football key, the static seed serves an empty-but-valid squad (rosters are a follow-up).

Returns: data.squad: list of {name, number, position, age}. meta.source: adapter that served the data.

ParametersJSON Schema
NameRequiredDescriptionDefault
teamYesTeam code or name (e.g. "ARG"). Without an API-Football key, the static seed serves an empty-but-valid squad (rosters are a follow-up).

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataNo
metaNo
errorNo

TDQS

A4.2/5.0
Behavior4/5

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

Beyond the annotations (readOnly, idempotent, non-destructive), the description discloses the static-seed fallback behavior, notes that rosters are a follow-up, and documents the meta.source adapter in the return. This adds useful context without contradicting 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?

The description is compact and well-organized: a one-line summary, an Args section, and a Returns section. Every sentence earns its place, and the critical static-seed caveat is front-loaded alongside the parameter it affects.

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 one-parameter read-only getter with an output schema and strong annotations, the description covers the return shape and the empty-squad edge case. Minor gaps like enumerating valid team codes are not necessary for correct invocation.

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 single team parameter is fully documented in the schema, and the description essentially repeats the same text: team code or name with the same static-seed caveat. Since schema coverage is 100%, the baseline of 3 applies; the description adds 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?

The description uses a specific verb-resource pair: "Return a national team's World Cup squad." This clearly distinguishes it from the many football tools for fixtures, odds, standings, and match stats, and from cricket_get_squad by sport and resource type.

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 provides clear context by warning that without an API-Football key, the static seed serves an empty-but-valid squad, which sets expectations for when the data is real versus a placeholder. However, it does not explicitly name alternatives or when-not-to-use conditions, so it stops short of full routing guidance.

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

football_get_standingsA
Read-onlyIdempotent
Inspect

Return current World Cup 2026 group standings.

Args: limit: Max standing rows to return, 1..200 (default 50). offset: Number of rows to skip for paging (default 0).

Returns: data.standings: page of {rank, team, group, points, played, goals_diff}. data.pagination: {total, count, offset, limit, has_more, next_offset}. meta.source: adapter that served the data.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax standing rows to return, 1..200 (default 50).
offsetNoNumber of rows to skip for paging (default 0).

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataNo
metaNo
errorNo

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, so the safety profile is covered. The description adds value beyond annotations by disclosing pagination behavior, return envelope shape, and the meta.source adapter detail. No contradiction exists.

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 well-structured and front-loaded with the core purpose. The Args block is redundant given the input schema, but the Returns section justifies its presence. Overall it is concise with no filler, though a bit repetitive.

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?

Given the tool's simplicity, the rich annotations, and the presence of an output schema, the description is complete. It documents the pagination contract, the return fields, and the source metadata. Nothing essential for an agent to call it correctly 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%, so the baseline is 3. The Args section simply restates the schema descriptions for limit and offset without adding new semantic detail. The Returns section indirectly clarifies paging behavior but does not enhance parameter meanings beyond what the schema already provides.

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 sentence states a specific verb ('Return'), a precise resource ('World Cup 2026 group standings'), and implicitly distinguishes the tool from siblings like football_get_groups or football_get_fixtures. The resource scope is unambiguous and cannot be confused with any other listed tool.

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 clearly implies the tool should be used when a caller needs current World Cup 2026 group standings. It provides no explicit exclusion or alternative routing, but the context is strong enough for an agent to select it appropriately among football-related list tools.

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

football_get_top_scorersA
Read-onlyIdempotent
Inspect

Return the World Cup 2026 top scorers.

Returns: data.scorers: list of {name, team, goals, assists}. meta.source: adapter that served the data.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataNo
metaNo
errorNo

TDQS

A4.2/5.0
Behavior3/5

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

The annotations already declare the tool read-only, idempotent, open-world, and non-destructive, which covers the safety profile. The description adds return structure details (scorers list, meta.source), which is useful but does not disclose additional behavior such as data freshness, ordering, or limits. This meets the minimum bar without exceeding it.

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 compact and front-loaded with the main action. The Returns block is structured clearly and adds useful detail without redundancy or fluff.

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 zero-parameter read-only tool with a full output schema and safety annotations, the description is nearly complete. The only minor gap is not stating how many scorers are included (e.g., top 10 vs. all), but this is unlikely to mislead an agent given the output schema.

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 has zero parameters, and the description correctly makes no parameter claims. With 0 params, the baseline is 4, and there are no missing parameter explanations to penalize.

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 states a specific verb ('Return') and a precise resource ('World Cup 2026 top scorers'), and the output shape is explicitly named. The tool's name and description uniquely identify it among siblings like football_get_standings and football_get_groups, leaving no ambiguity.

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 purpose is so specific that the intended usage ('when you need top scorer data') is obvious from the name and description. However, the description does not explicitly mention when not to use it or compare it to another tool, so it stops short of a 5.

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

football_knockout_pathA
Read-onlyIdempotent
Inspect

Round-by-round survival probabilities for one team in the full sim.

Args: team: Team code (e.g. "FRA"). iterations: Number of tournament simulations (clamped to 100..20000). seed: Optional RNG seed.

Returns: data: {team, reach_r32, reach_r16, reach_qf, reach_sf, reach_final, win}. meta.estimated: true.

ParametersJSON Schema
NameRequiredDescriptionDefault
seedNoOptional RNG seed.
teamYesTeam code (e.g. "FRA").
iterationsNoNumber of tournament simulations (clamped to 100..20000).

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataNo
metaNo
errorNo

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false. The description adds meaningful behavioral context beyond those annotations: results are estimates (meta.estimated: true), iterations are clamped to a specific range, and the simulation is the 'full sim.' This helps the agent understand the tool's stochastic nature and output characteristics.

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 well-structured with Args and Returns sections, and the first sentence immediately conveys the core purpose. It is slightly redundant because every parameter description is repeated from the schema, but the overall length is reasonable and the key information is front-loaded.

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?

The output schema exists and documents the return type, while annotations cover the read-only/idempotent safety profile. The description adds sufficient context by naming the exact returned fields and the estimated flag, plus the iteration clamping behavior. It doesn't cover error handling or invalid team codes, but that is not critical for 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?

Schema description coverage is 100%, so the baseline is 3. The description's Args section largely restates the schema text (team code, clamped iterations, optional seed) without adding new semantic depth. It provides a concrete example for team ('FRA') but otherwise adds no meaning beyond what the input schema already contains.

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 opening phrase 'Round-by-round survival probabilities for one team in the full sim' clearly identifies the specific verb (compute survival probabilities), resource (one team), and scope (full simulation). It also distinguishes itself from sibling tools like football_simulate_bracket and football_simulate_group by focusing on a single team's path rather than a whole tournament or group.

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 when to use this tool—when you need a single team's knockout-stage progression probabilities—but it never explicitly states when not to use it or names alternatives. There is no guidance comparing it to football_simulate_bracket or football_match_predictor, so the agent must infer the appropriate context from the tool name and phrasing.

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

football_match_predictorA
Read-onlyIdempotent
Inspect

Predict a single match: most likely scoreline + outcome probabilities.

Args: home_team: First team code. away_team: Second team code. neutral: True for a neutral venue (World Cup default).

Returns: data: {most_likely_score, home_win, draw, away_win, predicted_winner}. meta.estimated: true.

ParametersJSON Schema
NameRequiredDescriptionDefault
neutralNoTrue for a neutral venue (World Cup default).
away_teamYesSecond team code.
home_teamYesFirst team code.

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataNo
metaNo
errorNo

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds useful behavioral context by stating outputs include outcome probabilities and that meta.estimated is true, making clear the result is a model estimate rather than an actual match 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?

The description is compact and well-structured: a front-loaded one-line purpose followed by concise Args and Returns sections. It contains no filler, and the structure makes the tool's inputs and outputs easy to scan.

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 3-parameter tool with high schema coverage and an output schema, the description provides enough information to invoke it correctly: required params, the optional neutral flag, and the return fields. A minor gap is the lack of a team-code example or explicit call scenario, but nothing critical 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%, so the baseline is 3. The description largely repeats the schema's parameter descriptions rather than adding new meaning; it does not clarify what valid team codes look like or give examples.

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: 'Predict a single match: most likely scoreline + outcome probabilities.' This clearly distinguishes it from sibling tools like football_simulate_group, football_simulate_bracket, and football_xg_model by focusing on a single match and its concrete output.

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 phrase 'single match' implies when to use this tool, but there is no explicit guidance about alternatives or exclusions. It does not say, for example, to use football_xg_model for expected-goal analysis or football_simulate_group for multiple matches.

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

football_simulate_bracketA
Read-onlyIdempotent
Inspect

Monte Carlo the full World Cup 2026 — per-team round + title probabilities.

Simulates all 12 groups, advances the top 2 + 8 best third-placed teams to a 32-team knockout, and plays it to a champion, iterations times.

Args: iterations: Number of tournament simulations (clamped to 100..20000; ~10000 gives stable ±2% probabilities). seed: Optional RNG seed for reproducible output.

Returns: data.teams: {code: {reach_r32, reach_r16, reach_qf, reach_sf, reach_final, win}} sorted by win probability descending. data.champion: most likely winner. data.iterations: iterations run. meta.estimated: true. meta.conditioned_matches: completed matches locked in (played group results fixed, decided knockout ties locked).

Example: football_simulate_bracket() football_simulate_bracket(iterations=20000, seed=42)

ParametersJSON Schema
NameRequiredDescriptionDefault
seedNoOptional RNG seed for reproducible output.
iterationsNoNumber of tournament simulations (clamped to 100..20000; ~10000 gives stable ±2% probabilities).

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataNo
metaNo
errorNo

TDQS

A4.5/5.0
Behavior5/5

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

The description adds substantial behavioral detail beyond the annotations: the simulation is stochastic, iterations are clamped, probabilities are estimates, and completed matches are locked in via meta.conditioned_matches. It also explains reproducibility via the RNG seed, which annotations do not convey.

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 well-organized with a front-loaded summary, structured Args/Returns sections, and a compact example. Every sentence contributes useful information, and the formatting makes the tool's behavior easy to parse quickly.

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 probabilistic simulation tool, the description covers the tournament structure, parameter constraints, state conditioning, return shape, and example calls. The output schema already exists, and the Returns section adds enough detail for an agent to understand what will come back.

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 schema already documents both parameters. The description adds value with the recommendation that ~10000 iterations gives stable ±2% probabilities and provides concrete usage examples that clarify optionality and seeding.

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 ('simulates') and a precise resource ('the full World Cup 2026'), and details the full scope: all 12 groups, knockout advancement, and a champion. This clearly differentiates it from siblings like football_simulate_group by covering the entire tournament rather than just one group.

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 intended use is strongly implied by the simulation scope and examples, but the description never explicitly states when to prefer this tool over alternatives such as football_simulate_group or football_knockout_path. It provides clear context but no explicit exclusions or routing guidance.

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

football_simulate_groupA
Read-onlyIdempotent
Inspect

Monte Carlo one group within the full 12-group qualification context.

Args: group: Group letter A-L. iterations: Number of simulations (clamped to 100..20000).

Returns: data.teams: Per-team position probabilities, p_auto_advance, p_best_third_advance, truthful combined p_advance, and avg_points. data.iterations: iterations actually run. meta.estimated: true. meta.conditioned_matches: completed matches locked in.

ParametersJSON Schema
NameRequiredDescriptionDefault
groupYesGroup letter A-L.
iterationsNoNumber of simulations (clamped to 100..20000).

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataNo
metaNo
errorNo

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already indicate this is read-only, idempotent, and non-destructive. The description adds useful behavioral detail: results are Monte Carlo estimates, iterations are clamped, meta.estimated is true, and completed matches are locked in as conditions. This goes beyond the annotations to explain the approximate nature of the outputs.

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 well-organized with Args and Returns sections, and the key behavioral point about Monte Carlo estimation is front-loaded. It is compact and information-dense, though the phrase 'Monte Carlo one group' is slightly awkward.

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?

The output schema and annotations already cover return structure and safety traits. The description adds the important context of grouping within the 12-group qualification, the 'truthful combined p_advance' nuance, and the fact that completed matches are conditioned. This is complete for the tool's moderate complexity.

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 fully. The description repeats the group and iterations meanings without adding substantially new semantic detail beyond the schema, so the baseline 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 states a specific operation: Monte Carlo simulation of exactly one group within the full 12-group qualification context. It clearly scopes the resource to a single group letter A–L and distinguishes it from the sibling football_simulate_bracket, which covers the bracket-level simulation.

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 simulating a single group's advancement probabilities, and it mentions the 'full 12-group qualification context.' However, it does not explicitly say when to prefer this tool over football_simulate_bracket or other football tools, nor does it provide exclusions or alternative routing.

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

football_xg_modelA
Read-onlyIdempotent
Inspect

Estimate a match's expected goals and win/draw/loss probabilities.

Args: home_team: First team code (e.g. "ARG"). away_team: Second team code (e.g. "BRA"). neutral: True for a neutral venue (no home advantage). World Cup default.

Returns: data: {expected_home_goals, expected_away_goals, home_win, draw, away_win}. meta.estimated: true.

ParametersJSON Schema
NameRequiredDescriptionDefault
neutralNoTrue for a neutral venue (no home advantage). World Cup default.
away_teamYesSecond team code (e.g. "BRA").
home_teamYesFirst team code (e.g. "ARG").

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataNo
metaNo
errorNo

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already cover the safe read-only/idempotent nature. The description adds useful behavioral context by defining the neutral-venue/home-advantage handling and noting that the outputs are estimates via meta.estimated: true. No contradiction with 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 compact, front-loaded with purpose, and clearly separated into Args and Returns. It loses a point because its Args section essentially duplicates the schema descriptions rather than adding new guidance.

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 simple three-parameter, read-only model with a full input schema and output schema, nothing essential is missing: required team codes, the neutral default, the return shape, and the estimated flag are all present.

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 coverage is 100%, so the schema already documents all three parameters. The description repeats those same descriptions (team codes, neutral flag) but adds no extra meaning such as accepted code formats, validation rules, or how coordinates are resolved.

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 opening line names a specific action ('Estimate') and resource ('a match's expected goals and win/draw/loss probabilities'), matching the tool name. It is clear, but it does not explicitly position itself against the overlapping sibling football_match_predictor.

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 its use case: any time an agent needs pre-match expected goals and probabilities. It gives the World Cup venue default as context, but it never states when to pick this tool instead of football_match_predictor or the simulator siblings.

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

sportiq_healthA
Read-onlyIdempotent
Inspect

Report cache backend, per-adapter healthcheck, and quota status.

Returns: HealthReport-shaped dict with cache_backend, cache_ok, adapters (per-source ok/detail), and quotas.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataNo
metaNo
errorNo

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare read-only, idempotent, and non-destructive behavior. The description adds useful context by specifying the report shape and the per-adapter detail, which goes beyond what the annotations alone convey. No contradictions exist.

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 compact and front-loaded with the core purpose, then provides a structured return summary. Every sentence adds value and there is no redundant or promotional text.

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?

With zero parameters, a present output schema, and annotations covering safety semantics, the description is complete for invoking this tool correctly. It names the key output fields and the overall report shape, which is sufficient for an agent to know what to expect.

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 tool takes zero parameters, and the baseline for no-parameter tools is 4. There is no parameter detail needed, and the description does not need to compensate for undocumented inputs.

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 the specific verb 'Report' and names three concrete resources: cache backend, per-adapter healthcheck, and quota status. It is clearly distinct from the sibling sports-data tools, as it targets system health rather than sport-specific content.

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 clearly establishes that this tool is for health and quota reporting, and no sibling tool competes for that role. It does not explicitly state when not to use it, but the context is unambiguous given the tool's unique purpose.

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

  1. 44 tool updates
    • First observedcricket_build_dream11_team
    • First observedcricket_captain_recommendation
    • First observedcricket_differential_picks
    • First observedcricket_find_value_bets
    • First observedcricket_get_live_matches
    • First observedcricket_get_live_odds
    • First observedcricket_get_pitch_report
    • First observedcricket_get_points_table
    • First observedcricket_get_schedule
    • First observedcricket_get_scorecard
    • First observedcricket_get_squad
    • First observedcricket_head_to_head
    • First observedcricket_player_form_index
    • First observedcricket_player_matchup
    • First observedcross_sport_build_accumulator
    • First observedf1_get_drivers
    • First observedf1_get_lap_times
    • First observedf1_get_race_results
    • First observedf1_get_sessions
    • First observedf1_get_standings
    • First observedf1_get_weather
    • First observedf1_head_to_head_pace
    • First observedf1_predict_pit_strategy
    • First observedf1_qualifying_analysis
    • First observedf1_race_pace_compare
    • First observedf1_tyre_degradation
    • First observedf1_undercut_window
    • First observedf1_weather_strategy_impact
    • First observedfootball_build_accumulator
    • First observedfootball_find_value_bets
    • First observedfootball_form_trends
    • First observedfootball_get_fixtures
    • First observedfootball_get_groups
    • First observedfootball_get_match_stats
    • First observedfootball_get_odds
    • First observedfootball_get_squad
    • First observedfootball_get_standings
    • First observedfootball_get_top_scorers
    • First observedfootball_knockout_path
    • First observedfootball_match_predictor
    • First observedfootball_simulate_bracket
    • First observedfootball_simulate_group
    • First observedfootball_xg_model
    • First observedsportiq_health

Frequently Asked Questions

Discussions

No comments yet. Be the first to start the discussion!

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    C
    maintenance
    MCP server for FIFA World Cup 2026 data: matches, teams, venues, city guides, fan zones, visa info, injuries, odds, standings, bracket, and historical matchups. 18 tools, zero external API dependencies.
    18
    529
    34
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    An MCP server that provides 118+ Formula 1 analytics tools, enabling race analysis, driver comparisons, telemetry exploration, and strategy simulation through natural language.
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    MCP server that turns real NFL & fantasy data into a decisive edge, offering 70+ tools for draft assistance, start/sit recommendations, trade analysis, playoff odds, and more, with live league integration.
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

TDQS

A3.6/5.0
Disambiguation3/5

Sport prefixes make the three domains easy to separate, and most tools have clear purposes. However, several tools overlap: football_match_predictor vs football_xg_model, f1_head_to_head_pace vs f1_race_pace_compare, and the cricket fantasy tools (build_dream11, captain_recommendation, differential_picks) all require careful reading to avoid misselection.

Naming Consistency4/5

The sport prefix + snake_case pattern is consistent and retrieval tools uniformly use get_, which creates predictability. The main deviation is that many analysis/model tools are noun phrases rather than verb_noun (cricket_head_to_head, football_knockout_path, f1_tyre_degradation), but they remain readable and scoped.

Tool Count2/5

44 tools is well above the 25+ threshold for a single server and will strain agent context and tool-selection quality. Each sport block is individually reasonable at 13-15 tools, but combining three sports plus cross-sport and health utilities makes the overall surface too large.

Completeness3/5

Core workflows are broadly covered: live data, schedule/standings, match prediction, tournament simulation, fantasy help, and strategy analysis exist for each sport. However, there are notable dead ends: cricket_player_form_index needs a player_id no exposed tool returns, football_get_match_stats requires an API-Football numeric ID not mapped anywhere, and f1_get_lap_times references a stints endpoint that is not exposed as a tool.