Skip to main content

rapidoddsapi-mcp

MCP server for RapidOddsAPI. Gives an AI assistant bookmaker odds, futures, live scores, arbitrage and value bets.

Built on the official rapidoddsapi Python SDK.

Setup

You need an API key from the dashboard. Keys start with oa_.

Claude Desktop

Add this to claude_desktop_config.json:

{
  "mcpServers": {
    "rapidoddsapi": {
      "command": "uvx",
      "args": ["rapidoddsapi-mcp"],
      "env": {
        "RAPIDODDSAPI_API_KEY": "oa_your_api_key_here"
      }
    }
  }
}

The config file lives at ~/Library/Application Support/Claude/ on macOS and %APPDATA%\Claude\ on Windows. Restart Claude Desktop after editing it.

Anything else that speaks MCP

RAPIDODDSAPI_API_KEY=oa_your_api_key_here uvx rapidoddsapi-mcp

It speaks stdio.

Tools

Tool Credits
list_sports(sport=) 0
get_odds(sport, market_types=, bookmakers=) market_types x ceil(bookmakers / 5)
get_futures(sport, market_types, bookmakers=, season=) market_types x ceil(bookmakers / 5)
get_results(sport, status=, include=) 1
find_arbitrage(sport, market=, bookmakers=, min_profit=, stake=) ceil(bookmakers / 5)
find_value_bets(sport, market=, bookmakers=, min_edge=, devig=) ceil(bookmakers / 5)

Credits are charged only when games come back, so a query that matches nothing is free. Every response ends with what it cost and what is left.

Credits

Credits are one per market type per five bookmakers.

  • A sport is always required. There is no way to request every sport at once.
  • Market types default to one.
  • Bookmakers default to every feed, about 6 credits per market type. Feeds price across regions, an Australian book carries the NFL, so a regional default would leave out books that price the game.

To narrow a request, name books or a group: "AU", "US", "EU" or "EXCHANGES", mixable with names, as in ["AU", "Pinnacle"]. Asking for "Australian books only" is enough; the model passes the group.

The free tier is 250 credits for the life of the account, with no monthly reset. The tool descriptions state the cost, so the model can say what a request will cost before making an expensive one.

Markets

find_arbitrage and find_value_bets handle any market whose bets have two sides: head_to_head and its period variants, soccer's draw_no_bet, totals, handicaps, team totals and player props. Each line is its own bet, so a totals market can return several results for one game.

Three-way markets return an error explaining why rather than an empty list, since "nothing found" would read as "no opportunities".

find_value_bets takes devig for where the fair price comes from. The default, "all", de-vigs every bookmaker fetched and averages the result, which needs no view on which book is sharp. Naming one, devig="Pinnacle", measures every other book against that one instead: tighter, but only on markets that book prices. A consensus needs four bookmakers on the same line, so on thin markets naming a book finds bets that averaging cannot.

Market keys vary by sport. list_sports(sport) returns the valid ones and costs nothing.

Winning margin and other markets priced in bands cannot be paired, so find_arbitrage and find_value_bets say so rather than reporting that they found nothing. get_odds still compares them across books.

Futures

Season-long outrights, such as the Brownlow Medal and AFL Premiership, come from get_futures rather than get_odds. They have their own market keys, which list_sports("AFL") lists separately from the match ones. Long fields are cut to the favourites, with a count of the rest.

Bookmakers

Names are odds feeds, not brands. Many brands share one feed and quote identical prices, so Ladbrokes covers Neds and Betmakers covers the 26 brands running on it. A brand name that is not a feed returns nothing.

Development

pip install -e ".[dev]"
pytest
ruff check .
mypy src/rapidoddsapi_mcp

License

MIT

Metadata

Release files for rapidoddsapi-mcp 0.4.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for rapidoddsapi-mcp 0.4.0
File Size Uploaded
rapidoddsapi_mcp-0.4.0.tar.gz 23.2 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for rapidoddsapi-mcp 0.4.0
File Interpreter ABI Platform
rapidoddsapi_mcp-0.4.0-py3-none-any.whl Python 3 none any Details

Total release size: 41.5 kB

Release files / rapidoddsapi_mcp-0.4.0.tar.gz

Download URL rapidoddsapi_mcp-0.4.0.tar.gz
Size 23.2 kB
Tags Source
SHA-256 checksum
How to use checksums
d4742ee1ec8a80dd7a997c38d02f653ed55412dc7dc1b5a3c70984b935f7a023
BLAKE2b-256 checksum
How to use checksums
8de27a278ba183bb2f86dc8136db4a258c9eccbd4d9b146d24896e3cfd5754a7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.6

Release files / rapidoddsapi_mcp-0.4.0-py3-none-any.whl

Download URL rapidoddsapi_mcp-0.4.0-py3-none-any.whl
Size 18.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
8a4ba271c686c2ca3a5ed852fbd74eb63634ca1a76c8554cdf2cf88b64743134
BLAKE2b-256 checksum
How to use checksums
647321402bfe968a425be159ca4457b8f48fc1b1a83e0d178142534c15bacf3d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.6

Release history Release notifications | RSS feed

This release

0.4.0 This release

2 release files

0.3.0

2 release files

0.2.0

2 release files

0.1.2

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page