Sports Hub MCP Server
Provides tools for accessing Chess.com's published-data API, including player profiles, stats, clubs, and leaderboards.
Provides tools for interacting with the Lichess API, including users, top players, broadcasts, and the daily puzzle.
Provides tools for accessing the MLB Stats API, covering MLB and MiLB scores, statistics, and related baseball data.
Provides tools for accessing the NHL Web API, covering NHL scores, statistics, and related hockey data.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Sports Hub MCP Server show me today's NBA scores and Premier League odds"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
A unified MCP server that aggregates 42 sports API providers into a single service. 410 tools covering scores, stats, odds, esports, college sports, chess, motorsport, boxing, AFL, and more across 70+ sports.
Each provider works independently. You only need API keys for the providers you use. Missing keys don't block startup — tools return an error when called without their key.
Works with:
Demo

NBA scores, Premier League odds, Tennis H2H — all from a single MCP server.
Related MCP server: Sports Hub MCP Server
Compatibility
Platforms
OS | Status |
macOS | Supported |
Linux | Supported |
Windows | Supported |
MCP Clients
Client | Status | Notes |
Claude Desktop | Supported | Anthropic's desktop app |
Claude Code (CLI) | Supported |
|
Cursor | Supported | Built-in MCP |
Windsurf (Codeium) | Supported | Built-in MCP |
Continue.dev | Supported | Open-source AI assistant |
Cline | Supported | VS Code extension |
Zed | Supported | Built-in MCP |
ChatGPT Desktop | Supported | OpenAI desktop app |
Gemini CLI | Supported | Google CLI |
Any MCP client | Supported | Stdio + HTTP/SSE transport |
Uses the stdio transport from the MCP SDK. Works with any LLM (Claude, GPT, Gemini, Llama, Mistral, etc.).
Requirements: Node.js 18+, npm.
Providers (42)
Works instantly — no API key, no signup (19 providers, ~165 tools)
These providers work out of the box. Just build and run.
Prefix | Provider | Coverage | Tools | Notes |
| 20+ sports | 10 | Unofficial — can break | |
| NHL | 13 | Undocumented but stable | |
| MLB/MiLB | 13 | Official, undocumented | |
| Formula 1 (1950+) | 13 | Community-maintained | |
| F1 live telemetry | 12 | Live race weekends only | |
| German football | 10 | Bundesliga focus | |
| 40+ sports | 13 | Test key auto, watermarks | |
| College sports | 8 | 5 req/s rate limit | |
| Football, basketball, MMA + streams | 7 | V1 free, V2 needs paid key | |
| Chess (users, top players, broadcasts, daily puzzle) | 7 | ~20 req/sec/IP | |
| Chess (profiles, stats, clubs, leaderboards) | 7 | Throttles on parallel calls | |
| AFL (Australian Football League) | 6 | Honest UA required | |
| MotoGP/Moto2/Moto3/MotoE | 7 | Unofficial — can break | |
| Formula E | 7 | Unofficial — can break | |
| NASCAR Cup/Xfinity/Truck | 3 | Unofficial CDN feeds | |
| Dota 2 analytics | 11 | 60 req/min, 50k/mo | |
| NFL fantasy | 10 | ~1000 req/min | |
| EuroLeague + EuroCup basketball | 6 | Keyless feeds | |
| Historical football results + odds | 2 | CSV, 25+ leagues |
Tip: Use
SPORTS_HUB_PROVIDERS=freeto load only these 19 providers (~165 tools).
Free tier with API key — signup required, no credit card (23 providers, ~245 tools)
Registration takes 1-2 minutes. All keys are free.
Prefix | Provider | Coverage | Tools | Free Limit | Get Key |
| PandaScore | Esports (13 titles) | 14 | 1000 req/hr | |
| API-Football | Soccer (960+ leagues) | 15 | 100 req/day | |
| API-Sports | 9 sports | 10 | 100 req/day/sport | |
| API-Tennis | Tennis (ATP/WTA/ITF) | 12 | 100 req/day | |
| BallDontLie | NBA/NFL/MLB/NHL | 10 | Basic tier | |
| CricketData | Cricket | 10 | 100 req/day | |
| Entity Sport | Cricket (250+ comps) | 12 | Free plan | |
| football-data.org | Soccer (12 leagues) | 11 | 10 req/min | |
| Sportmonks | Soccer | 12 | 3000 req/hr | |
| SportsDataIO | 9 sports | 12 | 1000 req/mo | |
| The Odds API | 70+ sports odds | 9 | 500 req/mo | |
| Odds-API.io | 34 sports odds | 10 | Free account | |
| Sports Game Odds | 55+ leagues odds | 10 | Trial | |
| Lumify | Odds, splits + AI bet analysis (8 sports) | 14 | Free trial key | |
| Fighting Tomatoes | MMA | 8 | 200 req/mo | |
| Live Golf API | Golf (PGA/DP World) | 8 | Free tier | |
| iSportsAPI | Football/Basketball (Asia) | 10 | Free tier | |
| SportDevs | Rugby/Volleyball/Handball | 12 | Trial | |
| MySportsFeeds | NFL/NBA/MLB/NHL | 12 | Free non-commercial | |
| GolfCourseAPI | 30K+ golf courses | 6 | 300 req/day | |
| College Football Data | NCAA football | 14 | 1000 req/mo | |
| Boxing Data API | Pro boxing (fighters/bouts/titles) | 8 | 100 req/mo | |
| Highlightly | Multi-sport highlights + odds | 6 | 100 req/day |
Providers with missing keys don't block the server — they just return an error when called. Register keys incrementally as you need them.
Installation
Quick (npx — no install)
npx mcp-sports-hubnpm global
npm install -g mcp-sports-hub
mcp-sports-hubFrom source
git clone https://github.com/lacausecrypto/mcp-sports-hub.git
cd mcp-sports-hub
npm install
npm run buildMCP Registry
This server is published on the official MCP Registry as io.github.lacausecrypto/sports-hub. MCP clients that support the registry can discover and install it automatically.
Transport Modes
Stdio (default — Claude Desktop, Cursor, etc.)
npx mcp-sports-hubHTTP/SSE (remote clients, web apps, custom integrations)
# Via flag
npx mcp-sports-hub --http
# Via env
SPORTS_HUB_HTTP=1 SPORTS_HUB_PORT=3000 npx mcp-sports-hubEndpoints:
POST /mcp— MCP protocol (Streamable HTTP with SSE)GET /health— Health check ({"status":"ok","providers":19,"sessions":0,"mode":"session"})
Supports CORS and multi-client session management via the mcp-session-id header. Default port: 3000.
Each client gets its own session, created on initialize and addressed afterwards by its session id. Building a session costs ~90 ms for the 165-tool free preset, paid once per client rather than per request. Idle sessions are reaped.
SPORTS_HUB_MAX_SESSIONS=200 # concurrent sessions before new ones get a 503
SPORTS_HUB_SESSION_TTL=1800 # seconds a session may sit idle
SPORTS_HUB_STATELESS=1 # opt out: build a throwaway server per requestSPORTS_HUB_STATELESS=1 suits several replicas behind a load balancer with no sticky routing. It pays the build cost on every call, so prefer sessions for a single instance.
⚠ Security: HTTP mode binds to
127.0.0.1(loopback) by default. SettingSPORTS_HUB_HOST=0.0.0.0exposes an unauthenticated MCP endpoint to your whole network — anyone who can reach it can use your configured API keys. DNS-rebinding protection only blocks browser-origin attacks, not direct clients. Only expose it behind a reverse proxy with auth/TLS.SPORTS_HUB_CORS_ORIGINSmust list explicit origins (a literal*is rejected).
Hosted (Smithery)
A Dockerfile and smithery.yaml are included for container hosting on Smithery. The hosted endpoint serves the keyless free preset, so clients connect with zero setup. The deploy sets SPORTS_HUB_DNS_REBINDING_PROTECTION=0 because Smithery's proxy forwards a non-localhost Host header.
SPORTS_HUB_DNS_REBINDING_PROTECTION=0disables the Host/Origin check (it is on by default). Only set it when the server runs behind a trusted proxy that owns routing — never for a server directly reachable by browsers on localhost.
Configuration
Environment Variables
Only set keys for providers you want:
# Free — no key needed:
# ESPN, NHL, MLB, Jolpica F1, OpenF1, OpenLigaDB, NCAA, TheSportsDB (test key),
# SportSRC (V1), Lichess, Chess.com, Squiggle (AFL),
# MotoGP, Formula E, NASCAR, OpenDota, Sleeper
# Optional (defaults to test key)
export THESPORTSDB_API_KEY="your-key" # https://www.thesportsdb.com/
# Requires free registration
export PANDASCORE_TOKEN="your-token" # https://pandascore.co/
export API_SPORTS_KEY="your-key" # https://api-sports.io/
export API_FOOTBALL_KEY="your-key" # https://www.api-football.com/
export API_TENNIS_KEY="your-key" # https://api-tennis.com/
export BALLDONTLIE_API_KEY="your-key" # https://www.balldontlie.io/
export CRICKETDATA_API_KEY="your-key" # https://cricketdata.org/
export ENTITY_SPORT_KEY="your-key" # https://www.entitysport.com/
export FOOTBALL_DATA_API_KEY="your-key" # https://www.football-data.org/
export SPORTMONKS_API_KEY="your-key" # https://www.sportmonks.com/
export SPORTSDATA_IO_KEY="your-key" # https://sportsdata.io/
export THE_ODDS_API_KEY="your-key" # https://the-odds-api.com/
export ODDS_API_IO_KEY="your-key" # https://odds-api.io/
export SPORTS_GAME_ODDS_KEY="your-key" # https://sportsgameodds.com/
export FIGHTING_TOMATOES_API_KEY="your-key" # https://fightingtomatoes.com/
export LIVE_GOLF_API_KEY="your-key" # https://livegolfapi.com/
export ISPORTSAPI_KEY="your-key" # https://www.isportsapi.com/
export SPORTDEVS_API_KEY="your-key" # https://sportdevs.com/
export GOLFCOURSE_API_KEY="your-key" # https://golfcourseapi.com/
export MYSPORTSFEEDS_USER="your-user" # https://www.mysportsfeeds.com/
export MYSPORTSFEEDS_PASS="your-pass"
export CFBD_API_KEY="your-key" # https://collegefootballdata.com/key
export LUMIFY_API_KEY="your-key" # https://lumify.ai/Windows (PowerShell):
$env:API_SPORTS_KEY = "your-key"
$env:PANDASCORE_TOKEN = "your-token"Windows (cmd):
set API_SPORTS_KEY=your-key
set PANDASCORE_TOKEN=your-tokenResponse size and the fields parameter
Sports APIs return very wide objects, and every byte a tool returns is spent from the model's context window. A single espn_get_scoreboard-style team listing is ~300 KB of JSON, of which the part anyone wants is under 3 KB.
Every tool accepts an optional fields parameter: a comma-separated list of key names to keep, matched at any depth. Branches that match nothing are dropped, and a matched key keeps its whole value.
// espn_get_teams { "sport": "basketball", "league": "nba" }
// -> 297 KB
// espn_get_teams { "sport": "basketball", "league": "nba",
// "fields": "id,abbreviation,displayName,location" }
// -> 2.9 KB, same 30 teamsIf fields matches nothing, the tool says so and lists the top-level keys it did see, rather than returning an empty object.
Responses are also capped. Above the limit, the longest lists in the payload are shortened until it fits (so the JSON still parses) and a note reports how many items were dropped.
SPORTS_HUB_MAX_RESULT_BYTES=40000 # default; serialized bytes per tool resultClaude Desktop
Config file locations:
macOS:
~/Library/Application Support/Claude/claude_desktop_config.jsonWindows:
%APPDATA%\Claude\claude_desktop_config.jsonLinux:
~/.config/claude/claude_desktop_config.json
{
"mcpServers": {
"sports-hub": {
"command": "node",
"args": ["/absolute/path/to/mcp-sports-hub/dist/index.js"],
"env": {
"PANDASCORE_TOKEN": "your-token",
"API_SPORTS_KEY": "your-key",
"THE_ODDS_API_KEY": "your-key"
}
}
}
}Windows path: "args": ["C:/Users/you/mcp-sports-hub/dist/index.js"]
Only include env vars for providers you need. Omit env entirely for free-only providers.
Claude Code (CLI)
claude mcp add sports-hub node /absolute/path/to/mcp-sports-hub/dist/index.jsOr in .claude/settings.json:
{
"mcpServers": {
"sports-hub": {
"command": "node",
"args": ["/absolute/path/to/mcp-sports-hub/dist/index.js"],
"env": {
"PANDASCORE_TOKEN": "your-token"
}
}
}
}Provider Filtering
By default, only the free preset is loaded (19 providers, ~165 tools — no API keys needed). Use SPORTS_HUB_PROVIDERS to change what's loaded:
# Default — free providers only (no config needed)
npx mcp-sports-hub
# Load ALL 42 providers (410 tools)
SPORTS_HUB_PROVIDERS=all npx mcp-sports-hub
# Use a preset
SPORTS_HUB_PROVIDERS=us-major npx mcp-sports-hub
# Pick specific providers
SPORTS_HUB_PROVIDERS=espn,nhl,odds npx mcp-sports-hub
# Exclude from all (prefix with -)
SPORTS_HUB_PROVIDERS=-sportsdata,-mma npx mcp-sports-hubPresets
Preset | Providers | Tools | Needs keys? |
| 19 no-key providers (espn, nhl, mlb, f1, openf1, openliga, sportsdb, ncaa, sportsrc, lichess, chesscom, squiggle, motogp, formulae, nascar, opendota, sleeper, euroleague, footballdatauk) | ~165 | No |
| all 42 providers | 410 | Yes (for key-required providers) |
| lichess, chesscom | 14 | No |
| espn, nhl, mlb, ncaa, cfbd, bdl, msf, nascar, sleeper | ~93 | Some |
| espn, apifootball, footballdata, sportmonks, openliga, sportsrc, footballdatauk, highlightly | ~73 | Some |
| f1, openf1 | 25 | No |
| f1, openf1, motogp, formulae, nascar | ~42 | No |
| pandascore, opendota | 25 | Some |
| odds, oddsio, sgo, lumify | 43 | Yes |
| cricket, entitycricket | 22 | Yes |
| livegolf, golfcourse | 14 | Some |
Cache
All GET responses are cached in memory for 60 seconds by default. This protects against duplicate calls and rate limit waste. Configure with:
SPORTS_HUB_CACHE_TTL=120 # seconds (0 to disable)The cache key includes a digest of the request's auth headers, so two API keys never read each other's entries. Concurrent identical requests are collapsed into a single upstream call, and a 404/410 is remembered briefly (SPORTS_HUB_NEGATIVE_CACHE_TTL, default 30s) so a wrong ID can't be re-fetched in a loop.
Rate limits and retries
429 and 5xx responses are retried with exponential backoff, honouring Retry-After when the upstream sends one. Client errors (4xx other than 408/425/429) and timeouts are not retried.
SPORTS_HUB_MAX_RETRIES=2 # extra attempts after the first (0 disables)
SPORTS_HUB_RETRY_BASE_MS=300 # backoff base; doubles per attemptIn Claude Desktop config:
"env": {
"SPORTS_HUB_PROVIDERS": "us-major",
"THE_ODDS_API_KEY": "your-key"
}Tool Naming
All tools follow {provider}_{action}:
espn_get_scoreboard — Live scores (ESPN)
nhl_get_standings — NHL standings
mlb_get_game_boxscore — MLB box score
f1_get_race_results — F1 results (1950+)
openf1_get_laps — F1 live telemetry
pandascore_get_lives — Live esports matches
apifootball_get_fixtures — Soccer fixtures (960+ leagues)
odds_get_odds — Betting odds (70+ sports)
sportsrc_get_xg_stats — Expected goals (xG)MCP Resources & Prompts
Beyond tools, the server exposes:
Resources (readable catalogs, no API call):
sportshub://providers— the full provider catalog (prefix, name, coverage, required key)sportshub://presets— all presets and the providers they loadsportshub://provider/{key}— details for one provider (with key autocompletion)
Prompts (curated slash-command workflows over the 410 tools):
whats-on-today·compare-odds {event}·motorsport-weekend {series}·league-standings {league}·team-deep-dive {team}·f1-race {season} {round}
All tools are annotated readOnly / idempotent so clients can skip confirmation prompts.
Architecture
src/
├── index.ts # Imports + registers all 42 providers; transports
├── shared/
│ ├── http.ts # fetchJson, fetchText, buildUrl, toolResult, errorResult
│ │ # + retry/backoff, coalescing, keyed cache
│ ├── catalog.ts # provider catalog + presets (single source of truth)
│ ├── annotations.ts # central read-only annotations + titles
│ ├── tool-pipeline.ts # central `fields` param, size cap, empty-result hints
│ ├── projection.ts # field projection used by the pipeline
│ ├── slim.ts # strips $schema boilerplate from tools/list
│ ├── resources.ts # MCP resources (provider/preset catalogs)
│ └── prompts.ts # MCP prompts (curated workflows)
└── providers/
├── espn.ts # 10 tools — no key
├── nhl.ts # 13 tools — no key
├── mlb-stats.ts # 13 tools — no key
├── jolpica-f1.ts # 13 tools — no key
├── openf1.ts # 12 tools — no key
├── openligadb.ts # 10 tools — no key
├── golfcourse.ts # 6 tools — GOLFCOURSE_API_KEY
├── thesportsdb.ts # 13 tools — optional key
├── pandascore.ts # 14 tools — PANDASCORE_TOKEN
├── api-football.ts # 15 tools — API_FOOTBALL_KEY
├── api-sports.ts # 10 tools — API_SPORTS_KEY
├── api-tennis.ts # 12 tools — API_TENNIS_KEY
├── balldontlie.ts # 10 tools — BALLDONTLIE_API_KEY
├── cricketdata.ts # 10 tools — CRICKETDATA_API_KEY
├── entity-sport-cricket.ts # 12 tools — ENTITY_SPORT_KEY
├── football-data.ts # 11 tools — FOOTBALL_DATA_API_KEY
├── sportmonks.ts # 12 tools — SPORTMONKS_API_KEY
├── sportsdata-io.ts # 12 tools — SPORTSDATA_IO_KEY
├── the-odds-api.ts # 9 tools — THE_ODDS_API_KEY
├── odds-api-io.ts # 10 tools — ODDS_API_IO_KEY
├── sports-game-odds.ts # 10 tools — SPORTS_GAME_ODDS_KEY
├── lumify.ts # 14 tools — LUMIFY_API_KEY
├── fighting-tomatoes.ts # 8 tools — FIGHTING_TOMATOES_API_KEY
├── live-golf.ts # 8 tools — LIVE_GOLF_API_KEY
├── isportsapi.ts # 10 tools — ISPORTSAPI_KEY
├── sportdevs.ts # 12 tools — SPORTDEVS_API_KEY
├── mysportsfeeds.ts # 12 tools — MYSPORTSFEEDS_USER/PASS
├── sportsrc.ts # 7 tools — V1 free, V2 needs paid key (not exposed)
├── ncaa.ts # 8 tools — no key
├── cfbd.ts # 14 tools — CFBD_API_KEY
├── lichess.ts # 7 tools — no key
├── chess-com.ts # 7 tools — no key
├── squiggle.ts # 6 tools — no key
├── motogp.ts # 7 tools — no key
├── formula-e.ts # 7 tools — no key
├── nascar.ts # 3 tools — no key
├── opendota.ts # 11 tools — no key
├── sleeper.ts # 10 tools — no key
├── euroleague.ts # 6 tools — no key
├── football-data-uk.ts # 2 tools — no key (CSV)
├── boxing.ts # 8 tools — BOXING_DATA_API_KEY
└── highlightly.ts # 6 tools — HIGHLIGHTLY_API_KEYEach provider exports register(server). Keys are checked at call time, not startup.
Contributing
Fork the repository
Create
src/providers/my-api.tsexportingregister(server: McpServer)Prefix tool names:
myapi_get_somethingImport + call in
src/index.tsnpm run buildto verifySubmit a PR
License
MIT
Available Tools
165 toolschesscom_get_clubchesscom: Get clubBRead-onlyIdempotent
Get Chess.com club details by URL id (the slug after /club/ in the web URL).
Inputs: club_id (required), fields.
chesscom_get_country_playerschesscom: Get country playersBRead-onlyIdempotent
Get the list of titled Chess.com players from a country (returns usernames and titles).
Inputs: country (required), fields.
chesscom_get_leaderboardschesscom: Get leaderboardsARead-onlyIdempotent
Get Chess.com global leaderboards across all categories (daily, daily960, live_rapid, live_blitz, live_bullet, tactics, rush, battle).
Inputs: fields.
chesscom_get_playerchesscom: Get playerBRead-onlyIdempotent
Get a Chess.com player's public profile (name, country, joined date, last online, title, etc.).
Inputs: username (required), fields.
chesscom_get_player_archiveschesscom: Get player archivesBRead-onlyIdempotent
List the YYYY/MM archive URLs containing a player's monthly game history.
Inputs: username (required), fields.
chesscom_get_player_clubschesscom: Get player clubsBRead-onlyIdempotent
Get the list of Chess.com clubs a player belongs to (with last-activity timestamps).
Inputs: username (required), fields.
chesscom_get_player_statschesscom: Get player statsARead-onlyIdempotent
Get a Chess.com player's stats by time control (daily, rapid, blitz, bullet) and chess960, with current ratings, best, and W/L/D records.
Inputs: username (required), fields.
espn_get_athleteespn: Get athleteBRead-onlyIdempotent
Get information about a specific athlete, including bio, stats, and career history.
Inputs: sport (required), league (required), athlete_id (required), fields.
espn_get_event_summaryespn: Get event summaryBRead-onlyIdempotent
Get a detailed summary of a specific event/game, including play-by-play, box score, leaders, and game info.
Inputs: sport (required), league (required), event_id (required), fields.
espn_get_newsespn: Get newsARead-onlyIdempotent
Get the latest news articles for a sport/league, including headlines, descriptions, and links.
Inputs: sport (required), league (required), limit, fields.
espn_get_scoreboardespn: Get scoreboardARead-onlyIdempotent
Get live or date-specific scores for a sport/league. Returns current scoreboard with game status, scores, and basic game info.
Inputs: sport (required), league (required), dates, limit, +1 more.
espn_get_seasonsespn: Get seasonsBRead-onlyIdempotent
Get available seasons for a sport/league, including season types (preseason, regular, postseason) and date ranges.
Inputs: sport (required), league (required), fields.
espn_get_standingsespn: Get standingsBRead-onlyIdempotent
Get league standings. Returns conference/division standings with team records, win/loss, and ranking info.
Inputs: sport (required), league (required), group, fields, +1 more.
espn_get_team_detailsespn: Get team detailsBRead-onlyIdempotent
Get detailed information about a specific team, including record, stats, venue, and next event.
Inputs: sport (required), league (required), team_id (required), fields.
espn_get_team_rosterespn: Get team rosterARead-onlyIdempotent
Get the full roster for a specific team, including player names, positions, jersey numbers, and basic stats.
Inputs: sport (required), league (required), team_id (required), fields.
espn_get_teamsespn: Get teamsBRead-onlyIdempotent
List all teams in a league. Returns team names, IDs, abbreviations, logos, and locations.
Inputs: sport (required), league (required), limit, fields.
espn_get_team_scheduleespn: Get team scheduleBRead-onlyIdempotent
Get a team's schedule for a season, including past results and upcoming games.
Inputs: sport (required), league (required), team_id (required), fields, +1 more.
euroleague_get_clubseuroleague: Get clubsARead-onlyIdempotent
List the clubs participating in a EuroLeague/EuroCup season (names, codes, venues, country).
Inputs: season_year (required), fields, competition.
euroleague_get_game_boxscoreeuroleague: Get game boxscoreARead-onlyIdempotent
Get a game's full box score (per-player and team stats for both teams). Use a game code from euroleague_get_games.
Inputs: game_code (required), season_year (required), fields, competition.
euroleague_get_game_headereuroleague: Get game headerARead-onlyIdempotent
Get a game's header/summary: final and per-quarter scores, teams, coaches. Use a game code from euroleague_get_games.
Inputs: game_code (required), season_year (required), fields, competition.
euroleague_get_game_playbyplayeuroleague: Get game playbyplayARead-onlyIdempotent
Get a game's full play-by-play feed (every event by quarter). Use a game code from euroleague_get_games.
Inputs: game_code (required), season_year (required), fields, competition.
euroleague_get_gameseuroleague: Get gamesBRead-onlyIdempotent
Get all EuroLeague/EuroCup games for a season (teams, scores, dates, round, status).
Inputs: season_year (required), fields, competition.
euroleague_get_roundseuroleague: Get roundsARead-onlyIdempotent
List the rounds (game days) of a EuroLeague/EuroCup season.
Inputs: season_year (required), fields, competition.
f1_get_circuitsf1: Get circuitsARead-onlyIdempotent
List Formula 1 circuits for a given season or all-time. Returns circuit names, locations, and coordinates.
Inputs: limit, fields, offset, season.
f1_get_constructorsf1: Get constructorsARead-onlyIdempotent
List Formula 1 constructors/teams for a given season or all-time.
Inputs: limit, fields, offset, season.
f1_get_constructor_standingsf1: Get constructor standingsARead-onlyIdempotent
Get Formula 1 World Constructors' Championship standings for a given season.
Inputs: limit, fields, offset, season.
f1_get_driver_resultsf1: Get driver resultsBRead-onlyIdempotent
Get all race results for a specific driver in a given season. Use driver IDs like 'hamilton', 'max_verstappen', 'leclerc'.
Inputs: driver_id (required), limit, fields, offset, +1 more.
f1_get_driversf1: Get driversARead-onlyIdempotent
List Formula 1 drivers for a given season or all-time. Returns driver IDs, names, nationalities, and other info.
Inputs: limit, fields, offset, season.
f1_get_driver_standingsf1: Get driver standingsBRead-onlyIdempotent
Get Formula 1 World Drivers' Championship standings for a given season.
Inputs: limit, fields, offset, season.
f1_get_lap_timesf1: Get lap timesARead-onlyIdempotent
Get lap times for a specific race. Can return all laps or a specific lap number. Data available from 1996 onwards.
Inputs: round (required), season (required), lap, limit, +2 more.
f1_get_pit_stopsf1: Get pit stopsARead-onlyIdempotent
Get pit stop data for a specific race. Can return all pit stops or a specific stop number. Data available from 2012 onwards.
Inputs: round (required), season (required), stop, limit, +2 more.
f1_get_qualifyingf1: Get qualifyingBRead-onlyIdempotent
Get Formula 1 qualifying results. Returns Q1/Q2/Q3 times for drivers in a specific qualifying session.
Inputs: limit, round, fields, offset, +1 more.
f1_get_race_resultsf1: Get race resultsBRead-onlyIdempotent
Get Formula 1 race results. Returns finishing positions, drivers, constructors, times, and status for a season or specific round.
Inputs: limit, round, fields, offset, +1 more.
f1_get_schedulef1: Get scheduleBRead-onlyIdempotent
Get the Formula 1 race schedule/calendar for a given season, including circuit info and race dates.
Inputs: limit, fields, offset, season.
f1_get_seasonsf1: Get seasonsBRead-onlyIdempotent
List all Formula 1 seasons from 1950 to present, including Wikipedia links.
Inputs: limit, fields, offset.
f1_get_sprintf1: Get sprintBRead-onlyIdempotent
Get Formula 1 sprint race results for a specific round.
Inputs: limit, round, fields, offset, +1 more.
footballdata_uk_get_matchesfootballdata: Uk get matchesARead-onlyIdempotent
Get historical matches (results + bookmaker odds) for a league and season from football-data.co.uk. Returns the most recent matches first; filter by team and cap with limit.
Inputs: league (required), season (required), team, limit, +1 more.
footballdata_uk_list_leaguesfootballdata: Uk list leaguesARead-onlyIdempotent
List the football-data.co.uk league codes usable with footballdata_uk_get_matches, and how to form the season code.
Inputs: fields.
formulae_get_championshipsformulae: Get championshipsARead-onlyIdempotent
List Formula E championships (one per season, from 2014-15 to the current season) with their ids and status. The id (championshipId) feeds the standings tools.
Inputs: fields.
formulae_get_driver_standingsformulae: Get driver standingsARead-onlyIdempotent
Get the Formula E drivers' championship standings for a championship (season). Pass a championshipId from formulae_get_championships.
Inputs: championship_id (required), fields.
formulae_get_raceformulae: Get raceARead-onlyIdempotent
Get details for a single Formula E race (sessions, circuit, schedule). Use a race id from formulae_get_races.
Inputs: race_id (required), fields.
formulae_get_race_resultsformulae: Get race resultsARead-onlyIdempotent
Get the race results / classification for a Formula E race (driver, team, position, points). Use a race id from formulae_get_races.
Inputs: race_id (required), fields.
formulae_get_racesformulae: Get racesARead-onlyIdempotent
List Formula E races / E-Prix with id, name, country, city, date and result-availability flags. Paginated — use page to advance. Each race id feeds formulae_get_race / formulae_get_race_results.
Inputs: page, fields.
formulae_get_teamsformulae: Get teamsARead-onlyIdempotent
List Formula E teams with wins, podiums and race starts.
Inputs: fields.
formulae_get_team_standingsformulae: Get team standingsARead-onlyIdempotent
Get the Formula E teams' championship standings for a championship (season). Pass a championshipId from formulae_get_championships.
Inputs: championship_id (required), fields.
lichess_get_broadcastslichess: Get broadcastsARead-onlyIdempotent
List official Lichess broadcast tournaments (live coverage of OTB events). Returns up to ~20 most recent.
Inputs: max, fields.
lichess_get_daily_puzzlelichess: Get daily puzzleARead-onlyIdempotent
Get the Lichess puzzle of the day, including the source game and the solution moves.
Inputs: fields.
lichess_get_teamlichess: Get teamARead-onlyIdempotent
Get information about a Lichess team: description, member count, leader, open/closed status.
Inputs: team_id (required), fields.
lichess_get_top_playerslichess: Get top playersBRead-onlyIdempotent
Get the top N players for a Lichess performance variant (bullet, blitz, rapid, classical, etc.).
Inputs: perf (required), n, fields.
lichess_get_tournamentslichess: Get tournamentsARead-onlyIdempotent
Get current Lichess Arena tournaments (created, started, and recently finished).
Inputs: fields.
lichess_get_userlichess: Get userBRead-onlyIdempotent
Get a Lichess user's public profile, including per-variant ratings, played games, and account flags.
Inputs: username (required), fields.
lichess_get_users_statuslichess: Get users statusBRead-onlyIdempotent
Get realtime online + streaming status for up to 100 Lichess users in a single call.
Inputs: ids (required), fields.
mlb_get_divisionsmlb: Get divisionsBRead-onlyIdempotent
List all MLB divisions with their IDs, names, and associated leagues.
Inputs: fields.
mlb_get_gamemlb: Get gameBRead-onlyIdempotent
Get detailed game data from the live feed including plays, box score, and line score.
Inputs: game_pk (required), fields.
mlb_get_game_boxscoremlb: Get game boxscoreBRead-onlyIdempotent
Get the box score for a game with full batting and pitching stats for both teams.
Inputs: game_pk (required), fields.
mlb_get_game_linescoremlb: Get game linescoreBRead-onlyIdempotent
Get the line score (inning-by-inning scoring summary) for a game.
Inputs: game_pk (required), fields.
mlb_get_game_play_by_playmlb: Get game play by playARead-onlyIdempotent
Get play-by-play data for a specific game including all at-bats and pitches.
Inputs: game_pk (required), fields.
mlb_get_league_leadersmlb: Get league leadersBRead-onlyIdempotent
Get league stat leaders for categories like home runs, batting average, ERA, strikeouts, etc.
Inputs: leaderCategories (required), fields, season, sportId.
mlb_get_playermlb: Get playerARead-onlyIdempotent
Get detailed player information including bio, position, and optionally hydrated stats.
Inputs: player_id (required), fields, hydrate.
mlb_get_player_statsmlb: Get player statsCRead-onlyIdempotent
Get detailed statistics for a player by stat type and group.
Inputs: group (required), player_id (required), stats_type (required), fields, +1 more.
mlb_get_schedulemlb: Get scheduleARead-onlyIdempotent
Get the MLB game schedule for a date or date range. Returns games with scores, status, and teams.
Inputs: date, fields, teamId, endDate, +2 more.
mlb_get_standingsmlb: Get standingsBRead-onlyIdempotent
Get league standings with win/loss records, division ranks, and streaks.
Inputs: fields, season, leagueId, standingsTypes.
mlb_get_team_rostermlb: Get team rosterCRead-onlyIdempotent
Get a team's roster with player names, positions, jersey numbers, and status.
Inputs: team_id (required), fields, season, rosterType.
mlb_get_teamsmlb: Get teamsBRead-onlyIdempotent
List MLB teams with their IDs, names, venues, divisions, and leagues.
Inputs: fields, season, sportId.
mlb_search_playersmlb: Search playersBRead-onlyIdempotent
Search for players by name. Returns matching players with their IDs, teams, and positions.
Inputs: names (required), fields, sportId.
motogp_get_categoriesmotogp: Get categoriesARead-onlyIdempotent
List the racing categories (MotoGP, Moto2, Moto3, MotoE) for a season, with their UUIDs. Use a seasonUuid from motogp_get_seasons; the returned categoryUuid feeds sessions and standings.
Inputs: season_uuid (required), fields.
motogp_get_eventsmotogp: Get eventsARead-onlyIdempotent
List the events (Grands Prix) in a season with circuit, country and dates. Each event's UUID feeds motogp_get_sessions.
Inputs: season_uuid (required), fields, is_finished.
motogp_get_ridersmotogp: Get ridersBRead-onlyIdempotent
List MotoGP riders with their profile data (name, number, country, team). Optionally filter by category UUID.
Inputs: fields, category_uuid.
motogp_get_seasonsmotogp: Get seasonsARead-onlyIdempotent
List MotoGP seasons with their UUIDs and year. The id (seasonUuid) feeds the categories/events/standings tools. current:true marks the live season.
Inputs: fields.
motogp_get_session_classificationmotogp: Get session classificationARead-onlyIdempotent
Get the full classification (results) of a session: rider, team, constructor, time/gap and points. Use a session id from motogp_get_sessions.
Inputs: session_id (required), test, fields.
motogp_get_sessionsmotogp: Get sessionsARead-onlyIdempotent
List the sessions (practice, qualifying, race, etc.) for an event and category. Pass eventUuid from motogp_get_events and categoryUuid from motogp_get_categories. Each session id feeds motogp_get_session_classification.
Inputs: event_uuid (required), category_uuid (required), fields.
motogp_get_standingsmotogp: Get standingsBRead-onlyIdempotent
Get the championship standings for a season and category (riders' or constructors' points table). Pass seasonUuid and categoryUuid.
Inputs: season_uuid (required), category_uuid (required), fields.
nascar_get_lap_timesnascar: Get lap timesARead-onlyIdempotent
Get per-driver lap times and speeds for a specific race. Use the race_id from nascar_get_schedule.
Inputs: year (required), race_id (required), series_id (required), fields.
nascar_get_livenascar: Get liveARead-onlyIdempotent
Get the live race feed: current lap, flag state, laps to go, leader and per-vehicle running order. When no race is live, fields are in an idle state (flag_state 9, race_id -1).
Inputs: fields.
nascar_get_schedulenascar: Get scheduleARead-onlyIdempotent
Get the NASCAR race schedule for a season and series, including track, dates, winners and stage info for completed races.
Inputs: year (required), series_id (required), fields.
ncaa_get_gamencaa: Get gameARead-onlyIdempotent
Get detailed information about a specific NCAA game, including play-by-play, box score, and stats.
Inputs: sport (required), game_id (required), fields.
ncaa_get_newsncaa: Get newsBRead-onlyIdempotent
Get the latest NCAA news, optionally filtered by sport.
Inputs: sport, fields.
ncaa_get_rankingsncaa: Get rankingsBRead-onlyIdempotent
Get NCAA rankings/polls (AP, Coaches, CFP, etc.) for a sport.
Inputs: sport (required), poll, week, year, +2 more.
ncaa_get_schedulencaa: Get scheduleBRead-onlyIdempotent
Get a team's NCAA schedule for a season.
Inputs: sport (required), team_id (required), year, fields.
ncaa_get_scoreboardncaa: Get scoreboardBRead-onlyIdempotent
Get the NCAA scoreboard for a sport and division. Returns games with scores, status, and basic info.
Inputs: sport (required), division (required), date, fields.
ncaa_get_standingsncaa: Get standingsBRead-onlyIdempotent
Get NCAA standings for a sport and division, optionally for a specific year.
Inputs: sport (required), year, fields, division.
ncaa_get_statsncaa: Get statsCRead-onlyIdempotent
Get player or team statistics for an NCAA sport/division.
Inputs: sport (required), division (required), year, fields, +1 more.
ncaa_get_teamsncaa: Get teamsBRead-onlyIdempotent
Get NCAA teams in a division, optionally filtered by conference.
Inputs: sport (required), division (required), fields, conference_id.
nhl_get_draftnhl: Get draftBRead-onlyIdempotent
Get the current NHL draft rankings and prospect information.
Inputs: fields.
nhl_get_game_boxscorenhl: Get game boxscoreBRead-onlyIdempotent
Get the box score for a specific NHL game. Includes goals, assists, shots, saves, and other stats.
Inputs: game_id (required), fields.
nhl_get_game_landingnhl: Get game landingBRead-onlyIdempotent
Get the game landing page data for an NHL game. Includes summary, three stars, scoring plays, and more.
Inputs: game_id (required), fields.
nhl_get_game_play_by_playnhl: Get game play by playARead-onlyIdempotent
Get the full play-by-play feed for an NHL game. Contains every event (shots, goals, penalties, faceoffs, etc.).
Inputs: game_id (required), fields.
nhl_get_playernhl: Get playerBRead-onlyIdempotent
Get detailed information about an NHL player -- bio, career stats, current season stats, awards.
Inputs: player_id (required), fields.
nhl_get_player_game_lognhl: Get player game logBRead-onlyIdempotent
Get the game-by-game stats log for an NHL player in a given season.
Inputs: player_id (required), fields, season, game_type.
nhl_get_schedulenhl: Get scheduleBRead-onlyIdempotent
Get the NHL schedule for a given date. Returns all games, start times, teams, and venues.
Inputs: date, fields.
nhl_get_scoresnhl: Get scoresARead-onlyIdempotent
Get live and final scores for today's NHL games.
Inputs: fields.
nhl_get_standingsnhl: Get standingsBRead-onlyIdempotent
Get NHL standings. Optionally filter by date or season.
Inputs: date, fields, season.
nhl_get_stat_leadersnhl: Get stat leadersCRead-onlyIdempotent
Get the NHL stat leaders for a given category (points, goals, assists, wins, etc.).
Inputs: fields, season, category.
nhl_get_team_rosternhl: Get team rosterBRead-onlyIdempotent
Get the roster for an NHL team. Returns forwards, defensemen, and goalies with jersey numbers and positions.
Inputs: team_abbrev (required), fields, season.
nhl_get_team_schedulenhl: Get team scheduleBRead-onlyIdempotent
Get the monthly schedule for an NHL team.
Inputs: team_abbrev (required), month, fields.
nhl_get_team_statsnhl: Get team statsBRead-onlyIdempotent
Get current-season stats for an NHL team (goals, shots, power play, penalty kill, etc.).
Inputs: team_abbrev (required), fields.
opendota_get_heroesopendota: Get heroesARead-onlyIdempotent
List all Dota 2 heroes with id, name, primary attribute and roles.
Inputs: fields.
opendota_get_hero_statsopendota: Get hero statsARead-onlyIdempotent
Get hero stats / current meta: per-bracket pick and win counts for every hero.
Inputs: fields.
opendota_get_matchopendota: Get matchBRead-onlyIdempotent
Get full detail for a Dota 2 match: players, heroes, K/D/A, items, gold/xp, objectives.
Inputs: match_id (required), fields.
opendota_get_playeropendota: Get playerARead-onlyIdempotent
Get a player's profile and aggregate stats by Steam32 account id (rank, MMR estimate, profile).
Inputs: account_id (required), fields.
opendota_get_player_heroesopendota: Get player heroesBRead-onlyIdempotent
Get a player's per-hero stats (games, win rate, last played).
Inputs: account_id (required), fields.
opendota_get_player_matchesopendota: Get player matchesBRead-onlyIdempotent
Get a player's recent matches (hero, result, K/D/A, duration). Use limit to cap the list.
Inputs: account_id (required), limit, fields.
opendota_get_player_win_lossopendota: Get player win lossBRead-onlyIdempotent
Get a player's overall win/loss record.
Inputs: account_id (required), fields.
opendota_get_pro_leaguesopendota: Get pro leaguesBRead-onlyIdempotent
List Dota 2 leagues / tournaments with id, name and tier.
Inputs: fields.
opendota_get_pro_matchesopendota: Get pro matchesARead-onlyIdempotent
Get recent professional Dota 2 matches (teams, league, duration, winner). Use a match_id with opendota_get_match for full detail.
Inputs: fields.
opendota_get_pro_teamsopendota: Get pro teamsBRead-onlyIdempotent
List professional Dota 2 teams with rating, wins/losses and last match time.
Inputs: fields.
opendota_search_playersopendota: Search playersARead-onlyIdempotent
Search for Dota 2 players by persona name. Returns account_id values for use with the player tools.
Inputs: query (required), fields.
openf1_get_car_dataopenf1: Get car dataARead-onlyIdempotent
Get detailed car telemetry: speed, RPM, gear, throttle, brake, DRS. WARNING: This endpoint returns massive amounts of data (multiple samples per second per car). Always use date_gte and date_lte filters to limit the time window, ideally to a few seconds or a single lap.
Inputs: session_key (required), fields, date_gte, date_lte, +3 more.
openf1_get_driversopenf1: Get driversARead-onlyIdempotent
Get driver information for a session or across sessions. Returns driver names, numbers, team names, and more.
Inputs: fields, session_key, name_acronym, driver_number.
openf1_get_intervalsopenf1: Get intervalsBRead-onlyIdempotent
Get interval data showing the gap between drivers and the leader during a session.
Inputs: session_key (required), fields, driver_number.
openf1_get_lapsopenf1: Get lapsBRead-onlyIdempotent
Get lap timing data including sector times, lap duration, and more for a session.
Inputs: session_key (required), fields, lap_number, driver_number.
openf1_get_meetingsopenf1: Get meetingsBRead-onlyIdempotent
Get meeting (race weekend/event) information. A meeting groups multiple sessions at one circuit.
Inputs: year, fields, meeting_key, country_name.
openf1_get_pitopenf1: Get pitBRead-onlyIdempotent
Get pit stop data including pit lane time and duration for each stop.
Inputs: session_key (required), fields, driver_number, pit_duration_lte.
openf1_get_positionsopenf1: Get positionsBRead-onlyIdempotent
Get position/ranking data during a session. Shows how positions change over time.
Inputs: session_key (required), fields, position, driver_number.
openf1_get_race_controlopenf1: Get race controlBRead-onlyIdempotent
Get race control messages: flags, safety cars, penalties, track status changes, and other official messages.
Inputs: session_key (required), flag, fields, category.
openf1_get_sessionsopenf1: Get sessionsBRead-onlyIdempotent
List Formula 1 sessions. A session is a single on-track period such as a practice, qualifying, sprint, or race.
Inputs: year, fields, session_key, country_name, +3 more.
openf1_get_stintsopenf1: Get stintsBRead-onlyIdempotent
Get stint data including tire compound, stint number, lap counts, and tire age for each driver.
Inputs: session_key (required), fields, compound, driver_number.
openf1_get_team_radioopenf1: Get team radioARead-onlyIdempotent
Get team radio message metadata for a session. Returns URLs to audio recordings of driver-engineer communications.
Inputs: session_key (required), fields, driver_number.
openf1_get_weatheropenf1: Get weatherBRead-onlyIdempotent
Get weather data for a session: air/track temperature, humidity, pressure, wind speed/direction, rainfall.
Inputs: session_key (required), fields, date_gte, date_lte.
openliga_get_available_leaguesopenliga: Get available leaguesBRead-onlyIdempotent
List all available leagues and seasons in OpenLigaDB.
Inputs: fields.
openliga_get_current_matchdayopenliga: Get current matchdayARead-onlyIdempotent
Get the matches for the current matchday of a league.
Inputs: league_shortcut (required), fields.
openliga_get_last_match_by_teamopenliga: Get last match by teamARead-onlyIdempotent
Get the last completed match for a team. Use get_teams to find team IDs.
Inputs: team_id (required), fields.
openliga_get_match_dataopenliga: Get match dataARead-onlyIdempotent
Get detailed data for a specific match by its ID, including goals, results, and location.
Inputs: match_id (required), fields.
openliga_get_matches_by_league_seasonopenliga: Get matches by league seasonARead-onlyIdempotent
Get all matches for a league and season. Known league shortcuts: bl1 (1. Bundesliga), bl2 (2. Bundesliga), bl3 (3. Liga), dfb (DFB-Pokal), ucl (Champions League).
Inputs: season (required), league_shortcut (required), fields.
openliga_get_matches_by_matchdayopenliga: Get matches by matchdayARead-onlyIdempotent
Get matches for a specific matchday in a league and season.
Inputs: season (required), matchday (required), league_shortcut (required), fields.
openliga_get_next_match_by_teamopenliga: Get next match by teamARead-onlyIdempotent
Get the next upcoming match for a team. Use get_teams to find team IDs.
Inputs: team_id (required), fields.
openliga_get_tableopenliga: Get tableCRead-onlyIdempotent
Get the league table / standings for a league and season.
Inputs: season (required), league_shortcut (required), fields.
openliga_get_teamsopenliga: Get teamsARead-onlyIdempotent
Get the list of teams participating in a league for a given season.
Inputs: season (required), league_shortcut (required), fields.
openliga_get_top_scorersopenliga: Get top scorersCRead-onlyIdempotent
Get the top goal scorers for a league and season.
Inputs: season (required), league_shortcut (required), fields.
sleeper_get_draft_pickssleeper: Get draft picksARead-onlyIdempotent
Get all picks for a draft (round, pick number, roster, player_id, metadata). Get a draft_id from sleeper_get_league (draft_id) or the league's drafts.
Inputs: draft_id (required), fields.
sleeper_get_leaguesleeper: Get leagueARead-onlyIdempotent
Get details for a Sleeper league (settings, scoring, roster positions, status).
Inputs: league_id (required), fields.
sleeper_get_league_matchupssleeper: Get league matchupsBRead-onlyIdempotent
Get the matchups for a league in a given week (roster_id, points, starters).
Inputs: week (required), league_id (required), fields.
sleeper_get_league_rosterssleeper: Get league rostersARead-onlyIdempotent
Get all rosters in a league (owners, player_ids, wins/losses, points).
Inputs: league_id (required), fields.
sleeper_get_league_userssleeper: Get league usersARead-onlyIdempotent
Get all users (managers) in a league with display names and team names.
Inputs: league_id (required), fields.
sleeper_get_nfl_statesleeper: Get nfl stateARead-onlyIdempotent
Get the current NFL season, week, and season type (pre/regular/post/off) as tracked by Sleeper.
Inputs: fields.
sleeper_get_trending_playerssleeper: Get trending playersARead-onlyIdempotent
Get the most-added or most-dropped NFL players over a lookback window, enriched with names/teams/positions. Doubles as a crude buzz signal.
Inputs: type (required), limit, fields, lookback_hours.
sleeper_get_usersleeper: Get userBRead-onlyIdempotent
Get a Sleeper user (profile, user_id, display name) by username or numeric user id.
Inputs: username_or_id (required), fields.
sleeper_get_user_leaguessleeper: Get user leaguesARead-onlyIdempotent
List the NFL leagues a user belongs to for a given season. Use the user_id from sleeper_get_user.
Inputs: season (required), user_id (required), fields.
sleeper_search_playerssleeper: Search playersARead-onlyIdempotent
Search the Sleeper NFL player database by name (and optionally team/position). Returns slim records with injury status, depth-chart order, team and position. The full player set is cached for 24h.
Inputs: query (required), team, limit, fields, +1 more.
sportsdb_get_event_detailssportsdb: Get event detailsARead-onlyIdempotent
Get full details for a specific event by its TheSportsDB ID. Includes scores, venue, thumbnails, and video highlights.
Inputs: event_id (required), fields.
sportsdb_get_event_resultssportsdb: Get event resultsBRead-onlyIdempotent
Get past event results for a specific round of a league season.
Inputs: round (required), season (required), league_id (required), fields.
sportsdb_get_events_by_datesportsdb: Get events by dateARead-onlyIdempotent
Get sporting events on a specific date. Optionally filter by sport or league name.
Inputs: date (required), sport, fields, league.
sportsdb_get_last_eventssportsdb: Get last eventsARead-onlyIdempotent
Get the last 15 completed events for a team. Includes scores and results.
Inputs: team_id (required), fields.
sportsdb_get_league_listsportsdb: Get league listARead-onlyIdempotent
List all leagues, optionally filtered by country and/or sport.
Inputs: sport, fields, country.
sportsdb_get_next_eventssportsdb: Get next eventsARead-onlyIdempotent
Get the next 15 upcoming events for a team.
Inputs: team_id (required), fields.
sportsdb_get_player_detailssportsdb: Get player detailsARead-onlyIdempotent
Get full details for a player by their TheSportsDB ID. Includes biography, position, stats, and images.
Inputs: player_id (required), fields.
sportsdb_get_seasonssportsdb: Get seasonsCRead-onlyIdempotent
List all available seasons for a league.
Inputs: league_id (required), fields.
sportsdb_get_sports_listsportsdb: Get sports listBRead-onlyIdempotent
List all available sports on TheSportsDB.
Inputs: fields.
sportsdb_get_standingssportsdb: Get standingsBRead-onlyIdempotent
Get league table / standings for a given league and season.
Inputs: season (required), league_id (required), fields.
sportsdb_get_team_detailssportsdb: Get team detailsBRead-onlyIdempotent
Get full details for a team by its TheSportsDB ID. Includes description, stadium, badges, social links, and more.
Inputs: team_id (required), fields.
sportsdb_search_playerssportsdb: Search playersARead-onlyIdempotent
Search players by name, or list all players on a team. Provide either player_name or team_name (or both).
Inputs: fields, team_name, player_name.
sportsdb_search_teamssportsdb: Search teamsARead-onlyIdempotent
Search teams by name. Returns matching teams with basic info, badges, and stadium details.
Inputs: team_name (required), fields.
sportsrc_get_leaguessportsrc: Get leaguesARead-onlyIdempotent
List football leagues/competitions supported by SportSRC. Returns league ids you can pass to scores and tables tools.
Inputs: fields.
sportsrc_get_league_scoressportsrc: Get league scoresBRead-onlyIdempotent
Get scores / recent results for a specific football league.
Inputs: league (required), fields.
sportsrc_get_livesportsrc: Get liveARead-onlyIdempotent
Convenience: get the matches feed for a sport. Filter the returned data array client-side by status for live games.
Inputs: category (required), fields.
sportsrc_get_matchsportsrc: Get matchBRead-onlyIdempotent
Get detailed match information including streams, venue, and lineups.
Inputs: category (required), match_id (required), fields.
sportsrc_get_matchessportsrc: Get matchesBRead-onlyIdempotent
List matches for a sport. Returns live, upcoming, and recently finished matches with team info.
Inputs: category (required), fields.
sportsrc_get_sportssportsrc: Get sportsARead-onlyIdempotent
List sport categories supported by SportSRC. Returns ids you can pass to other tools.
Inputs: fields.
sportsrc_get_tablesportsrc: Get tableCRead-onlyIdempotent
Get the standings table for a specific football league.
Inputs: league (required), fields.
squiggle_get_gamessquiggle: Get gamesBRead-onlyIdempotent
Get AFL games with optional filters. Returns home/away teams, scores, completion status, venue, and time.
Inputs: team, year, round, fields, +1 more.
squiggle_get_laddersquiggle: Get ladderARead-onlyIdempotent
Get the projected AFL ladder for a given year and round, by prediction model. Each model gives its own projected wins / mean rank.
Inputs: year (required), round (required), fields, source.
squiggle_get_sourcessquiggle: Get sourcesARead-onlyIdempotent
List the prediction model sources contributing to Squiggle (Squiggle, MoS, FiveThirtyEight, etc.). Use the returned ids with tips and ladder tools.
Inputs: fields.
squiggle_get_standingssquiggle: Get standingsBRead-onlyIdempotent
Get the actual AFL ladder/standings (wins, losses, draws, points, percentage) for a year and round.
Inputs: year (required), round, fields.
squiggle_get_teamssquiggle: Get teamsARead-onlyIdempotent
List all AFL teams in the Squiggle database (current and historic), with id, abbreviation, debut/retirement years, and logo path.
Inputs: fields.
squiggle_get_tipssquiggle: Get tipsARead-onlyIdempotent
Get game-level tips/predictions from one or all Squiggle prediction models. Each tip includes margin, confidence, and post-hoc correctness when known.
Inputs: game, year, round, fields, +1 more.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 165 tools
The tool set contains many overlapping capabilities across different providers: scoreboards, standings, team rosters, schedules, player searches, and event details appear under ESPN, SportsDB, NCAA, SportSRC, OpenLiga, footballdata, and league-specific tools. Formula 1 is especially ambiguous because F1 data is split across f1_*, openf1_*, and conceptually similar session/result tools. Provider prefixes help, but an agent must know which source to choose for a given sport and request.
Most tools follow a predictable provider_get_resource or provider_search_resource pattern, using snake_case throughout. There are minor deviations such as get versus list/search, sportsdb_get_league_list, euroleague_get_game_playbyplay versus play_by_play elsewhere, and mixed provider abbreviations. These are noticeable but do not make the naming chaotic.
165 tools is far beyond a reasonable surface for a single MCP server and exceeds the rubric's extreme-mismatch threshold. Even though the server aggregates many sports and data providers, the sheer number makes tool selection, maintenance, and agent reliability difficult.
Coverage is very broad: scores, schedules, standings, teams, rosters, players, stats, news, leagues, drafts, chess profiles, and Dota data are all represented. Some gaps remain, such as deeper cross-provider normalization and some sport-specific operations, but the surface is substantially complete for a multi-sport hub.
Maintenance
Related MCP Connectors
Live sports data: scores, play-by-play, box scores, odds and props. No key needed to start.
Sports data across 8 sports under one canonical schema — scores, stats, standings, Elo, odds
Sports odds, player props and source coverage for AI assistants. Connect with your own API key.
Live odds, cross-book +EV and graded player-prop results across 37 books. Hosted endpoint included.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceProvides access to comprehensive sports data from 5 major leagues (NBA, NFL, MLB, EPL, NHL) including teams, players, games, statistics, standings, injuries, and betting odds through 67+ endpoints. Enables users to query sports information and analytics through natural language.12MIT
- AlicenseBqualityBmaintenanceA unified MCP server that aggregates 32 sports API providers into a single service, providing 336 tools for scores, stats, odds, esports, and more across 70+ sports.14165111 npm40MIT
- AlicenseNot gradedqualityCmaintenanceEnables fetching sportsbook odds, live scores, and event information across 70+ books and 30+ leagues, with tools to list sports, get scores, and discover events.297 npm1MIT
- FlicenseNot gradedqualityDmaintenanceProvides comprehensive sports intelligence including live scores, standings, schedules, betting odds, news, highlights, and more via SSE transport.-