Skip to main content
Glama
Sports Hub MCP Server

Sports Hub MCP Server

by danmorris27

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: Claude ChatGPT Cursor Windsurf Zed Continue Cline

Demo

mcp-sports-hub 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

claude mcp add

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

espn_

ESPN

20+ sports

10

Unofficial — can break

nhl_

NHL Web API

NHL

13

Undocumented but stable

mlb_

MLB Stats API

MLB/MiLB

13

Official, undocumented

f1_

Jolpica F1

Formula 1 (1950+)

13

Community-maintained

openf1_

OpenF1

F1 live telemetry

12

Live race weekends only

openliga_

OpenLigaDB

German football

10

Bundesliga focus

sportsdb_

TheSportsDB

40+ sports

13

Test key auto, watermarks

ncaa_

NCAA API

College sports

8

5 req/s rate limit

sportsrc_

SportSRC

Football, basketball, MMA + streams

7

V1 free, V2 needs paid key

lichess_

Lichess

Chess (users, top players, broadcasts, daily puzzle)

7

~20 req/sec/IP

chesscom_

Chess.com

Chess (profiles, stats, clubs, leaderboards)

7

Throttles on parallel calls

squiggle_

Squiggle

AFL (Australian Football League)

6

Honest UA required

motogp_

MotoGP

MotoGP/Moto2/Moto3/MotoE

7

Unofficial — can break

formulae_

Formula E

Formula E

7

Unofficial — can break

nascar_

NASCAR

NASCAR Cup/Xfinity/Truck

3

Unofficial CDN feeds

opendota_

OpenDota

Dota 2 analytics

11

60 req/min, 50k/mo

sleeper_

Sleeper

NFL fantasy

10

~1000 req/min

euroleague_

EuroLeague

EuroLeague + EuroCup basketball

6

Keyless feeds

footballdata_uk_

Football-Data.co.uk

Historical football results + odds

2

CSV, 25+ leagues

Tip: Use SPORTS_HUB_PROVIDERS=free to 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_

PandaScore

Esports (13 titles)

14

1000 req/hr

Sign up

apifootball_

API-Football

Soccer (960+ leagues)

15

100 req/day

Sign up

apisports_

API-Sports

9 sports

10

100 req/day/sport

Sign up

apitennis_

API-Tennis

Tennis (ATP/WTA/ITF)

12

100 req/day

Sign up

bdl_

BallDontLie

NBA/NFL/MLB/NHL

10

Basic tier

Sign up

cricket_

CricketData

Cricket

10

100 req/day

Sign up

entitycricket_

Entity Sport

Cricket (250+ comps)

12

Free plan

Sign up

footballdata_

football-data.org

Soccer (12 leagues)

11

10 req/min

Sign up

sportmonks_

Sportmonks

Soccer

12

3000 req/hr

Sign up

sportsdata_

SportsDataIO

9 sports

12

1000 req/mo

Sign up

odds_

The Odds API

70+ sports odds

9

500 req/mo

Sign up

oddsio_

Odds-API.io

34 sports odds

10

Free account

Sign up

sgo_

Sports Game Odds

55+ leagues odds

10

Trial

Sign up

lumify_

Lumify

Odds, splits + AI bet analysis (8 sports)

14

Free trial key

Sign up

mma_

Fighting Tomatoes

MMA

8

200 req/mo

Sign up

livegolf_

Live Golf API

Golf (PGA/DP World)

8

Free tier

Sign up

isports_

iSportsAPI

Football/Basketball (Asia)

10

Free tier

Sign up

sportdevs_

SportDevs

Rugby/Volleyball/Handball

12

Trial

Sign up

msf_

MySportsFeeds

NFL/NBA/MLB/NHL

12

Free non-commercial

Sign up

golfcourse_

GolfCourseAPI

30K+ golf courses

6

300 req/day

Sign up

cfbd_

College Football Data

NCAA football

14

1000 req/mo

Sign up

boxing_

Boxing Data API

Pro boxing (fighters/bouts/titles)

8

100 req/mo

Sign up

highlightly_

Highlightly

Multi-sport highlights + odds

6

100 req/day

Sign up

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-hub

npm global

npm install -g mcp-sports-hub
mcp-sports-hub

From source

git clone https://github.com/lacausecrypto/mcp-sports-hub.git
cd mcp-sports-hub
npm install
npm run build

MCP 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-hub

HTTP/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-hub

Endpoints:

  • 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 request

SPORTS_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. Setting SPORTS_HUB_HOST=0.0.0.0 exposes 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_ORIGINS must 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=0 disables 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-token

Response 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 teams

If 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 result

Claude Desktop

Config file locations:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

  • Windows: %APPDATA%\Claude\claude_desktop_config.json

  • Linux: ~/.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.js

Or 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-hub

Presets

Preset

Providers

Tools

Needs keys?

free (default)

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

all 42 providers

410

Yes (for key-required providers)

chess

lichess, chesscom

14

No

us-major

espn, nhl, mlb, ncaa, cfbd, bdl, msf, nascar, sleeper

~93

Some

soccer

espn, apifootball, footballdata, sportmonks, openliga, sportsrc, footballdatauk, highlightly

~73

Some

f1

f1, openf1

25

No

motorsport

f1, openf1, motogp, formulae, nascar

~42

No

esports

pandascore, opendota

25

Some

odds

odds, oddsio, sgo, lumify

43

Yes

cricket

cricket, entitycricket

22

Yes

golf

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 attempt

In 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 load

  • sportshub://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_KEY

Each provider exports register(server). Keys are checked at call time, not startup.

Contributing

  1. Fork the repository

  2. Create src/providers/my-api.ts exporting register(server: McpServer)

  3. Prefix tool names: myapi_get_something

  4. Import + call in src/index.ts

  5. npm run build to verify

  6. Submit a PR

License

MIT

Available Tools

165 tools
chesscom_get_clubchesscom: Get clubB
Read-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 playersB
Read-onlyIdempotent

Get the list of titled Chess.com players from a country (returns usernames and titles).

Inputs: country (required), fields.

chesscom_get_leaderboardschesscom: Get leaderboardsA
Read-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 playerB
Read-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 archivesB
Read-onlyIdempotent

List the YYYY/MM archive URLs containing a player's monthly game history.

Inputs: username (required), fields.

chesscom_get_player_clubschesscom: Get player clubsB
Read-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 statsA
Read-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 athleteB
Read-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 summaryB
Read-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 newsA
Read-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 scoreboardA
Read-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 seasonsB
Read-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 standingsB
Read-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 detailsB
Read-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 rosterA
Read-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 teamsB
Read-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 scheduleB
Read-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 clubsA
Read-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 boxscoreA
Read-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 headerA
Read-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 playbyplayA
Read-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 gamesB
Read-onlyIdempotent

Get all EuroLeague/EuroCup games for a season (teams, scores, dates, round, status).

Inputs: season_year (required), fields, competition.

euroleague_get_roundseuroleague: Get roundsA
Read-onlyIdempotent

List the rounds (game days) of a EuroLeague/EuroCup season.

Inputs: season_year (required), fields, competition.

f1_get_circuitsf1: Get circuitsA
Read-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 constructorsA
Read-onlyIdempotent

List Formula 1 constructors/teams for a given season or all-time.

Inputs: limit, fields, offset, season.

f1_get_constructor_standingsf1: Get constructor standingsA
Read-onlyIdempotent

Get Formula 1 World Constructors' Championship standings for a given season.

Inputs: limit, fields, offset, season.

f1_get_driver_resultsf1: Get driver resultsB
Read-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 driversA
Read-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 standingsB
Read-onlyIdempotent

Get Formula 1 World Drivers' Championship standings for a given season.

Inputs: limit, fields, offset, season.

f1_get_lap_timesf1: Get lap timesA
Read-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 stopsA
Read-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 qualifyingB
Read-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 resultsB
Read-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 scheduleB
Read-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 seasonsB
Read-onlyIdempotent

List all Formula 1 seasons from 1950 to present, including Wikipedia links.

Inputs: limit, fields, offset.

f1_get_sprintf1: Get sprintB
Read-onlyIdempotent

Get Formula 1 sprint race results for a specific round.

Inputs: limit, round, fields, offset, +1 more.

footballdata_uk_get_matchesfootballdata: Uk get matchesA
Read-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 leaguesA
Read-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 championshipsA
Read-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 standingsA
Read-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 raceA
Read-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 resultsA
Read-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 racesA
Read-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 teamsA
Read-onlyIdempotent

List Formula E teams with wins, podiums and race starts.

Inputs: fields.

formulae_get_team_standingsformulae: Get team standingsA
Read-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 broadcastsA
Read-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 puzzleA
Read-onlyIdempotent

Get the Lichess puzzle of the day, including the source game and the solution moves.

Inputs: fields.

lichess_get_teamlichess: Get teamA
Read-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 playersB
Read-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 tournamentsA
Read-onlyIdempotent

Get current Lichess Arena tournaments (created, started, and recently finished).

Inputs: fields.

lichess_get_userlichess: Get userB
Read-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 statusB
Read-onlyIdempotent

Get realtime online + streaming status for up to 100 Lichess users in a single call.

Inputs: ids (required), fields.

mlb_get_divisionsmlb: Get divisionsB
Read-onlyIdempotent

List all MLB divisions with their IDs, names, and associated leagues.

Inputs: fields.

mlb_get_gamemlb: Get gameB
Read-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 boxscoreB
Read-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 linescoreB
Read-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 playA
Read-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 leadersB
Read-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 playerA
Read-onlyIdempotent

Get detailed player information including bio, position, and optionally hydrated stats.

Inputs: player_id (required), fields, hydrate.

mlb_get_player_statsmlb: Get player statsC
Read-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 scheduleA
Read-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 standingsB
Read-onlyIdempotent

Get league standings with win/loss records, division ranks, and streaks.

Inputs: fields, season, leagueId, standingsTypes.

mlb_get_team_rostermlb: Get team rosterC
Read-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 teamsB
Read-onlyIdempotent

List MLB teams with their IDs, names, venues, divisions, and leagues.

Inputs: fields, season, sportId.

mlb_search_playersmlb: Search playersB
Read-onlyIdempotent

Search for players by name. Returns matching players with their IDs, teams, and positions.

Inputs: names (required), fields, sportId.

motogp_get_categoriesmotogp: Get categoriesA
Read-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 eventsA
Read-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 ridersB
Read-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 seasonsA
Read-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 classificationA
Read-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 sessionsA
Read-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 standingsB
Read-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 timesA
Read-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 liveA
Read-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 scheduleA
Read-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 gameA
Read-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 newsB
Read-onlyIdempotent

Get the latest NCAA news, optionally filtered by sport.

Inputs: sport, fields.

ncaa_get_rankingsncaa: Get rankingsB
Read-onlyIdempotent

Get NCAA rankings/polls (AP, Coaches, CFP, etc.) for a sport.

Inputs: sport (required), poll, week, year, +2 more.

ncaa_get_schedulencaa: Get scheduleB
Read-onlyIdempotent

Get a team's NCAA schedule for a season.

Inputs: sport (required), team_id (required), year, fields.

ncaa_get_scoreboardncaa: Get scoreboardB
Read-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 standingsB
Read-onlyIdempotent

Get NCAA standings for a sport and division, optionally for a specific year.

Inputs: sport (required), year, fields, division.

ncaa_get_statsncaa: Get statsC
Read-onlyIdempotent

Get player or team statistics for an NCAA sport/division.

Inputs: sport (required), division (required), year, fields, +1 more.

ncaa_get_teamsncaa: Get teamsB
Read-onlyIdempotent

Get NCAA teams in a division, optionally filtered by conference.

Inputs: sport (required), division (required), fields, conference_id.

nhl_get_draftnhl: Get draftB
Read-onlyIdempotent

Get the current NHL draft rankings and prospect information.

Inputs: fields.

nhl_get_game_boxscorenhl: Get game boxscoreB
Read-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 landingB
Read-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 playA
Read-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 playerB
Read-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 logB
Read-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 scheduleB
Read-onlyIdempotent

Get the NHL schedule for a given date. Returns all games, start times, teams, and venues.

Inputs: date, fields.

nhl_get_scoresnhl: Get scoresA
Read-onlyIdempotent

Get live and final scores for today's NHL games.

Inputs: fields.

nhl_get_standingsnhl: Get standingsB
Read-onlyIdempotent

Get NHL standings. Optionally filter by date or season.

Inputs: date, fields, season.

nhl_get_stat_leadersnhl: Get stat leadersC
Read-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 rosterB
Read-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 scheduleB
Read-onlyIdempotent

Get the monthly schedule for an NHL team.

Inputs: team_abbrev (required), month, fields.

nhl_get_team_statsnhl: Get team statsB
Read-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 heroesA
Read-onlyIdempotent

List all Dota 2 heroes with id, name, primary attribute and roles.

Inputs: fields.

opendota_get_hero_statsopendota: Get hero statsA
Read-onlyIdempotent

Get hero stats / current meta: per-bracket pick and win counts for every hero.

Inputs: fields.

opendota_get_matchopendota: Get matchB
Read-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 playerA
Read-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 heroesB
Read-onlyIdempotent

Get a player's per-hero stats (games, win rate, last played).

Inputs: account_id (required), fields.

opendota_get_player_matchesopendota: Get player matchesB
Read-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 lossB
Read-onlyIdempotent

Get a player's overall win/loss record.

Inputs: account_id (required), fields.

opendota_get_pro_leaguesopendota: Get pro leaguesB
Read-onlyIdempotent

List Dota 2 leagues / tournaments with id, name and tier.

Inputs: fields.

opendota_get_pro_matchesopendota: Get pro matchesA
Read-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 teamsB
Read-onlyIdempotent

List professional Dota 2 teams with rating, wins/losses and last match time.

Inputs: fields.

opendota_search_playersopendota: Search playersA
Read-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 dataA
Read-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 driversA
Read-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 intervalsB
Read-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 lapsB
Read-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 meetingsB
Read-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 pitB
Read-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 positionsB
Read-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 controlB
Read-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 sessionsB
Read-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 stintsB
Read-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 radioA
Read-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 weatherB
Read-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 leaguesB
Read-onlyIdempotent

List all available leagues and seasons in OpenLigaDB.

Inputs: fields.

openliga_get_current_matchdayopenliga: Get current matchdayA
Read-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 teamA
Read-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 dataA
Read-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 seasonA
Read-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 matchdayA
Read-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 teamA
Read-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 tableC
Read-onlyIdempotent

Get the league table / standings for a league and season.

Inputs: season (required), league_shortcut (required), fields.

openliga_get_teamsopenliga: Get teamsA
Read-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 scorersC
Read-onlyIdempotent

Get the top goal scorers for a league and season.

Inputs: season (required), league_shortcut (required), fields.

sleeper_get_draft_pickssleeper: Get draft picksA
Read-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 leagueA
Read-onlyIdempotent

Get details for a Sleeper league (settings, scoring, roster positions, status).

Inputs: league_id (required), fields.

sleeper_get_league_matchupssleeper: Get league matchupsB
Read-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 rostersA
Read-onlyIdempotent

Get all rosters in a league (owners, player_ids, wins/losses, points).

Inputs: league_id (required), fields.

sleeper_get_league_userssleeper: Get league usersA
Read-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 stateA
Read-onlyIdempotent

Get the current NFL season, week, and season type (pre/regular/post/off) as tracked by Sleeper.

Inputs: fields.

sleeper_get_usersleeper: Get userB
Read-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 leaguesA
Read-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 playersA
Read-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 detailsA
Read-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 resultsB
Read-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 dateA
Read-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 eventsA
Read-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 listA
Read-onlyIdempotent

List all leagues, optionally filtered by country and/or sport.

Inputs: sport, fields, country.

sportsdb_get_next_eventssportsdb: Get next eventsA
Read-onlyIdempotent

Get the next 15 upcoming events for a team.

Inputs: team_id (required), fields.

sportsdb_get_player_detailssportsdb: Get player detailsA
Read-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 seasonsC
Read-onlyIdempotent

List all available seasons for a league.

Inputs: league_id (required), fields.

sportsdb_get_sports_listsportsdb: Get sports listB
Read-onlyIdempotent

List all available sports on TheSportsDB.

Inputs: fields.

sportsdb_get_standingssportsdb: Get standingsB
Read-onlyIdempotent

Get league table / standings for a given league and season.

Inputs: season (required), league_id (required), fields.

sportsdb_get_team_detailssportsdb: Get team detailsB
Read-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 playersA
Read-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 teamsA
Read-onlyIdempotent

Search teams by name. Returns matching teams with basic info, badges, and stadium details.

Inputs: team_name (required), fields.

sportsrc_get_leaguessportsrc: Get leaguesA
Read-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 scoresB
Read-onlyIdempotent

Get scores / recent results for a specific football league.

Inputs: league (required), fields.

sportsrc_get_livesportsrc: Get liveA
Read-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 matchB
Read-onlyIdempotent

Get detailed match information including streams, venue, and lineups.

Inputs: category (required), match_id (required), fields.

sportsrc_get_matchessportsrc: Get matchesB
Read-onlyIdempotent

List matches for a sport. Returns live, upcoming, and recently finished matches with team info.

Inputs: category (required), fields.

sportsrc_get_sportssportsrc: Get sportsA
Read-onlyIdempotent

List sport categories supported by SportSRC. Returns ids you can pass to other tools.

Inputs: fields.

sportsrc_get_tablesportsrc: Get tableC
Read-onlyIdempotent

Get the standings table for a specific football league.

Inputs: league (required), fields.

squiggle_get_gamessquiggle: Get gamesB
Read-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 ladderA
Read-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 sourcesA
Read-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 standingsB
Read-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 teamsA
Read-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 tipsA
Read-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

    B3.1/5.0

    Scored across 165 tools

    Disambiguation2/5

    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.

    Naming Consistency4/5

    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.

    Tool Count1/5

    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.

    Completeness4/5

    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

    ActivityMaintained
    ResponsivenessLimited data

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      Not graded
      quality
      C
      maintenance
      Provides 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.
      12
      MIT
    • A
      license
      B
      quality
      B
      maintenance
      A 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.
      14
      165
      111 npm
      40
      MIT
    • A
      license
      Not graded
      quality
      C
      maintenance
      Enables 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 npm
      1
      MIT
    • F
      license
      Not graded
      quality
      D
      maintenance
      Provides comprehensive sports intelligence including live scores, standings, schedules, betting odds, news, highlights, and more via SSE transport.
      -