使用说明
赔率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_rbispitcher_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_tdsplayer_receptions,player_reception_yds,player_sacks,player_tackles
NHL:国家冰球联盟
player_points,player_goals,player_assists,player_shots_on_goalplayer_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 - 文件已更新:
.envsrc/config.jsdist/config.jssrc/mcp-server.jsdist/mcp-server.jshttp-mcp-server.jshttp-mcp-server-fixed.jsgenspark-mcp-server.jstest-tool.jssrc/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有速率限制。该系统设计用于处理:
- 标准速率限制,并附带适当的错误信息
- 当超出限制时的优雅降级
- 针对瞬时故障的重试逻辑
做出贡献
在对项目进行更改时:
- 更新API密钥
.env文件 - 确保所有服务器实现均已更新
- 测试所有MCP工具的功能
- 在本README文件中更新任何新功能或更改
许可证
本项目仅供教育和开发用途。如需商业使用,请参阅The Odds API的服务条款了解相关要求。
支持
对于The Odds API集成方面的问题,请检查:
- 赔率API文档:https://the-odds-api.com/liveapi/guides/v4/
- API服务可用性状态页面
- 使用指南中的速率限制文档