关于 NBA Odds MCP Server
NBA Odds MCP Server 通过 The Odds API 提供 NBA 下注赔率及相关分析。它将当前与历史赔率工具结合起来,并提供模拟、趋势分析、图表和问答功能。
主要功能
- 01获取比赛和冠军赔率
- 02模拟比赛和赛季结果
- 03分析盘口变化和下注趋势
- 04在 SQLite 中保存历史赔率
- 05生成赔率图表和对比图
- 06进行 NBA 知识问答
适用场景
- 01查看比赛或冠军的当前赔率
- 02探索球队或赛事的历史赔率变化
- 03通过图表比较博彩公司赔率
- 04进行 NBA 知识问答
MCP 相关
向 MCP 客户端提供赔率查询、模拟、分析、可视化和问答工具。赔率来自 The Odds API,历史数据保存在 SQLite 中。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
NBA 赔率 MCP 服务
一个从 The Odds API 提供 NBA 篮球赔率数据的模型上下文协议(MCP)服务。
概述
此 MCP 服务让 Claude 等大模型能够访问实时 NBA 赔率数据。它提供以下信息:
- 当前 NBA 比赛及其投注赔率
- NBA 冠军得主赔率
- 特定球队的比赛日程
- NBA 联盟基本信息
该服务充当大模型与 The Odds API 之间的桥梁,负责处理身份验证、数据格式化和错误处理。
要求
- Python 3.10 或更高版本
- The Odds API 密钥(已包含在服务中)
- 兼容 MCP 的客户端(Claude Desktop 等)
- 用于可视化的 Matplotlib、NumPy 和 Pillow
安装
-
设置 Python 3.10 或更高版本
# Using pyenv (already set up) pyenv local 3.10.13 -
创建并激活虚拟环境
python -m venv venv source venv/bin/activate # On Windows: venv\Scripts\activate -
安装依赖项
pip install "mcp[cli]" httpx
用法
运行服务
# Activate the virtual environment
source venv/bin/activate
# Run the server
python nba_odds_server.py
自动化数据收集
要构建有意义的历史数据库以进行趋势分析,请设置自动化数据收集:
-
在项目目录中创建数据收集脚本(
odds_collector.py),用于收集和存储赔率数据 -
设置 cron 作业,以定期运行此脚本:
# Daily collection at 7:30 AM
30 7 * * * cd /Users/nikhil/Documents/MCP_test && /Users/nikhil/Documents/MCP_test/venv/bin/python odds_collector.py >> /Users/nikhil/Documents/MCP_test/collection_log.txt 2>&1
# Collection at 3:30 PM (for game days)
30 15 * * * cd /Users/nikhil/Documents/MCP_test && /Users/nikhil/Documents/MCP_test/venv/bin/python odds_collector.py >> /Users/nikhil/Documents/MCP_test/collection_log.txt 2>&1
# Collection at 8:30 PM (for game days and post-game)
30 20 * * * cd /Users/nikhil/Documents/MCP_test && /Users/nikhil/Documents/MCP_test/venv/bin/python odds_collector.py >> /Users/nikhil/Documents/MCP_test/collection_log.txt 2>&1
- 建议的收集频率:
- 每日基准数据收集(早晨)
- 比赛日赛前数据收集(下午)
- 赛后数据收集,用于分析市场反应(晚上)
配置 Claude Desktop
-
编辑 Claude Desktop 配置文件:
~/Library/Application Support/Claude/claude_desktop_config.json -
添加以下配置:
{ "mcpServers": { "nba-odds": { "command": "/Users/nikhil/Documents/MCP_test/venv/bin/python", "args": [ "/Users/nikhil/Documents/MCP_test/nba_odds_server.py" ] } } } -
重启 Claude Desktop
测试服务
尝试询问以下问题:
- “当前 NBA 冠军赔率是多少?”
- “显示即将举行的 NBA 比赛”
- “哪支球队最有希望赢得 NBA 冠军?”
- “告诉我今天有哪些 NBA 比赛”
- “模拟一场湖人队与凯尔特人队的比赛”
可用工具
该服务提供以下工具:
NBA 基本数据工具
-
get_nba_info() - 提供 NBA 篮球类别的基本信息
-
get_nba_games(markets, regions) - 获取当前 NBA 比赛及其赔率
- 参数:
- markets:以逗号分隔的市场列表(h2h、spreads、totals)
- regions:以逗号分隔的地区列表(us、uk、eu、au)
- 参数:
-
get_nba_championship_odds() - 获取当前 NBA 冠军得主赔率
-
get_nba_team_stats(team_name) - 获取特定球队即将举行的比赛
- 参数:
- team_name:NBA 球队名称
- 参数:
模拟工具
-
simulate_nba_game(home_team, away_team) - 使用 AI/ML 模型模拟一场 NBA 比赛
- 参数:
- home_team:主队名称
- away_team:客队名称
- 参数:
-
simulate_championship_odds() - 通过 1000 次赛季模拟计算 NBA 冠军赔率
-
simulate_season_remainder() - 模拟 NBA 赛季剩余赛程,包括季后赛
-
get_simulation_accuracy() - 获取以往比赛模拟的准确率统计数据
投注分析工具
-
get_betting_recommendations(max_recommendations) - 根据赔率变动和历史趋势获取智能投注建议
- 参数:
- max_recommendations:返回的建议数量上限(默认值:3)
- 参数:
-
analyze_team_ats_performance(team_name) - 分析球队对让分盘(ATS)的表现
- 参数:
- team_name:要分析的 NBA 球队名称
- 参数:
-
analyze_odds_movement(event_id, days) - 分析特定比赛的投注赔率变动情况
- 参数:
- event_id:赛事标识符
- days:回溯的天数(默认值:7)
- 参数:
NBA 竞猜游戏工具
-
start_nba_quiz(category, difficulty, length) - 开始一场新的 NBA 竞猜游戏
- 参数:
- category:问题类别(random、nba_history、current_nba、nba_stats、nba_rules、championships)
- difficulty:难度等级(rookie、veteran、all-star、hall-of-fame、mixed)
- length:问题数量(默认值:5)
- 参数:
-
answer_quiz_question(quiz_id, answer) - 回答正在进行的竞猜中的问题
- 参数:
- quiz_id:当前竞猜的 ID
- answer:用户选择的答案
- 参数:
-
get_daily_nba_question() - 获取每日 NBA 竞猜问题
-
answer_daily_nba_question(answer) - 回答每日 NBA 竞猜问题
- 参数:
- answer:用户选择的答案
- 参数:
-
get_nba_quiz_stats() - 获取 NBA 竞猜游戏的表现统计数据
盘口变动分析工具
-
analyze_reverse_line_movement(days) - 根据历史赔率数据分析反向盘口变动模式
- 参数:
- days:要分析的历史数据天数(默认值:30)
- 参数:
-
analyze_sharp_money_action(days, threshold) - 找出可能存在专业资金投注的比赛
- 参数:
- days:要分析的天数(默认值:30)
- threshold:纳入考虑的最低概率变化(默认值:3%)
- 参数:
-
calculate_betting_strategy_roi(movement_type, days) - 根据盘口变动计算投注策略的历史 ROI
- 参数:
- movement_type:要分析的变动类型(reverse、sharp)
- days:要分析的天数(默认值:90)
- 参数:
-
create_line_movement_chart(game_id, team_name, days) - 创建显示盘口变动对概率影响的图表
- 参数:
- game_id:要分析的特定比赛(可选;输入 "help" 查看可用比赛)
- team_name:要筛选的球队名称(可选)
- days:未指定特定比赛或球队时要分析的天数
- 参数:
赔率追踪与分析工具
-
analyze_championship_odds_trend(team_name, days) - 分析某支球队的夺冠赔率随时间的变化
- 参数:
- team_name:要分析的 NBA 球队名称
- days:回溯天数(默认值:30)
- 参数:
-
get_team_odds_history(team_name, days) - 获取特定球队的历史夺冠赔率数据
- 参数:
- team_name:NBA 球队名称
- days:要检索的历史数据天数(默认值:30)
- 参数:
-
get_odds_tracking_stats() - 获取数据库中追踪的赔率数据统计信息
可视化工具
-
generate_team_odds_chart(team_name, days) - 创建显示某支球队夺冠赔率变化的图表
- 参数:
- team_name:要绘制图表的 NBA 球队名称
- days:图表包含的天数(默认值:30)
- 参数:
-
generate_teams_comparison_chart(team_names, days) - 创建比较多支球队夺冠赔率的图表
- 参数:
- team_names:要比较的球队名称列表,以逗号分隔
- days:图表包含的天数(默认值:30)
- 参数:
-
generate_game_odds_chart(event_id) - 创建显示特定比赛赔率变化的图表
- 参数:
- event_id:要绘制图表的比赛/赛事 ID
- 参数:
-
generate_bookmaker_comparison_chart(team_name, days) - 创建比较不同博彩公司赔率的图表
- 参数:
- team_name:要分析的 NBA 球队名称
- days:图表包含的天数(默认值:30)
- 参数:
数据存储与可视化
SQLite 数据库
该服务使用 SQLite 存储历史赔率数据,以便进行趋势分析:
- 冠军赔率表:追踪球队夺冠赔率随时间的变化
- 比赛赔率表:追踪单场比赛赔率和盘口变动
- 自动存储:所有 API 请求都会自动将数据存入数据库
可视化系统
该服务包含由 Matplotlib 驱动的强大可视化系统:
- 图表目录:所有生成的图表都保存在
charts文件夹中 - Base64 嵌入:图表以 Base64 编码的图像形式返回,以便在大模型响应中显示
- 图表类型:
- 团队赔率趋势图
- 多支球队对比图
- 比赛赔率变动图
- 博彩公司对比图
数据分析
该系统可自动分析赔率数据:
- 趋势检测(上升、下降、稳定)
- 博彩公司差异分析
- 历史赔率变动模式
- 赔率显著变化的可视化指标
API 信息
该服务使用 The Odds API (https://the-odds-api.com/),并调用以下端点:
- GET /sports - 列出所有体育类别
- GET /sports/{sport_key}/odds - 获取特定体育项目的赔率
- GET /sports/{sport_key}/events/{event_id}/odds - 获取特定赛事的赔率
API 密钥已包含在服务配置中。
故障排除
- 服务无法启动:确保已安装 Python 3.10+,并已激活虚拟环境
- MCP 客户端无法连接:检查配置文件的路径和格式
- API 错误:确认 API 密钥有效,并检查是否受到速率限制
许可证
本项目仅用于教育目的。
致谢
- 感谢 The Odds API 提供体育博彩数据
- 感谢 Model Context Protocol(MCP)提供服务框架
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。