使用说明
NBA赔率MCP服务器
一个模型上下文协议(MCP)服务器,从赔率API提供NBA篮球赔率数据。
概述
此MCP服务器使克劳德等LLM(大型语言模型)能够访问实时NBA赔率数据。它提供了以下信息:
- 当前NBA比赛的投注赔率
- NBA总冠军赔率
- 团队特定的比赛时间表
- NBA联赛基本信息
服务器充当LLM和The Odds API之间的桥梁,处理身份验证、数据格式化和错误处理。
需求
- Python 3.10或更高版本
- Odds API密钥(包含在服务器中)
- MCP兼容客户端(克劳德桌面等)
- 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桌面
-
编辑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" ] } } } -
重新启动克劳德桌面
测试服务器
问以下问题:
- “目前NBA总冠军的赔率是多少?”
- “给我看即将到来的NBA比赛”
- “哪支球队更有可能赢得NBA总冠军?”
- “告诉我今天发生的NBA比赛”
- “模拟湖人队和凯尔特人队之间的比赛”
可用工具
服务器提供以下工具:
NBA基本数据工具
-
get_nba_info() -提供有关NBA篮球类别的基本信息
-
get_nba_games(市场、地区) -获取当前NBA比赛的赔率
- 参数:
- 市场:逗号分隔的市场列表(h2h、点差、总计)
- regions:逗号分隔的地区列表(美国、英国、欧盟、澳大利亚)
- 参数:
-
get_nba_championship_odds() -获取当前NBA总冠军的赔率
-
get_nba_team_starts(团队名称) -获取特定球队即将到来的比赛
- 参数:
- team_name:NBA球队的名称
- 参数:
仿真工具
-
simulate_nba_game(本队、客场) -使用AI/ML模型模拟NBA比赛
- 参数:
- home_team:主队名称
- away_team:客队名称
- 参数:
-
模拟障碍物() -使用1000个赛季模拟来模拟NBA总冠军的赔率
-
模拟原因维护() -模拟NBA赛季的剩余时间,包括季后赛
-
get_simulation_acuracy() -获取之前游戏模拟的准确性统计数据
博彩分析工具
-
get_betting_recommendations(max_remmendations) -根据赔率变动和历史趋势获得明智的投注建议
- 参数:
- max_references:要返回的最大推荐数(默认值:3)
- 参数:
-
分析团队绩效(team_name) -分析团队在点差(ATS)下的表现
- 参数:
- team_name:要分析的NBA球队的名称
- 参数:
-
analyze_odds_movement(事件id,天) -分析特定游戏的投注赔率如何变化
- 参数:
- event_id:事件标识符
- 天数:回顾的天数(默认值:7)
- 参数:
NBA琐事游戏工具
-
start_nba_quiz(类别、难度、长度) -开始一个新的NBA智力问答游戏
- 参数:
- category:问题类别(随机、nba_history、current_nba、nba_stats、nba_rules、锦标赛)
- 难度:难度等级(新手、老将、全明星、名人堂、混合)
- length:问题数(默认值:5)
- 参数:
-
answer_quiz_question(quiz_id,答案) -在主动知识问答中回答一个问题
- 参数:
- quiz_id:活动测验的id
- answer:用户选择的答案
- 参数:
-
get_daily_nba_question() -获取NBA日常琐事问题
-
answer_daily_nba_问题(答案) -回答NBA日常琐事问题
- 参数:
- answer:用户选择的答案
- 参数:
-
get_nba_quiz_stats() -获取NBA知识问答比赛的统计数据
直线运动分析工具
-
analyze_reverse_line_move(天) -根据历史赔率数据分析反向线移动模式
- 参数:
- days:要分析的历史数据的天数(默认值:30)
- 参数:
-
analyze_sharp_money_action(天数,阈值) -识别具有潜在高额金钱动作的游戏
- 参数:
- 天数:要分析的天数(默认值:30)
- 阈值:要考虑的最小概率变化(默认值:3%)
- 参数:
-
calculate_betting_strategy_roi(movement_type,天) -根据线移动计算投注策略的历史投资回报率
- 参数:
- movement_type:要分析的移动类型(反向、急剧)
- 天数:要分析的天数(默认值:90)
- 参数:
-
create_line_movement_chart(游戏id、团队名称、天数) -创建一个图表,显示线条移动的概率影响
- 参数:
- game_id:要分析的可选特定游戏(使用“帮助”查看可用游戏)
- team_name:要筛选的可选团队名称
- days:如果没有特定的比赛/球队,需要分析的天数
- 参数:
赔率跟踪和分析工具
-
分析阻碍因素趋势(团队名称,天数) -分析一支球队的冠军赔率随时间的变化
- 参数:
- team_name:要分析的NBA球队的名称
- days:回顾的天数(默认值:30)
- 参数:
-
get_team_odds_history(团队名称,天数) -获取特定球队的历史冠军赔率数据
- 参数:
- team_name:NBA球队的名称
- days:要检索的历史数据的天数(默认值:30)
- 参数:
-
get_adds_tracking_status() -获取数据库中跟踪的赔率数据的统计信息
可视化工具
-
生成team_odds_chart(team_name,天数) -创建一个图表,显示一支球队的冠军赔率走势
- 参数:
- team_name:要绘制图表的NBA球队的名称
- days:要包含在图表中的天数(默认值:30)
- 参数:
-
generate_teams_comparisonchart(团队名称,天数) -创建一个图表,比较多支球队的冠军赔率
- 参数:
- team_names:以逗号分隔的团队名称列表
- days:要包含在图表中的天数(默认值:30)
- 参数:
-
generate_game_odds_chart(事件id) -创建显示特定游戏赔率变动的图表
- 参数:
- event_id:要绘制图表的游戏/事件的id
- 参数:
-
generate_bookmaker_comparisonchart(球队名称,天数) -创建比较不同博彩公司赔率的图表
- 参数:
- team_name:要分析的NBA球队的名称
- days:要包含在图表中的天数(默认值:30)
- 参数:
数据存储和可视化
SQLite数据库
服务器使用SQLite存储历史赔率数据,实现趋势分析:
- 冠军赔率表:跟踪随时间推移的球队冠军赔率
- 游戏赔率表:跟踪个人游戏赔率和线移动
- 自动存储:所有API请求自动将数据存储在数据库中
可视化系统
该服务器包括一个由Matplotlib支持的强大可视化系统:
- 图表目录:所有生成的图表都保存到
charts文件夹 - Base64嵌入:图表以base64编码的图像返回,以在LLM响应中显示
- 图表类型:
- 球队赔率趋势图
- 多团队比较图
- 游戏赔率走势图
- 庄家比较图
数据分析
该系统提供赔率数据的自动分析:
- 趋势检测(改善、下降、稳定)
- 庄家差异分析
- 历史赔率走势模式
- 显著赔率变化的视觉指标
api信息
此服务器使用The Odds API(https://the-odds-api.com/)具有以下端点:
- GET/ports-列出所有运动类别
- GET/storts/{sport_key}/rods-获取特定运动的赔率
- GET/storts/{sport_key}/events/{event_id}/rods-获取特定事件的赔率
API密钥包含在服务器配置中。
故障排除
- 服务器未启动:确保安装了Python 3.10+并激活了虚拟环境
- MCP客户端未连接:检查配置文件路径和格式
- API错误:验证API密钥有效性并检查速率限制
许可证
这个项目是为了教育目的。
致谢
- 提供体育博彩数据的赔率API
- 服务器框架的模型上下文协议(MCP)