用途
mcp-sports-hub 是一个统一的 MCP 服务器,把 42 个体育数据 API 提供商聚合到一个进程中,对外提供约 410 个工具,覆盖 70 多种体育项目。官方定位是让用户通过一个 MCP 服务器即可获取 NBA 比分、英超赔率、网球交手记录等数据,适用于任何 LLM(Claude、GPT、Gemini、Llama、Mistral 等)。
主要能力
- 聚合 42 个体育 API 提供商,约 410 个工具,覆盖比分、统计、赔率、电子竞技、大学体育、国际象棋、赛车(F1/MotoGP/NASCAR)、拳击、澳式足球(AFL)、EuroLeague 等。
- 19 个提供商无需 API Key,约 165 个工具,开箱即用;23 个提供商提供免费层,需注册(免费、无需信用卡),约 245 个工具。
- 各提供商独立工作,仅为实际使用的提供商配置 API Key;缺少 Key 不会阻止服务器启动,仅在调用对应工具时返回错误。
- 所有工具遵循 {provider}_{action} 命名(如 espn_get_scoreboard 风格)。
- 工具带 fields 参数,可传入逗号分隔的键名列表并在任意深度匹配,过滤过宽响应;匹配不到时会说明并列出所见的顶级键。响应还有体积上限,超限时截短最长的列表并提示丢弃了多少项。
- 所有 GET 响应默认在内存中缓存 60 秒;并发相同请求会合并为一次上游调用;404/410 会短暂缓存(SPORTS_HUB_NEGATIVE_CACHE_TTL 默认 30s)。
- 429 与 5xx 响应按指数退避重试,遵守上游 Retry-After;客户端错误(408/425/429 之外的 4xx)与超时不重试。
- 除工具外还暴露 MCP 资源:sportshub://providers(提供商目录)、sportshub://presets(预设)、sportshub://provider/{key}(单个提供商详情);以及提示词:whats-on-today、compare-odds {event}、motorsport-weekend {series}、league-standings {league}、team-deep-dive {team}、f1-race {season} {round}。
- 所有工具标注 readOnly / idempotent,客户端可跳过确认提示。
使用方式
要求 Node.js 18+ 与 npm。
- 快速运行(npx,无需安装):该服务器已发布在官方 MCP Registry,标识为 io.github.lacausecrypto/sports-hub,支持该注册表的 MCP 客户端可自动发现并安装。
- 传输模式:stdio(默认,适用于 Claude Desktop、Cursor 等)与 HTTP/SSE(远程客户端、Web 应用、自定义集成)。HTTP 模式提供 POST /mcp(Streamable HTTP with SSE)与 GET /health(健康检查),默认端口 3000,支持 CORS 与基于 mcp-session-id 的多客户端会话管理。
- 提供商过滤:默认只加载免费预设;可用 SPORTS_HUB_PROVIDERS=free 只加载 19 个无 Key 提供商。
- 客户端配置:给出 macOS(~/Library/Application Support/Claude/claude_desktop_config.json)、Windows(%APPDATA%\Claude\claude_desktop_config.json)、Linux(~/.config/claude/claude_desktop_config.json)的配置文件位置,以及 Claude Code(CLI)与 .claude/settings.json 的示例。仅为需要的提供商填写 env,纯免费提供商可省略 env。
- 托管:仓库包含 Dockerfile 与 smithery.yaml,可在 Smithery 上容器托管;托管端点提供无 Key 免费预设,客户端零配置连接。
- 扩展:分叉仓库后,新建 src/providers/my-api.ts 导出 register(server: McpServer),工具名加前缀(如 myapi_get_something),在 src/index.ts 中导入并调用,然后 npm run build 验证。
适用场景
需要在 LLM 或 MCP 客户端中以统一接口查询多项目、多提供商体育数据(比分、统计、赔率、电竞、赛车等)的开发者和用户。
限制与安全
- 需要 Node.js 18+ 与 npm。
- HTTP 模式默认绑定 127.0.0.1(回环);设置 SPORTS_HUB_HOST=0.0.0.0 会把无鉴权的 MCP 端点暴露给整个网络,任何能访问的人都能使用已配置的 API Key;DNS-rebinding 保护仅阻止浏览器来源攻击,不阻止直连客户端;仅在带鉴权/TLS 的反向代理后暴露。SPORTS_HUB_CORS_ORIGINS 必须列出明确来源,字面量 * 会被拒绝。
- SPORTS_HUB_DNS_REBINDING_PROTECTION=0 会禁用 Host/Origin 检查(默认开启),仅在服务器位于掌控路由的可信代理之后时设置。
- SPORTS_HUB_STATELESS=1 适合无粘性路由的多副本场景,但每次调用都要付出构建成本,单实例建议使用会话。
- 构建会话对 165 工具免费预设约耗时 90 ms,每客户端仅付一次;空闲会话会被回收。
- API Key 需使用者自行注册,具体收费与价格资料未提供。