Skip to main content
Glama

Odds

get_odds
Read-onlyIdempotent

Use for betting lines: each sportsbook's three-way moneyline (home, draw, away), goal handicap and total (opening and closing from June 2020 for 16 competitions and from 2024 for the rest; before that most books carry one final pre-match line), the no-margin probabilities each book's prices imply, and for finished matches the result and whether the total went over against the median close. Pass game_id for one match (5 credits), date for a day's matches (10 credits), or season (optionally a team) for a season of priced matches, 2 credits per match returned, up to 100 a page. Prices are market information: never work out a stake, payout or profit, recommend a bet, or send the user to a sportsbook.

Input Schema

NameRequiredDescriptionDefault
dateNoA day's matches, YYYY-MM-DD (UTC).
teamNoWith season: one club's matches.
limitNoWith season: matches per page (default 50).
leagueNoLeague. Defaults to soccer. One of: soccer, mls, laliga, seriea, bundesliga, ligue1, ucl, championship, nwsl, ligamx, uel, uecl, eredivisie, primeira, scotland, brazil, argentina.
offsetNoWith season: page offset; use next_offset.
seasonNoA season of priced matches, by the year it starts (2025 = 2025-26; MLS, the NWSL, Liga MX, Brazil and Argentina: the calendar year).
game_idNoOne match.

Output Schema

NameRequiredDescriptionDefault
noteNo
toolNo
countNo
gamesNo
creditsNo
next_offsetNo
estimate_onlyNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.2/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, non-destructive and closed-world, so the safety profile is covered. The description does add real context beyond them: credit costs per call mode, the historical coverage boundary (June 2020 for 16 competitions, 2024 for the rest, single final line before that), and pagination bounds. However, the credit figure quoted for game_id and the 2-credits-per-match for season sit awkwardly with the 10-credit figure for date without explaining whether they combine, and nothing is said about ordering or failure modes; with annotations carrying safety, a 3 reflects solid but incomplete added context. Note that the schema's 17-league enum sits against the description's "16 competitions", a minor inconsistency.

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?

Front-loaded with the resource and its payload before the mode/cost instructions, and every clause carries information. The opening sentence is extremely long and stacks six distinct concepts, which costs some scannability.

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

Completeness5/5

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

An output schema exists so return shape needn't be described, yet the description still tells the agent what fields matter (lines, implied probabilities, over/under result vs median close). Coverage limits, credit costs, page size and the responsible-use restriction are all present, leaving nothing essential missing 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?

Schema coverage is 100%, so baseline is 3, but the description adds meaning the schema lacks: cost per call mode, that limit/offset apply only in season mode with up to 100 per page, and that team is used with season. It does not clarify how the three query modes interact if several are supplied, leaving one semantic gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource ("betting lines") and then enumerates exactly what is returned: three-way moneyline, goal handicap, total with opening/closing, implied no-margin probabilities, and settled results. That enumeration separates it from siblings such as get_player_props (player-level props) and get_line_movement (price changes over time) without either schema being opened.

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?

Gives concrete routing guidance: game_id for one match, date for a day's slate, season (optionally with team) for a season of priced matches, each with its credit cost. It does not name an alternative tool or state when to use a sibling instead, so it stops short of full when/when-not guidance.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.