
Sports Hub
io.github.lacausecrypto由 GitHub 账号 lacausecrypto 发布v1.4.1更新于 Oct 27, 2026
42 sports API providers, 410 tools: scores, stats, odds, esports, chess, motorsport & more.
概览
把 42 个体育数据源聚合为一个 MCP 服务器,为助手提供 410 个工具,覆盖比分、数据、赔率、电竞、国际象棋和赛车。
- 可以做什么
- 查询 70 多个项目的实时比分、积分榜、赛程、技术统计和球队球员数据
- 从多个赔率数据源获取投注赔率与盘口
- 查询电竞赛事与 Dota 2 分析,以及国际象棋棋手资料、排行榜和每日谜题
- 读取 F1、MotoGP、Formula E 和 NASCAR 的赛事结果与实时遥测
- 以资源形式浏览数据源与预设目录,并运行今日赛事、赔率对比等预设工作流
- 适用场景
- 适合希望用一个本地服务器回答体育类问题(赛程、赛果、积分榜、赔率或电竞数据),而不必分别接入多个体育 API 的场景。默认免费预设无需注册即可使用,便于先试用再添加密钥。
- 运行要求
- 通过 npx 或全局 npm 安装以 stdio 在本地运行,需要 Node.js 18+ 和 npm。可选的免费 API 密钥通过环境变量提供,例如 API_SPORTS_KEY、PANDASCORE_TOKEN 和 THE_ODDS_API_KEY;SPORTS_HUB_PROVIDERS 用于选择加载哪些数据源。需要能访问上游体育 API 的网络。
安装
在 SourceWeft 中
- 打开 控制台中的 Sports Hub,将其添加到工作区。
- 为需要使用其工具的对话启用该服务。
Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。
其他 MCP 客户端
参照 仓库 中的启动说明。
README
Sports Hub MCP Server
[npm version] [npm downloads] [CI] [License]
[42 Providers] [410 Tools] [MCP Registry]
[macOS] [Linux] [Windows] [Node.js] [TypeScript]
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
NBA scores, Premier League odds, Tennis H2H — all from a single MCP server.
Compatibility
Platforms
MCP Clients
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.
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.
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)
npm global
From source
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.)
HTTP/SSE (remote clients, web apps, custom integrations)
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_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:
Windows (PowerShell):
Windows (cmd):
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.
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.
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
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)
Or in .claude/settings.json:
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:
Presets
Cache
All GET responses are cached in memory for 60 seconds by default. This protects against duplicate calls and rate limit waste. Configure with:
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.
In Claude Desktop config:
Tool Naming
All tools follow {provider}_{action}:
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
Each 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_something - Import + call in
src/index.ts npm run buildto verify- Submit a PR
License
MIT
来源:README.md,提交 5ecd395
工具
0版本历史
2- v1.4.1最新Oct 14, 2026
- v1.3.0Sep 16, 2026
评分
已满足适用检查项的 50%
该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。
- 近 30 天内可连通25 分
请保持端点能够响应 MCP 握手;SourceWeft 每 30 天探测一次。
- 已声明认证方式10 分
请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。
- 已列出工具15 分
请让服务器在无凭据时响应 tools/list,或发布可在沙箱中无凭据启动的软件包。
- 描述必需15 分
- 图标10 分
- 文档15 分
- 许可证10 分