Odds-API.io

Official MCP server for Odds-API.io with 33 tools for pre-match and live odds from 450+ bookmakers across 34 sports, odds movements, dropping odds, value bets, arbitrage, historical odds, closing lines, golf outrights and bet settlement.

Documentation

Odds-API.io MCP Server

npm version license: MIT

MCP server for the Odds-API.io sports betting odds API. It gives Claude, Cursor, VS Code and other AI agents live and pre-match odds from 450+ bookmakers across 34 sports, plus odds summaries, closing lines, bet settlement, golf outrights, value bets, arbitrage and dropping odds.

Quickstart

  1. Get an API key at odds-api.io/pricing.

  2. Add the server to Claude Code:

    claude mcp add odds-api --env ODDS_API_KEY="your-api-key" -- npx -y odds-api-mcp-server
    
  3. Ask: "Show me upcoming Premier League matches with Bet365 odds."

Setup for Claude Desktop, Cursor and VS Code is below.

Get an API key

The server needs an Odds-API.io API key from a paid plan. Pick a plan at odds-api.io/pricing, then pass the key as the ODDS_API_KEY environment variable.

Full AI-tooling docs: docs.odds-api.io/ai-vibe-coding

Features

  • 33 tools covering every public Odds-API.io v3 REST endpoint: sports, markets, events, odds, odds summaries, line movements, value bets, arbitrage, dropping odds, historical events and odds, closing lines, bet settlement, golf outrights, participants, bookmaker id mappings and request quota. The WebSocket stream and the participant logo image are not tools; use the REST equivalents.
  • Built for agents: every tool says what to call first, what plan or add-on it needs and what it returns. Read tools carry readOnlyHint; only select_bookmakers and clear_selected_bookmakers change anything.
  • Small responses: compact JSON, a markets filter on every odds tool, and fields / maxResults on list tools.
  • Clear errors: a 403 (missing plan or add-on) or 429 (hourly limit) comes back with the API's own message and an instruction not to retry blindly.
  • Key safety: the key is read from ODDS_API_KEY only. No tool takes it as an argument, and it is masked as *** in every output and error.
  • Agent guide in skills/odds-api/SKILL.md: call order, caching, quotas and 429 handling. Also served as the odds-api://guide resource and, in short form, as the server's instructions.

Install in your client

One-Click Install (Claude Desktop)

Download the latest .mcpb file from Releases and open it. Claude Desktop will prompt you for your API key.

Claude Code CLI

claude mcp add odds-api --env ODDS_API_KEY="your-api-key" -- npx -y odds-api-mcp-server

Claude Desktop

Add to your Claude Desktop config (~/Library/Application Support/Claude/claude_desktop_config.json on macOS, %APPDATA%\Claude\claude_desktop_config.json on Windows):

{
  "mcpServers": {
    "odds-api": {
      "command": "npx",
      "args": ["-y", "odds-api-mcp-server"],
      "env": {
        "ODDS_API_KEY": "your-api-key"
      }
    }
  }
}

Cursor

Add to your Cursor MCP settings (.cursor/mcp.json in your project or global config):

{
  "mcpServers": {
    "odds-api": {
      "command": "npx",
      "args": ["-y", "odds-api-mcp-server"],
      "env": {
        "ODDS_API_KEY": "your-api-key"
      }
    }
  }
}

VS Code

Add to your VS Code settings (.vscode/mcp.json):

{
  "servers": {
    "odds-api": {
      "command": "npx",
      "args": ["-y", "odds-api-mcp-server"],
      "env": {
        "ODDS_API_KEY": "your-api-key"
      }
    }
  }
}

Global Install (alternative)

npm install -g odds-api-mcp-server

Then use odds-api-mcp-server as the command instead of npx -y odds-api-mcp-server.

Configuration

VariableRequiredDescription
ODDS_API_KEYYesYour API key from a paid plan at odds-api.io/pricing

Requests go to https://api.odds-api.io/v3. Each tool call is one API request against your hourly limit (multi-event tools count as one).

Available Tools

Catalogue

ToolDescription
get_sportsList sports and their slugs. Call first
get_leaguesLeagues for a sport (all includes leagues without events)
get_marketsExact market names per sport, with shape, period and prematch/live flags
get_bookmakersAll bookmakers with status (ok, degraded, down) and reason
get_selected_bookmakersBookmakers selected on your key
select_bookmakersAdd bookmakers to your selection (writes)
clear_selected_bookmakersClear your selection, once per 12h (destructive)

Events

ToolDescription
get_eventsEvents with league, status (pending, live, settled, cancelled), date, participant and bookmaker filters, limit/skip
get_eventOne event with scores and live clock
get_live_eventsEvents in play now
search_eventsSearch by team or league name, status upcoming or live

Odds

ToolDescription
get_oddsOdds for one event; pass markets (max 40) to keep it small
get_multi_oddsOdds for up to 10 events in one request, with markets
get_odds_summaryBest, average, median, worst and fair price per line across bookmakers, for one or up to 10 events (Growth plan and above)
get_odds_movementsOpening, latest and every change for one market at one bookmaker
get_updated_oddsOdds changed since a timestamp, for named markets (max 40), with limit

Analysis

ToolDescription
get_value_betsPrices above a fair-odds estimate for a bookmaker, by sport and league. expectedValue is bookmaker/fair x 100, so edge % = expectedValue - 100
get_arbitrage_betsArbitrage across your bookmakers with sport, league, markets, minProfit, allCombinations. profitMargin is already a percentage
get_dropping_oddsBiggest drops at sharp bookmakers by sport, league, market and time window

Historical and closing lines

ToolDescription
get_historical_eventsFinished events for a league and date range
search_historical_eventsFinished events by team name
get_historical_oddsClosing odds and final score for one event, with markets
get_closing_linesClosing odds for every settled event across up to 10 leagues and 366 days

Settlement

ToolDescription
get_settlementsStatus, final score and final flag for up to 50 events
grade_betsGrade up to 50 bets as won, lost, void, half won, half lost, pending or ungradeable

Outrights (golf)

ToolDescription
list_outrightsTournaments for a sport (golf: PGA Tour, DP World Tour, LIV Golf, majors)
get_outright_oddsWinner, Top 5/10/20, Top N (Incl. Ties) and Make Cut odds, with markets and maxRunners filters
get_outright_resultsPositions, cut status and winners per market

Participants and mappings

ToolDescription
get_participantsTeams or players for a sport
get_participantOne team or player by ID
get_mappingsOur events and selections mapped to bookmaker ids (Polymarket, Kalshi), lookup or bulk sync with cursor

Account and reference

ToolDescription
get_usageHourly request limit, remaining requests and reset time
get_documentationFetch the full API documentation

Outrights

Golf outright odds and results are the Outrights add-on on paid plans. Call list_outrights with sport: "golf" for tournament ids, then get_outright_odds with the id and your bookmakers. Markets: Winner, Top 5, Top 10, Top 20 (boundary ties under the bookmaker's dead-heat rules), Top 5 (Incl. Ties), Top 10 (Incl. Ties), Top 20 (Incl. Ties) (ties paid in full) and Make Cut (only for events with a cut). A full field is 150+ golfers per market, so pass markets and maxRunners. get_outright_results lists every golfer's position and the winners per market once the tournament is settled.

Without the add-on the API answers 403 with a link to enable it; the server passes that message through and tells the agent to relay it rather than retry.

Closing lines

get_closing_lines returns closing odds for every settled event across up to 10 leagues in one request, over up to 366 days, so a season fits in one sweep (100 events per response; page with limit and skip). Use it for closing line value (CLV) and model backtests. For a single match use search_historical_events and get_historical_odds. Paid plans.

Prompts

PromptDescription
compare_oddsFind a match and compare prices across your bookmakers
settle_betsGrade a list of bets against final results
golf_outrightsShow golf tournament prices for a market

Resources

Resource URIDescription
odds-api://guideAgent guide: call order, caching, quotas, errors
odds-api://documentationComplete API documentation
odds-api://openapiOpenAPI specification

Example Usage

Once configured, ask your AI assistant things like:

  • "Show me upcoming Premier League matches"
  • "Get ML and totals odds for the next Arsenal match from Bet365 and SingBet"
  • "Where is the best price on the Lakers game, and what is the fair price?"
  • "Find value bets on Bet365 in baseball"
  • "Are there arbitrage opportunities over 1% between Bet365 and Unibet in football?"
  • "Show me how the spread moved for event 12345"
  • "Give me Premier League closing lines for last season from Bet365"
  • "Did these three bets win?"
  • "Who is favourite to win the next PGA Tour event, and what are the Top 10 prices?"
  • "How many requests do I have left this hour?"

Development

git clone https://github.com/odds-api-io/odds-api-mcp-server
cd odds-api-mcp-server
npm install
npm run build
npm test

License

MIT

Links