# GetOdds MCP: connect an agent to your scoped data

Use 26 source-scoped MCP tools for thresholds, stored odds, event metadata, retained replay, FanDuel markets and native BetRivers prices.

Canonical page: https://getoddsapi.com/mcp

## Free API key

Get a free GetOdds API key: **1,000 requests per UTC day and 60 per minute, no card**. One key covers REST and the hosted MCP server.

Sign up: https://getoddsapi.com/sign-up?ref=ai-claudebot

## Quickstart

1. Create an account at https://getoddsapi.com/sign-up?ref=ai-claudebot, open https://getoddsapi.com/dashboard and issue a key with the sources you need (draftkings, fanduel, betrivers, prizepicks or underdog). Keep it in a server environment variable named GETODDS_API_KEY.
2. Read current DraftKings NBA spreads with curl:

```bash
curl --fail-with-body "https://getoddsapi.com/api/v1/odds?sport=NBA&market=spread&fresh_only=true&limit=50" \
  -H "Authorization: Bearer $GETODDS_API_KEY"
```

3. The same request in Python (standard library only):

```python
import json, os, urllib.request

req = urllib.request.Request(
    "https://getoddsapi.com/api/v1/odds?sport=NBA&market=spread&fresh_only=true&limit=50",
    headers={"Authorization": "Bearer " + os.environ["GETODDS_API_KEY"]},
)
with urllib.request.urlopen(req) as res:
    rows = json.load(res)["data"]
for row in rows:
    print(row["away"], "at", row["home"], row["side"], row["line"], row["american"], row["observed_at"])
```

4. Check `observed_at`, `age_seconds` and `stale` on every row before using a price. Full reference: https://getoddsapi.com/docs

## Use with Claude (MCP)

```bash
claude mcp add --transport http getodds https://getoddsapi.com/api/mcp \
  --header "Authorization: Bearer $GETODDS_API_KEY"
```

The MCP tools follow the key's source grants and share its allowance. Setup guide: https://getoddsapi.com/use-with-claude

## Pricing

| Plan | Allowance | Price |
| --- | --- | --- |
| Free key | 1,000 requests a day, 60 a minute | $0, no card |
| Developer Bundle | 10,000 requests or credits a month on each of four sources | $149 a month |

Free development allowance: 1,000 requests per UTC day and 60 per minute per account, with no payment step. Paid: the Developer Bundle at $149 per month, with 10,000 monthly requests or credits on each of four sources.
Details: https://getoddsapi.com/bundle

## Guide


Canonical: https://getoddsapi.com/mcp
Reviewed: 2026-11-07 UTC

Use 26 source-scoped MCP tools for thresholds, stored odds, event metadata, retained replay, FanDuel markets and native BetRivers prices.

## Connect over hosted Streamable HTTP

The GetOdds MCP endpoint is https://getoddsapi.com/api/mcp. Use a client that supports Streamable HTTP and an Authorization bearer header. Create a GetOdds key in the dashboard and select the sources it should access. No local MCP server package is required.

This is a stateless tool request-and-response service. It includes bounded replay-page reads but does not open a WebSocket or offer OAuth login. Branded API keys belong to their own services and do not authenticate GetOdds.

```json
{
  "mcpServers": {
    "getodds": {
      "type": "http",
      "url": "https://getoddsapi.com/api/mcp",
      "headers": {
        "Authorization": "Bearer ${GETODDS_API_KEY}"
      }
    }
  }
}
```

## Tools follow your key’s source permissions

Threshold-source keys discover get_markets with their permitted source choices. DraftKings-only keys discover 21 tools; FanDuel-only keys discover five. BetRivers-only keys discover get_betrivers_markets, a native priced-market read rather than player thresholds. All supported grants together expose 26 tools. Existing keys keep their prior scope; create a new key with additional source access when needed.

| Tool | Data | Scope |
| --- | --- | --- |
| get_betrivers_markets | Native BetRivers US-PA pregame prices; explicit source grant and bookmaker selection required | betrivers |
| get_markets | Partial player thresholds; choose a granted source; no sportsbook prices | prizepicks, underdog, draftkings, fanduel |
| get_events | Retained sportsbook event identities | draftkings |
| get_odds | Stored mainline prices and capture age | draftkings |
| get_history | Retained changes within seven days; event or offer ID required | draftkings |
| get_sports | Source sport codes present in retained events | draftkings |
| get_bookmakers | The bookmaker represented by retained offers | draftkings |
| get_market_types | Stored market and period combinations | draftkings |
| search_events / get_event | Search team names or resolve one stored event | draftkings |
| get_multiple_event_odds / get_updated_odds / get_dropping_odds | Batch reads and retained price changes | draftkings |
| get_leagues / get_historical_events / search_historical_events | Coverage and bounded scheduled-event history | draftkings |
| get_odds_summary / get_multiple_odds_summaries | Single-book matching-line summaries | draftkings |
| get_event_state / get_participants / get_participant | Verified ESPN-native event metadata, not settlement | draftkings |
| get_odds_replay | One retained change page with decimal-string cursors | draftkings |
| get_live_events | Recent native in-play observations; no price selection needed | fanduel |
| get_fanduel_markets / get_outrights / get_outright_odds | Native game markets and futures; FanDuel selection required | fanduel |

## Use the same allowance as the HTTP API

Successful data-tool calls record one credit. Accepted initialization, discovery and other metadata calls use request allowance but zero credits. Source or validation failures admitted to a data read record zero credits. Request limits are shared across the customer’s keys, REST requests and MCP calls.

The server rechecks source access and revocation before a data read. A source failure returns a tool error rather than fabricated rows. Rate-limit errors include a status of 429; wait before a bounded retry.

## Keep the source contract visible

PrizePicks data consists of player-stat thresholds, not independent sportsbook prices. DraftKings data is stored through ESPN, not a direct native sportsbook stream. Keep source IDs and timestamps. Neither provider’s name implies official affiliation.

Ask the agent to inspect its available tools, make one small read and show the observation timestamps before drawing conclusions. Unmatched events, unavailable history and empty pages should remain explicit. Do not turn a captured line into a prediction or a claimed settled result.

## Questions

### Does this require installing an MCP server?

No. A compatible client can connect to the hosted HTTP endpoint with your GetOdds bearer key.

### Does this work with any MCP client?

The client must support Streamable HTTP and custom bearer headers. OAuth-only clients need a different integration; OAuth is not implemented here.

### Is this a live odds stream?

No. Streamable HTTP is the MCP transport name. These tools perform bounded reads, including retained replay pages. For continuous delivery use the separate WebSocket route documented at /docs/odds-stream.

## Sources

- [GetOdds API documentation](https://getoddsapi.com/docs)
- [DraftKings source contract](https://getoddsapi.com/docs/sportsbook)
- [Source capabilities](https://getoddsapi.com/capabilities.json)

Independent product; not affiliated with the operators named. No picks or predicted profits.

---

GetOdds is an independent developer product and is not affiliated with any sportsbook or pick’em operator. Prices describe data, not betting advice.
