NBA赔率数据服务器

一个提供实时NBA赔率数据的模型上下文协议(MCP)服务器,连接大型语言模型与The Odds API,支持赔率查询、比赛模拟和投注分析。

  • by nikhilkichili
  • Python
  • 本地部署
  • 4 星标
  • 更新于
在 GitHub 查看 nikhilkichili/nba-analytics-mcp

使用说明

NBA赔率MCP服务器

一个模型上下文协议(MCP)服务器,从赔率API提供NBA篮球赔率数据。

概述

此MCP服务器使克劳德等LLM(大型语言模型)能够访问实时NBA赔率数据。它提供了以下信息:

  • 当前NBA比赛的投注赔率
  • NBA总冠军赔率
  • 团队特定的比赛时间表
  • NBA联赛基本信息

服务器充当LLM和The Odds API之间的桥梁,处理身份验证、数据格式化和错误处理。

需求

  • Python 3.10或更高版本
  • Odds API密钥(包含在服务器中)
  • MCP兼容客户端(克劳德桌面等)
  • Matplotlib、NumPy和Pillow用于可视化

安装

  1. 设置Python 3.10或更高版本

    # Using pyenv (already set up)
    pyenv local 3.10.13
    
  2. 创建并激活虚拟环境

    python -m venv venv
    source venv/bin/activate  # On Windows: venv\Scripts\activate
    
  3. 安装依赖项

    pip install "mcp[cli]" httpx
    

用法

运行服务器

# Activate the virtual environment
source venv/bin/activate

# Run the server
python nba_odds_server.py

自动化数据收集

要构建一个有意义的历史数据库进行趋势分析,请设置自动数据收集:

  1. 创建数据收集脚本(odds_collector.py)在收集和存储赔率数据的项目目录中

  2. 设置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
  1. 建议收集频率:
    • 每日基线采集(上午)
    • 比赛日赛前集合(下午)
    • 赛后市场反应集锦(晚间)

配置Claude桌面

  1. 编辑Claude Desktop配置文件:

    ~/Library/Application Support/Claude/claude_desktop_config.json
    
  2. 添加以下配置:

    {
      "mcpServers": {
        "nba-odds": {
          "command": "/Users/nikhil/Documents/MCP_test/venv/bin/python",
          "args": [
            "/Users/nikhil/Documents/MCP_test/nba_odds_server.py"
          ]
        }
      }
    }
    
  3. 重新启动克劳德桌面

测试服务器

问以下问题:

  • “目前NBA总冠军的赔率是多少?”
  • “给我看即将到来的NBA比赛”
  • “哪支球队更有可能赢得NBA总冠军?”
  • “告诉我今天发生的NBA比赛”
  • “模拟湖人队和凯尔特人队之间的比赛”

可用工具

服务器提供以下工具:

NBA基本数据工具

  1. get_nba_info() -提供有关NBA篮球类别的基本信息

  2. get_nba_games(市场、地区) -获取当前NBA比赛的赔率

    • 参数:
      • 市场:逗号分隔的市场列表(h2h、点差、总计)
      • regions:逗号分隔的地区列表(美国、英国、欧盟、澳大利亚)
  3. get_nba_championship_odds() -获取当前NBA总冠军的赔率

  4. get_nba_team_starts(团队名称) -获取特定球队即将到来的比赛

    • 参数:
      • team_name:NBA球队的名称

仿真工具

  1. simulate_nba_game(本队、客场) -使用AI/ML模型模拟NBA比赛

    • 参数:
      • home_team:主队名称
      • away_team:客队名称
  2. 模拟障碍物() -使用1000个赛季模拟来模拟NBA总冠军的赔率

  3. 模拟原因维护() -模拟NBA赛季的剩余时间,包括季后赛

  4. get_simulation_acuracy() -获取之前游戏模拟的准确性统计数据

博彩分析工具

  1. get_betting_recommendations(max_remmendations) -根据赔率变动和历史趋势获得明智的投注建议

    • 参数:
      • max_references:要返回的最大推荐数(默认值:3)
  2. 分析团队绩效(team_name) -分析团队在点差(ATS)下的表现

    • 参数:
      • team_name:要分析的NBA球队的名称
  3. analyze_odds_movement(事件id,天) -分析特定游戏的投注赔率如何变化

    • 参数:
      • event_id:事件标识符
      • 天数:回顾的天数(默认值:7)

NBA琐事游戏工具

  1. start_nba_quiz(类别、难度、长度) -开始一个新的NBA智力问答游戏

    • 参数:
      • category:问题类别(随机、nba_history、current_nba、nba_stats、nba_rules、锦标赛)
      • 难度:难度等级(新手、老将、全明星、名人堂、混合)
      • length:问题数(默认值:5)
  2. answer_quiz_question(quiz_id,答案) -在主动知识问答中回答一个问题

    • 参数:
      • quiz_id:活动测验的id
      • answer:用户选择的答案
  3. get_daily_nba_question() -获取NBA日常琐事问题

  4. answer_daily_nba_问题(答案) -回答NBA日常琐事问题

    • 参数:
      • answer:用户选择的答案
  5. get_nba_quiz_stats() -获取NBA知识问答比赛的统计数据

直线运动分析工具

  1. analyze_reverse_line_move(天) -根据历史赔率数据分析反向线移动模式

    • 参数:
      • days:要分析的历史数据的天数(默认值:30)
  2. analyze_sharp_money_action(天数,阈值) -识别具有潜在高额金钱动作的游戏

    • 参数:
      • 天数:要分析的天数(默认值:30)
      • 阈值:要考虑的最小概率变化(默认值:3%)
  3. calculate_betting_strategy_roi(movement_type,天) -根据线移动计算投注策略的历史投资回报率

    • 参数:
      • movement_type:要分析的移动类型(反向、急剧)
      • 天数:要分析的天数(默认值:90)
  4. create_line_movement_chart(游戏id、团队名称、天数) -创建一个图表,显示线条移动的概率影响

    • 参数:
      • game_id:要分析的可选特定游戏(使用“帮助”查看可用游戏)
      • team_name:要筛选的可选团队名称
      • days:如果没有特定的比赛/球队,需要分析的天数

赔率跟踪和分析工具

  1. 分析阻碍因素趋势(团队名称,天数) -分析一支球队的冠军赔率随时间的变化

    • 参数:
      • team_name:要分析的NBA球队的名称
      • days:回顾的天数(默认值:30)
  2. get_team_odds_history(团队名称,天数) -获取特定球队的历史冠军赔率数据

    • 参数:
      • team_name:NBA球队的名称
      • days:要检索的历史数据的天数(默认值:30)
  3. get_adds_tracking_status() -获取数据库中跟踪的赔率数据的统计信息

可视化工具

  1. 生成team_odds_chart(team_name,天数) -创建一个图表,显示一支球队的冠军赔率走势

    • 参数:
      • team_name:要绘制图表的NBA球队的名称
      • days:要包含在图表中的天数(默认值:30)
  2. generate_teams_comparisonchart(团队名称,天数) -创建一个图表,比较多支球队的冠军赔率

    • 参数:
      • team_names:以逗号分隔的团队名称列表
      • days:要包含在图表中的天数(默认值:30)
  3. generate_game_odds_chart(事件id) -创建显示特定游戏赔率变动的图表

    • 参数:
      • event_id:要绘制图表的游戏/事件的id
  4. 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)