CAT
/MCP
SkillsMCPMarketplacesDigestToolsAdvertise

This week in Claude

Every Monday: Claude Code, Agent SDK, MCP, and the Anthropic platform moves worth your time.

Skills by Category
Frontend DevelopmentBackend & APIsTesting & QASecurityDevOps & CI/CDGit & Pull RequestsDocumentationCode Review & QualityAI & Agent BuildingSkill Development
MCP Servers by Category
Sales & MarketingWeb & Browser AutomationDatabasesAI & LLM ToolsCloud & InfrastructureCommunication & MessagingDeveloper ToolsDesign & CreativeDocuments & KnowledgeSearch & Web Crawling
Marketplaces by Category
AI Agents & OrchestrationLLM IntegrationDevelopment ToolsFrontend & UIBackend & APIsDatabasesTesting & Code QualityDevOps & CloudSecurity & ComplianceGit & Version Control

Cross AI Tools

Discover Claude Code plugins, extensions, and tools. Automatically updated directory of Anthropic Claude AI marketplaces with development tools, productivity plugins, and integrations.

Resources

  • Browse Skills
  • Browse MCP Servers
  • Browse Marketplaces
  • Plugins Reference

Community

  • About
  • Tools
  • Feedback
  • Privacy Policy
  • Advertise

Built for the Claude Code community with Claude Code by @mertduzgun

Independent project, not affiliated with Anthropic

Sports Hub

lacausecrypto/mcp-sports-hub
7authSTDIOregistry active
Summary

This is a sports data aggregator that unifies 32 different sports APIs into 319 MCP tools. Twelve providers work immediately without keys, including ESPN, NHL, MLB, and F1 endpoints. The rest offer free tiers with registration: PandaScore for esports, API-Football for soccer leagues, The Odds API for betting lines across 70+ sports, and College Football Data for NCAA stats. You can load only the keyless providers with an environment flag, or register incrementally as you need specific datasets. It runs on stdio transport and works with Claude, Cursor, Continue, and other MCP clients. Useful when you need live scores, historical stats, odds data, or esports coverage without managing individual API integrations yourself.

CodeRabbit
CodeRabbit
AI writes the code. CodeRabbit catches the slop.
Try For Free →
Keep your Mac awake
Keep your Mac awake
Keep your Mac awake while Claude Code and 40+ AI agents run. Sleeps when they're idle.
One time payment $9 →
Context.devContext.dev
Context.dev
Integrate web data into your AI product. One API to scrape website & brand data.
Get API Key Now →
Make your agent a DeFi expert
Make your agent a DeFi expert
Agent, run crypto. Access onchain data & trade routes via 1inch.
Install now →
Make money from your Skills
Make money from your Skills
On Capafy, your Skill runs online 24/7 as an agent product, and you get paid every time someone uses it.
Start earning →
AppSignal
AppSignal
Monitor with ease. Code with confidence.
Start Free Trial →
CodeRabbit
CodeRabbit
AI writes the code. CodeRabbit catches the slop.
Try For Free →
Keep your Mac awake
Keep your Mac awake
Keep your Mac awake while Claude Code and 40+ AI agents run. Sleeps when they're idle.
One time payment $9 →
Context.devContext.dev
Context.dev
Integrate web data into your AI product. One API to scrape website & brand data.
Get API Key Now →
Make your agent a DeFi expert
Make your agent a DeFi expert
Agent, run crypto. Access onchain data & trade routes via 1inch.
Install now →
Make money from your Skills
Make money from your Skills
On Capafy, your Skill runs online 24/7 as an agent product, and you get paid every time someone uses it.
Start earning →
AppSignal
AppSignal
Monitor with ease. Code with confidence.
Start Free Trial →

Sports Hub

Sports Hub MCP Server

npm version npm downloads CI License

41 Providers 396 Tools MCP Registry

macOS Linux Windows Node.js TypeScript

A unified MCP server that aggregates 41 sports API providers into a single service. 396 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.

Compatibility

Platforms

OSStatus
macOSSupported
LinuxSupported
WindowsSupported

MCP Clients

ClientStatusNotes
Claude DesktopSupportedAnthropic's desktop app
Claude Code (CLI)Supportedclaude mcp add
CursorSupportedBuilt-in MCP
Windsurf (Codeium)SupportedBuilt-in MCP
Continue.devSupportedOpen-source AI assistant
ClineSupportedVS Code extension
ZedSupportedBuilt-in MCP
ChatGPT DesktopSupportedOpenAI desktop app
Gemini CLISupportedGoogle CLI
Any MCP clientSupportedStdio + 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 (32)

Works instantly — no API key, no signup (19 providers, ~165 tools)

These providers work out of the box. Just build and run.

PrefixProviderCoverageToolsNotes
espn_ESPN20+ sports10Unofficial — can break
nhl_NHL Web APINHL13Undocumented but stable
mlb_MLB Stats APIMLB/MiLB13Official, undocumented
f1_Jolpica F1Formula 1 (1950+)13Community-maintained
openf1_OpenF1F1 live telemetry12Live race weekends only
openliga_OpenLigaDBGerman football10Bundesliga focus
sportsdb_TheSportsDB40+ sports13Test key auto, watermarks
ncaa_NCAA APICollege sports85 req/s rate limit
sportsrc_SportSRCFootball, basketball, MMA + streams7V1 free, V2 needs paid key
lichess_LichessChess (users, top players, broadcasts, daily puzzle)7~20 req/sec/IP
chesscom_Chess.comChess (profiles, stats, clubs, leaderboards)7Throttles on parallel calls
squiggle_SquiggleAFL (Australian Football League)6Honest UA required
motogp_MotoGPMotoGP/Moto2/Moto3/MotoE7Unofficial — can break
formulae_Formula EFormula E7Unofficial — can break
nascar_NASCARNASCAR Cup/Xfinity/Truck3Unofficial CDN feeds
opendota_OpenDotaDota 2 analytics1160 req/min, 50k/mo
sleeper_SleeperNFL fantasy10~1000 req/min
euroleague_EuroLeagueEuroLeague + EuroCup basketball6Keyless feeds
footballdata_uk_Football-Data.co.ukHistorical football results + odds2CSV, 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 (22 providers, ~231 tools)

Registration takes 1-2 minutes. All keys are free.

PrefixProviderCoverageToolsFree LimitGet Key
pandascore_PandaScoreEsports (13 titles)141000 req/hrSign up
apifootball_API-FootballSoccer (960+ leagues)15100 req/daySign up
apisports_API-Sports9 sports10100 req/day/sportSign up
apitennis_API-TennisTennis (ATP/WTA/ITF)12100 req/daySign up
bdl_BallDontLieNBA/NFL/MLB/NHL10Basic tierSign up
cricket_CricketDataCricket10100 req/daySign up
entitycricket_Entity SportCricket (250+ comps)12Free planSign up
footballdata_football-data.orgSoccer (12 leagues)1110 req/minSign up
sportmonks_SportmonksSoccer123000 req/hrSign up
sportsdata_SportsDataIO9 sports121000 req/moSign up
odds_The Odds API70+ sports odds9500 req/moSign up
oddsio_Odds-API.io34 sports odds10Free accountSign up
sgo_Sports Game Odds55+ leagues odds10TrialSign up
mma_Fighting TomatoesMMA8200 req/moSign up
livegolf_Live Golf APIGolf (PGA/DP World)8Free tierSign up
isports_iSportsAPIFootball/Basketball (Asia)10Free tierSign up
sportdevs_SportDevsRugby/Volleyball/Handball12TrialSign up
msf_MySportsFeedsNFL/NBA/MLB/NHL12Free non-commercialSign up
golfcourse_GolfCourseAPI30K+ golf courses6300 req/daySign up
cfbd_College Football DataNCAA football141000 req/moSign up
boxing_Boxing Data APIPro boxing (fighters/bouts/titles)8100 req/moSign up
highlightly_HighlightlyMulti-sport highlights + odds6100 req/daySign 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})

Supports CORS, session management via mcp-session-id header. Default port: 3000.

⚠ 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

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

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 41 providers (396 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

PresetProvidersToolsNeeds 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)~165No
allall 41 providers396Yes (for key-required providers)
chesslichess, chesscom14No
us-majorespn, nhl, mlb, ncaa, cfbd, bdl, msf, nascar, sleeper~93Some
soccerespn, apifootball, footballdata, sportmonks, openliga, sportsrc, footballdatauk, highlightly~73Some
f1f1, openf125No
motorsportf1, openf1, motogp, formulae, nascar~42No
esportspandascore, opendota25Some
oddsodds, oddsio, sgo29Yes
cricketcricket, entitycricket22Yes
golflivegolf, golfcourse14Some

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)

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 396 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 41 providers
├── shared/
│   ├── http.ts                 # fetchJson, fetchText, buildUrl, toolResult, errorResult
│   ├── catalog.ts              # provider catalog + presets (single source of truth)
│   ├── annotations.ts          # central read-only annotations + titles
│   ├── 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
    ├── 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

Featured
CodeRabbit
CodeRabbit
AI writes the code. CodeRabbit catches the slop.
Try For Free →
Keep your Mac awake
Keep your Mac awake
Keep your Mac awake while Claude Code and 40+ AI agents run. Sleeps when they're idle.
One time payment $9 →
Context.devContext.dev
Context.dev
Integrate web data into your AI product. One API to scrape website & brand data.
Get API Key Now →
Make your agent a DeFi expert
Make your agent a DeFi expert
Agent, run crypto. Access onchain data & trade routes via 1inch.
Install now →
Make money from your Skills
Make money from your Skills
On Capafy, your Skill runs online 24/7 as an agent product, and you get paid every time someone uses it.
Start earning →
AppSignal
AppSignal
Monitor with ease. Code with confidence.
Start Free Trial →

Configuration

SPORTS_HUB_PROVIDERS

Comma-separated provider names or preset (free, us-major, soccer, f1, esports, odds, cricket, golf). Omit for all 29 providers.

API_SPORTS_KEYsecret

API-Sports key (free at api-sports.io)

PANDASCORE_TOKENsecret

PandaScore esports token (free at pandascore.co)

THE_ODDS_API_KEYsecret

The Odds API key (free at the-odds-api.com)

Registryactive
Packagemcp-sports-hub
TransportSTDIO
AuthRequired
UpdatedApr 2, 2026
View on GitHub