We built a free horse racing API — and an MCP server so AI agents can use it too
More people are building with AI agents than ever, and a noticeable slice of them want the same thing: horse racing data their agent can actually use. If you've tried to get it, you know the landscape — official feeds are licensed and priced for bookmakers, scraping is fragile and usually against someone's terms, and most "racing APIs" are paid products aimed at trading desks.
So we opened ours. As of this week, the signals that power racingalpha.co.uk are a free public API, and — because agents are the audience we think matters most — a native MCP (Model Context Protocol) server that Claude, Cursor and any other MCP-capable client can call as typed tools, no installation required.
What it serves
Everything we compute ourselves, for every UK & Irish race, every day:
- AI scores — our model's 0–100 field-relative rating for each runner
- Fair prices — the market consensus with the overround stripped out
- Value flags — where a best available price sits meaningfully above fair
- Draw bias — three years of impact values, A–E grades and percentage-of-rivals-beaten by course, surface and distance band
- Trainer × jockey combos — strike rates over settled races
- The tips ledger — every pick we've ever published, frozen at publication, with level-stakes P/L and closing line value
That last one matters most. We are a tipster site that publishes its
losses. Every advised price is database-frozen the moment it goes out —
an audit table records any attempt to change history — and the whole
record, including the current losing run on one of our models, is served
by the same API at /api/v1/ledger. You can check whether we're any good
before you build on us, programmatically. We think that should be
table stakes for anyone publishing predictions; almost nobody does it.
What it deliberately doesn't serve
Raw racecards, official ratings, form strings and bookmaker odds boards stay out of the API. Those originate from licensed upstream feeds and redistributing them would breach the terms they're supplied under. What we serve is derived work — our own model's outputs and aggregates we've computed over settled results. That boundary is what lets the free tier exist at all, so it's enforced in code, not just policy.
Connect an AI agent in under a minute
The MCP endpoint is https://racingalpha.co.uk/api/mcp — Streamable
HTTP, stateless, keyless to try. In Claude Code:
claude mcp add --transport http racing-alpha https://racingalpha.co.uk/api/mcp
Or add it as a custom connector in claude.ai / Cursor with that URL. Your
agent gets five tools: get_today_races, get_race_signals,
get_tips_ledger, get_draw_bias and get_combo_stats. It's published
on the official MCP Registry as uk.co.racingalpha/signals, listed on
Glama, and
there's a zero-dependency stdio bridge on
GitHub for clients that
don't speak HTTP transport yet.
Plain HTTP works too, no key needed:
curl https://racingalpha.co.uk/api/v1/today
Keyless gets 50 requests a day per IP; a free key from the developers page raises that to 1,000. The OpenAPI spec is public.
The terms, in one paragraph
Free tier requires attribution — "Signals by Racing Alpha", linked. No betting operators or sportsbooks (that mirrors our upstream licence). No re-selling the signals as a data feed — building apps, models, research and agent tools on top is exactly what it's for. And don't present the signals as guaranteed winners: our own record says otherwise often enough, and anything user-facing for a UK audience should carry 18+ and BeGambleAware messaging, same as we do.
If you build something on it, we'd genuinely like to see it: hello@racingalpha.co.uk.
Enjoyed this? Get the daily brief
The model's card each morning plus the settled results — the same evidence-first approach as this post, in two-minute email form.
18+ · Tips are opinions, not advice · BeGambleAware.org