MCP server for Australian racing and sports odds — live prices from 14 Australian bookmakers inside Claude, Cursor and any MCP client. Horse, greyhound and harness racing plus AFL, NRL, NBA and more.
Strong tool definitions with excellent descriptions (avg 180+ chars) and comprehensive parameter documentation. All 7 tools have clear, LLM-optimized descriptions explaining WHAT, WHEN, and WHY. Input schemas use Zod with proper types and constraints. However, output schemas are not documented, responses are JSON-stringified without field-level documentation. Error handling is basic (relies on upstream API). No tool annotations (readOnlyHint, destructiveHint, idempotentHint) despite all tools being read-only. Parameter naming is consistent and descriptive. Composition is clean: each tool has one responsibility, and tool outputs contain IDs needed for chaining (e.g., race_id for follow-up queries).
Head-to-head and other market odds for one sport, from every bookmaker covering it. Use for 'odds for the <team> game', 'who is favourite in the NRL tonight'. Sports coverage is thinner than racing — at most 5 bookmakers on AFL and NRL, 3 on NBA and ATP, and as few as 1 on some competitions — so say how many books are quoting rather than implying a full market.
Every sport and competition this API currently covers, with its sport_key. Call this FIRST if you are unsure of the right sport_key — passing an unknown key returns a 404 listing the valid ones, but checking here is cheaper. Note there is no 'horse-racing' sport_key: racing lives under the separate racing_* tools.
The single best available price for each runner in upcoming Australian races, and which bookmaker is offering it. Use this when the user wants the best price rather than a full comparison across every book — 'where is the best odds on <horse>', 'best price in the next race'.
The upcoming Australian race schedule — venues, race numbers and jump times, without runner prices. Use this for 'what meetings are on today' or to find a race_id before asking about it. Cheaper than next_to_go when prices are not needed.
Output schemas not documented. Tools return JSON via ok() helper but no field-level documentation of response structure. LLMs cannot plan downstream calls or extract specific fields without trial-and-error.
No tool annotations despite all tools being read-only. Missing readOnlyHint would help agents understand these tools are safe to call speculatively without side effects.
Error handling returns raw API responses without recovery guidance. When API returns 402 (upgrade needed) or 404, the response includes headers but no actionable next steps for the LLM.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 67 | 2026-07-28+ | v2 |
Runners whose price has moved sharply across the market — firming (shortening) or drifting (lengthening). Use this for 'what's being backed', 'any big movers today', or market-sentiment questions. A move confirmed by several bookmakers is more meaningful than one book repricing, so min_books guards against reading noise as a signal.
The next Australian horse, greyhound and harness races about to jump, with EVERY bookmaker's price for every runner side by side. This is the primary tool: use it for 'what's racing next', 'who is favourite in the next race at <venue>', or any question about current Australian racing prices. Each race reports data_age_seconds and each price its own age, so you can tell the user how fresh the odds are rather than implying they are live to the second.
Settled results for Australian races that have already run — finishing order and dividends. Use this for 'who won the <race> at <venue>' or to check a past result. Not for upcoming races.
Parameter 'country' accepts ISO codes but description does not specify format or valid values. LLMs may pass invalid codes. Should document 'ISO 3166-1 alpha-2 codes, e.g. AU, NZ' and validate server-side.
racing_movers 'direction' enum is optional but description does not explain what happens when omitted. Should state 'Omit to return both firming and drifting movers.'