体育赔率API集成

该项目提供与The Odds API的全面集成,用于获取体育博彩赔率和球员道具数据,主要针对MLB比赛,并包含多种服务器实现和MCP工具。

  • by hmoham019
  • JavaScript
  • 本地部署
  • 更新于
在 GitHub 查看 hmoham019/Sports-Odds-Mcp

使用说明

赔率API集成项目

概述

这个项目提供了与The Odds API(https://the-odds-api.com/)的全面集成,用于获取体育博彩赔率和球员属性数据。该系统主要针对MLB(美国职业棒球大联盟)比赛设计,并包含多个服务器实现和MCP(模型上下文协议)工具。

主要特点

  • 实时体育赔率获取包括美国职业棒球大联盟(MLB)、美国职业篮球联赛(NBA)、美国国家橄榄球联盟(NFL)、国家冰球联盟(NHL)以及足球在内的多项体育赛事的当前赔率
  • 玩家属性集成专门用于获取球员专项投注数据(如本垒打、三振等)的工具
  • 多服务器实现针对不同部署场景的多种服务器配置
  • MCP协议支持为与模型上下文协议配合使用而设计的工具,用于人工智能集成
  • DraftKings 集成对DraftKings体育博彩数据的特定支持

配置

API密钥配置

该项目需要一个The Odds API密钥。从以下链接获取您的免费API密钥: 赔率API。

环境变量

创建一个 .env 根目录中的文件:

ODDS_API_KEY=your_api_key_here
PORT=10000
NODE_ENV=production

重要的永远不要把你 .env 将文件提交到版本控制系统。使用 env.example 作为模板。

可用的运动项目

该系统支持以下运动:

  • baseball_mlb - 美国职业棒球大联盟
  • basketball_nba - 全国篮球协会(或译为:美国国家篮球协会,但通常简称“NBA”)
  • basketball_wnba - 女子国家篮球协会(或更常译为“美国女子职业篮球联赛”,但“Women's National Basketball Association”直译即为此,具体翻译可能根据上下文调整)
  • americanfootball_nfl - 美国国家橄榄球联盟
  • icehockey_nhl - 国家冰球联盟
  • soccer_epl - 英格兰足球超级联赛

MCP 工具

1. 获取体育赔率

获取指定体育项目的当前赔率。

参数:

  • sport (必填):运动关键词(例如,“baseball_mlb”(美国职业棒球大联盟)、“americanfootball_nfl”(美国国家橄榄球联盟)、“icehockey_nhl”(国家冰球联盟))
  • markets (可选):市场类型数组(默认:["h2h"])
  • regions (可选):地理区域(默认:“us”)

可进入市场:

  • 标准: h2h (金钱线), spreads, totals, outrights
  • NFL 季节(或四分之一赛季,根据上下文具体理解): h2h_q1, h2h_q2, h2h_q3, h2h_q4, spreads_q1-4, totals_q1-4
  • NHL的比赛节次: h2h_p1, h2h_p2, h2h_p3, spreads_p1-3, totals_p1-3

用法:

{
  "sport": "americanfootball_nfl",
  "markets": ["h2h", "spreads", "totals", "h2h_q1", "spreads_q1"],
  "regions": "us"
}

2. 获取玩家属性

获取美国职业棒球大联盟(MLB)、美国女子职业篮球联赛(WNBA)、美国国家橄榄球联盟(NFL)和国家冰球联盟(NHL)比赛的玩家投注提案。

参数:

  • sport (必填):运动键(“baseball_mlb”(美国职业棒球大联盟)、“basketball_wnba”(美国女子职业篮球联赛)、“americanfootball_nfl”(美国国家橄榄球联盟)、“icehockey_nhl”(国家冰球联盟))
  • markets (可选):投注市场数组(针对特定运动的默认设置)
  • team_filter (可选):按团队名称筛选

按运动项目划分的可用市场:

美国职业棒球大联盟(MLB):

  • batter_home_runs, batter_hits, batter_total_bases, batter_rbis
  • pitcher_strikeouts, pitcher_walks, pitcher_hits_allowed

美国女子职业篮球联赛(WNBA):

  • player_points, player_rebounds, player_assists, player_blocks, player_steals

NFL(美国国家橄榄球联盟)

  • player_pass_yds, player_pass_tds, player_rush_yds, player_rush_tds
  • player_receptions, player_reception_yds, player_sacks, player_tackles

NHL:国家冰球联盟

  • player_points, player_goals, player_assists, player_shots_on_goal
  • player_blocked_shots, player_total_saves

用法:

{
  "sport": "americanfootball_nfl",
  "markets": ["player_pass_yds", "player_rush_yds"],
  "team_filter": "Chiefs"
}

服务器实现

1. 标准MCP服务器(src/mcp-server.js)

  • 使用stdio传输的标准MCP服务器
  • 支持赔率和玩家投注工具
  • 设计用于命令行使用

2. HTTP MCP 服务器(http-mcp-server.js)

  • 基于HTTP的MCP服务器
  • 无状态操作
  • 已启用CORS以实现网页集成
  • 端口:3002(可配置)

3. HTTP MCP 服务器已修复(http-mcp-server-fixed.js)

  • 增强型HTTP MCP服务器,具备会话管理功能
  • 支持持久连接
  • 更好的错误处理
  • SSE(服务器发送事件)支持

4. Genspark MCP 服务器(genspark-mcp-server.js)

  • 针对Genspark集成的专用实现
  • 自定义工具配置
  • 增强的日志记录和调试功能

API集成

基本URL

https://api.the-odds-api.com/v4

主要终点指标(或:所用的主要评估终点)

  • /sports/{sport}/odds - 获取所有比赛的赔率
  • /sports/{sport}/events - 获取即将举行的活动
  • /sports/{sport}/events/{event_id}/odds - 获取特定事件的赔率

博彩公司焦点

该系统针对DraftKings的数据进行了优化,但也可以配置为支持The Odds API的其他博彩公司使用。

最近更改

API密钥更新(最新)

  • 日期当前部署
  • 改变已将所有API密钥引用从多个旧密钥更新为新的统一密钥: a5a760342df8774d16f2e6aed9aaeffe
  • 文件已更新:
    • .env
    • src/config.js
    • dist/config.js
    • src/mcp-server.js
    • dist/mcp-server.js
    • http-mcp-server.js
    • http-mcp-server-fixed.js
    • genspark-mcp-server.js
    • test-tool.js
    • src/apiService.js (已经拿到了正确的钥匙)

安全增强

  • 将多个API密钥合并为一个密钥
  • API密钥配置的环境变量支持
  • 从多个位置移除了硬编码的密钥

执行项目

先决条件

  • Node.js(v14或更高版本)
  • npm 或 yarn 包管理器

安装

npm install

启动HTTP服务器

node http-mcp-server.js

测试

node test-tool.js

健康检查

curl http://localhost:3002/health

错误处理

该系统包括以下方面的全面错误处理:

  • API调用限制
  • 无效的API响应
  • 网络连接问题
  • 游戏数据缺失或无效
  • 博彩公司数据不可用

速率限制

赔率API有速率限制。该系统设计用于处理:

  • 标准速率限制,并附带适当的错误信息
  • 当超出限制时的优雅降级
  • 针对瞬时故障的重试逻辑

做出贡献

在对项目进行更改时:

  1. 更新API密钥 .env 文件
  2. 确保所有服务器实现均已更新
  3. 测试所有MCP工具的功能
  4. 在本README文件中更新任何新功能或更改

许可证

本项目仅供教育和开发用途。如需商业使用,请参阅The Odds API的服务条款了解相关要求。

支持

对于The Odds API集成方面的问题,请检查:

  • 赔率API文档:https://the-odds-api.com/liveapi/guides/v4/
  • API服务可用性状态页面
  • 使用指南中的速率限制文档