NBA Odds MCP Server について
NBA Odds MCP Server は、The Odds API を通じて NBA の賭けオッズと関連分析を提供します。現在および過去のオッズに加え、シミュレーション、傾向分析、グラフ、トリビア機能を備えています。
主な機能
- 01試合と優勝オッズの取得
- 02試合とシーズン結果のシミュレーション
- 03ライン変動とベッティング傾向の分析
- 04SQLite への過去オッズの保存
- 05オッズのグラフと比較図の生成
- 06NBA トリビアクイズの実施
活用シーン
- 01試合や優勝の現在オッズの確認
- 02チームやイベントの過去のオッズ変動の調査
- 03グラフによるブックメーカー間のオッズ比較
- 04NBA トリビアクイズの実施
MCP 対応
オッズ取得、シミュレーション、分析、可視化、トリビアのツールを MCP クライアントに公開します。オッズは The Odds API から取得し、過去データは SQLite に保存します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
NBA オッズ MCP サーバー
The Odds API から NBA バスケットボールのオッズデータを提供する Model Context Protocol(MCP)サーバーです。
概要
この MCP サーバーを使用すると、Claude などの LLM(大規模言語モデル)がリアルタイムの NBA オッズデータにアクセスできます。次の情報を提供します。
- オッズ付きの現在の NBA 試合
- NBA チャンピオンシップ優勝オッズ
- チーム別の試合スケジュール
- NBA リーグの基本情報
このサーバーは、LLM と 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 埋め込み:チャートは、LLM の応答に表示できるよう、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 サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。