getodds-mcp
OfficialServer Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| GETODDS_API_KEY | No | GetOdds API key from https://getoddsapi.com/sign-up. Optional: two tools work with no account, but the keyed tools (get_odds, search_events, get_line_history, get_pickem_lines, get_fanduel_markets) need it. |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
GetOdds sports odds API. get_public_board and get_odds_board need no key. Other tools need GETODDS_API_KEY (free at https://getoddsapi.com/sign-up). Every row has a capture time; check it before calling a price current. Coverage: DraftKings, FanDuel, BetRivers sportsbook prices; PrizePicks, Underdog, DraftKings Pick6 lines.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| get_public_boardA | DraftKings moneyline, spread and total prices (read through ESPN odds data) for one sport, with the capture time of every row. No API key, no credits; cached up to five minutes, so check observed_at before treating a price as current. |
| get_odds_boardB | The next DraftKings Sportsbook (New Jersey) prices across leagues, as shown on the getoddsapi.com homepage. No API key, no credits. |
| get_sandbox_oddsA | Keyless sandbox read of stored odds for trying request shapes before signing up. Rate-limited per IP. Depends on the /api/v1/sandbox endpoints; if they are not live yet the tool says so and suggests get_public_board. |
| create_free_keyA | Create a free-tier key (1,000 requests a UTC day, 60 a minute, no card) for the user's own email address. Only call this when the user asked for a key and gave their email. The key is shown once: tell the user to store it as GETODDS_API_KEY. Depends on POST /api/v1/agent/signup. |
| get_oddsB | DraftKings (via ESPN) stored game odds by league and market. Set fresh_only to drop rows not captured recently. One credit per successful call. |
| search_eventsA | Literal, case-insensitive team-name search over retained events. Returns source-specific event ids for get_odds and get_line_history. |
| get_line_historyA | Retained price changes for one event_id or offer_id (DraftKings via ESPN). Not a complete tick history: it holds the changes GetOdds captured. |
| get_pickem_linesA | Player prop thresholds from PrizePicks, Underdog or DraftKings Pick6 (source=draftkings), or FanDuel. Lines only; pick'em boards have no per-line odds. The key must have the source granted. |
| get_fanduel_marketsC | FanDuel native markets and selections by league. Filters keep FanDuel exact case. The key needs the fanduel source and FanDuel selected as a bookmaker in the dashboard. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 9 tools
Several tools return odds (get_public_board, get_odds_board, get_odds, get_sandbox_odds), and their boundaries depend on auth, caching, or source rather than a clean resource split. Descriptions help, but an agent could still misselect among them. Source-specific tools and event/history/key tools are more distinct.
All tool names use snake_case with a consistent verb_noun pattern (get_*, create_*, search_*). The generic get_odds is still readable and fits the convention.
Nine tools is well-scoped for an odds API and each maps to a recognizable capability area. The main issue is semantic overlap, not excessive or insufficient count.
The surface covers public/stored odds, event search, line history, pick'em lines, FanDuel markets, sandbox access, and key creation. Minor gaps include no league/sport/source discovery and no key management or revocation, but core read workflows are present.