Skip to main content
Glama
adamruehle

SportWizzard MCP Server

by adamruehle

SportWizzard MCP Server

Query live sports-betting data — odds, edges, arbitrage, player/team stats and reference data — from any MCP-capable AI agent (Claude Desktop, Cursor, Claude Code, etc.) using your SportWizzard API key.

This is a Model Context Protocol stdio server. It wraps the SportWizzard REST v1 API in a curated set of tools your agent can call.

Status: publishing to npm is pending. Until then, run it from a local checkout (see From source). The npx sportwizzard-mcp command below works once the package is published.

Quick start

npx -y sportwizzard-mcp

Set your API key via the SPORTWIZZARD_API_KEY environment variable. Get a key at https://sportwizzard.com/account.

While SportWizzard is in its pre-billing public phase the data endpoints are open, so the tools also work without a key. Once metering is enabled a missing/invalid key returns a clear error.

Claude Desktop

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

{
  "mcpServers": {
    "sportwizzard": {
      "command": "npx",
      "args": ["-y", "sportwizzard-mcp"],
      "env": {
        "SPORTWIZZARD_API_KEY": "sk_your_key_here"
      }
    }
  }
}

Restart Claude Desktop. You'll see the SportWizzard tools available in the chat.

Try it without a key (mock mode)

Set SPORTWIZZARD_MOCK=1 to return canned sample responses — no key, no network. Great for wiring things up before you have a key:

{
  "mcpServers": {
    "sportwizzard": {
      "command": "npx",
      "args": ["-y", "sportwizzard-mcp"],
      "env": { "SPORTWIZZARD_MOCK": "1" }
    }
  }
}

Related MCP server: Sports Betting MCP

Configuration

Env var

Default

Purpose

SPORTWIZZARD_API_KEY

(none)

Your SportWizzard API key, sent as the X-Api-Key header.

SPORTWIZZARD_BASE_URL

https://api.sportwizzard.com

Override the API base URL (e.g. for local testing).

SPORTWIZZARD_MOCK

(off)

Set to 1 to return canned sample data instead of calling the API.

Tools

Tool

Endpoint

What it does

list_events

GET /api/v1/events

List events/fixtures — the spine. Filter by league, team_id, status, starts_after/before; paginate with cursor.

get_event

GET /api/v1/events/{id}

Full event detail: venue, season, scores, and game context (weather, lineups, probable pitchers, officials).

get_event_stats

GET /api/v1/events/{id}/stats

The box score: every player's stat line + the team result row for one event.

get_event_odds

GET /api/v1/events/{id}/odds

Every sportsbook price for one event (flat rows: book × market × selection).

get_odds

GET /api/v1/odds

Core odds query, scoped by event_id / player_id / team_id / sportsbook / market / league.

get_player_odds

GET /api/v1/players/{id}/odds

All current prices for one player (props).

get_team_odds

GET /api/v1/teams/{id}/odds

All current prices for one team.

get_edges

GET /api/v1/edges

+EV edges vs. devigged fair market. Filter by league, source, min_edge, event_id.

get_arbitrage

GET /api/v1/arbitrage

Arbitrage opportunities with legs + stake fractions. Filter by type (two_way/three_way), min_profit.

list_players

GET /api/v1/players

Players reference. Filter by league/team.

list_teams

GET /api/v1/teams

Teams reference. Filter by league.

get_player_stats

GET /api/v1/players/{id}/stats

Player season/historical stats.

get_team_stats

GET /api/v1/teams/{id}/stats

Per-game team stats/results, optionally scoped to a season.

get_player_game_logs

GET /api/v1/stats/players

Bulk per-game player stat rows (game logs) by player/team/event — the model-training feed.

get_account_usage

GET /api/v1/account/usage

Your plan tier, rate limit, and monthly usage.

download_snapshot

GET /api/v1/snapshot

Downloads the FULL live board (tens of MB gzip, 80k+ markets) to a file — you provide save_path; it never enters the context window. .gz path keeps gzip, otherwise decompressed JSON. Returns path/bytes/etag; pass the etag back to skip unchanged downloads (304).

list_sportsbooks

GET /api/v1/sportsbooks

Sportsbooks/DFS platforms tracked, with live market counts.

list_leagues

GET /api/v1/leagues

Leagues currently covered.

list_markets

GET /api/v1/markets

Supported market types, with live counts.

status

GET /api/v1/status

Total live markets + active sportsbook count.

Every response uses the SportWizzard envelope { success, data, nextCursor, meta }. When a nextCursor is present the tool appends a _paging hint so the agent knows to call again with cursor=....

From source

git clone https://github.com/adamruehle/sportwizzard-mcp.git
cd sportwizzard-mcp
npm install
npm run build
SPORTWIZZARD_MOCK=1 node dist/index.js   # or set SPORTWIZZARD_API_KEY

Point your MCP client's command at node and args at the absolute path to dist/index.js.

License

MIT © SportWizzard LLC

Install Server
A
license - permissive license
A
quality
B
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/adamruehle/sportwizzard-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server