Skip to main content

MCP server for RapidOddsAPI: bookmaker odds, live scores, arbitrage and value bets.

Project description

rapidoddsapi-mcp

MCP server for RapidOddsAPI. Gives an AI assistant bookmaker odds, 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_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

The free tier is 250 credits for the life of the account, with no monthly reset, so the defaults are deliberately narrow:

  • A sport is always required. There is no way to request every sport at once.
  • Bookmakers default to five, one credit group, chosen for the sport's region.
  • Market types default to one.

That makes a typical question cost 1 credit. Both arguments multiply, so asking for nine market types across eighteen bookmakers is 36. The tool descriptions say so, which is what keeps the model from doing it uninvited.

find_arbitrage and find_value_bets default to ten bookmakers, 2 credits, because both need books that disagree and five rarely spread far enough.

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.

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

Links

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

rapidoddsapi_mcp-0.3.0.tar.gz (19.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

rapidoddsapi_mcp-0.3.0-py3-none-any.whl (16.6 kB view details)

Uploaded Python 3

File details

Details for the file rapidoddsapi_mcp-0.3.0.tar.gz.

File metadata

  • Download URL: rapidoddsapi_mcp-0.3.0.tar.gz
  • Upload date:
  • Size: 19.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.12.6

File hashes

Hashes for rapidoddsapi_mcp-0.3.0.tar.gz
Algorithm Hash digest
SHA256 c24fb790146a82c22d43b26dad0279b7d35ad3d662e8e02e8370187f8cad5acc
MD5 a1de9b36d9fbc16b573c166c4336243f
BLAKE2b-256 4ab76bb06c50401d71b2ddc27913bc575af07fcf86347e096ba88cb323f22dba

See more details on using hashes here.

File details

Details for the file rapidoddsapi_mcp-0.3.0-py3-none-any.whl.

File metadata

File hashes

Hashes for rapidoddsapi_mcp-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 cde76870d7a9afbce8cf41ca50e72c6bb2b846ead0e708822045542ca573562b
MD5 36c08d92410295f4be654f2b74a5b98c
BLAKE2b-256 74cf1acd0bff80e852d35881a4f447e3c3c9d7b1b954b8e5b6aa3d9a09bb488d

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page