{
  "markdown": "# SportWizzard MCP Server\n\nQuery live sports-betting data — **odds, player props, +EV edges, arbitrage, stats and reference data** from 35+ sportsbooks and DFS apps — from any MCP-capable AI agent (Claude Code, Claude Desktop, Codex, Cursor, …).\n\n20 read-only tools over the [SportWizzard REST v1 API](https://sportwizzard.com/developers), available two ways: a **hosted remote server** (zero install) and a **stdio server** via `npx`. Get a free API key at <https://sportwizzard.com/account> (API Keys tab — no card required).\n\n## Hosted (recommended — zero install)\n\n```bash\nclaude mcp add --transport http sportwizzard https://mcp.sportwizzard.com/mcp \\\n  --header \"Authorization: Bearer sw_live_your_api_key_here\"\n```\n\n```bash\ncodex mcp add sportwizzard --transport http --url https://mcp.sportwizzard.com/mcp \\\n  --header \"Authorization: Bearer sw_live_your_api_key_here\"\n```\n\nThe hosted server is a thin proxy: your key is forwarded to the SportWizzard API, which enforces auth and rate limits. All 20 tools work on both transports. (`download_snapshot` on the hosted server returns a CDN download URL + a ready-to-run command your agent executes locally; on stdio it writes the file directly.)\n\n## Stdio (local)\n\n```bash\nnpx -y sportwizzard-mcp\n```\n\nClaude Code:\n\n```bash\nclaude mcp add sportwizzard -e SPORTWIZZARD_API_KEY=sw_live_your_api_key_here -- npx -y sportwizzard-mcp\n```\n\nClaude Desktop (`claude_desktop_config.json` — macOS: `~/Library/Application Support/Claude/`, Windows: `%APPDATA%\\Claude\\`):\n\n```json\n{\n  \"mcpServers\": {\n    \"sportwizzard\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"sportwizzard-mcp\"],\n      \"env\": { \"SPORTWIZZARD_API_KEY\": \"sw_live_your_api_key_here\" }\n    }\n  }\n}\n```\n\n### Mock mode (no key, no network)\n\nSet `SPORTWIZZARD_MOCK=1` to get canned sample responses — useful for wiring up an integration before you have a key.\n\n## Configuration\n\n| Env var | Default | Purpose |\n|---|---|---|\n| `SPORTWIZZARD_API_KEY` | _(none)_ | Your API key, sent as `X-Api-Key`. |\n| `SPORTWIZZARD_BASE_URL` | `https://api.sportwizzard.com` | Override the API base URL. |\n| `SPORTWIZZARD_MOCK` | _(off)_ | `1` = canned sample data, no network. |\n\n## Tools\n\n| Tool | What it does |\n|---|---|\n| `list_events` / `get_event` | Events/fixtures — filter by league, team, status, time; full detail incl. weather, lineups, probable pitchers. |\n| `get_event_stats` | Box score: every player's stat line + team results for one event. |\n| `get_odds` / `get_event_odds` / `get_player_odds` / `get_team_odds` | Current prices, scoped by event, player, team, sportsbook, market, or league. `get_odds` also takes `scope`: `event` (game markets), `season` (season-long futures), `tournament` (golf/tennis outrights); omit for all. |\n| `get_edges` | +EV edges vs. devigged fair market (league, source, min_edge filters). |\n| `get_arbitrage` | Arbitrage opportunities with legs and stake fractions (two/three-way). |\n| `list_players` / `list_teams` / `get_player_stats` / `get_team_stats` | Reference data and season/historical stats. |\n| `get_player_game_logs` | Bulk per-game stat rows — the model-training feed. |\n| `download_snapshot` | Save the full live board to disk (tens of MB gzip). `include_history: true` also populates every selection's `priceHistory` (same schema; 5 credits flat vs 1). |\n| `list_sportsbooks` / `list_leagues` / `list_markets` / `status` | Coverage: books, leagues, market types, live counts. |\n| `get_account_usage` | Your plan tier, rate limit, and monthly usage. |\n\nEvery response uses the envelope `{ success, data, nextCursor, meta }`; when `nextCursor` is present the tool appends a `_paging` hint so agents know to continue.\n\n### Futures (season-scope markets)\n\n`get_odds` with `scope=season` returns season-long futures — division/conference/championship winners, award odds, team win totals, season leaders and full-season player props. Three orthogonal axes describe them:\n\n- **`marketScope`** — which anchor the market hangs off: `SEASON` or `TOURNAMENT`. Omitted entirely on ordinary game rows.\n- **`period`** — the window within that anchor: `REG_SEASON` (settles at the end of the regular season) or `FULL` (runs through the playoffs).\n- **`segment`** — which slice of the competition: `AFC_EAST`, `NL`, `SEC`, … Present only when the market is segment-scoped, and load-bearing: all 32 NFL `DIVISION_WINNER` selections share **one** season-anchor `eventId`, so without `segment` they read as a single 32-team race instead of 8 divisions.\n\nNotes: winner/award markets are categorical (one `YES` selection per competitor, `teamSide: \"NONE\"`, usually no NO side); `eventStartTime` on a futures row is the season anchor / settlement date, **not** a kickoff; every book's futures for a competition share the same season `eventId`; and futures are deliberately excluded from `get_edges` / `get_arbitrage` (they never enter de-vig or edge math). Scope matching is exact — `season` does not include `TOURNAMENT` — and an invalid value returns HTTP 400 naming the valid ones.\n\n## From source\n\n```bash\ngit clone https://github.com/adamruehle/sportwizzard-mcp.git\ncd sportwizzard-mcp && npm install && npm run build\nSPORTWIZZARD_MOCK=1 node dist/index.js   # or set SPORTWIZZARD_API_KEY\n```\n\n## License\n\nMIT © SportWizzard LLC\n",
  "bytes": 5273,
  "sha": "0961679e7f6935c202abcabe9cc609b431fe931a58c2cc95fe6a6ce3c174cfc1",
  "repo_slug": "adamruehle/sportwizzard-mcp",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_com_sportwizzard_sportwizzard_de0703f9/readme"
}