mcpField
S
sportwizzard

sportwizzard

リモート
sportwizzard.comゲーム・エンタメ02 日前に更新
リポジトリ公式サイト

sportwizzard について

sportwizzardは、複数のスポーツブックやDFSアプリのライブオッズ、選手プロップ、統計、+EVの機会、アービトラージを照会するMCPサーバーです。ホスト型HTTPとローカルstdioに対応し、AIエージェントなどのMCPクライアントから利用できます。

主な機能

  1. 01複数ブックのライブオッズ
  2. 02選手・チーム統計
  3. 03+EV機会とアービトラージ
  4. 04試合・シーズン市場
  5. 05データスナップショットのダウンロード

活用シーン

  1. 01試合や選手の価格比較
  2. 02+EVやアービトラージ機会の発見
  3. 03選手・チーム統計の取得
  4. 04ライブボードを分析用に出力

MCP 対応

ホスト型HTTPまたはローカルstdio経由で、ライブオッズ、統計、エッジ、アービトラージ、参照データを扱う20個の読み取り専用ツールを公開します。クライアントはSportWizzard APIキーで認証します。

設定

リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。

エンドポイントhttps://mcp.sportwizzard.com/mcp
インストールコマンドをコピー
Claude CodeTerminal
Cursor.cursor/mcp.json
VS Code.vscode/mcp.json
Claude Desktopclaude_desktop_config.json
Windsurf~/.codeium/windsurf/mcp_config.json

コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。

すべてのエンドポイント
Streamable HTTPhttps://mcp.sportwizzard.com/mcp認証が必要
パッケージ
npmsportwizzard-mcp0.1.4

ツール

詳細

SportWizzard MCP サーバー

MCP 対応の AI エージェント(Claude Code、Claude Desktop、Codex、Cursor など)から、35 以上のスポーツブックおよび DFS アプリの**ライブスポーツベッティングデータ(オッズ、選手プロップ、+EV エッジ、アービトラージ、統計、参照データ)**を照会できます。

SportWizzard REST v1 API を利用する読み取り専用ツールが 20 個あります。ホスト型リモートサーバー(インストール不要)と、npx で起動する stdio サーバーの 2 つの方法で利用できます。無料の API キーは https://sportwizzard.com/account から取得できます(API Keys タブ。カード情報は不要です)。

ホスト型(推奨 — インストール不要)

claude mcp add --transport http sportwizzard https://mcp.sportwizzard.com/mcp \
  --header "Authorization: Bearer sw_live_your_api_key_here"
codex mcp add sportwizzard --transport http --url https://mcp.sportwizzard.com/mcp \
  --header "Authorization: Bearer sw_live_your_api_key_here"

ホスト型サーバーは薄いプロキシです。キーは SportWizzard API に転送され、認証とレート制限はそこで適用されます。両方のトランスポートで、20 個すべてのツールを利用できます。(ホスト型サーバーの download_snapshot は、CDN のダウンロード URL と、エージェントがローカルで実行するための実行可能なコマンドを返します。stdio ではファイルを直接書き込みます。)

認証済みのライブツール呼び出しが成功すると、ベストエフォートでアカウント利用状況の レシートが送信されます。計測リクエストには、ツールの引数や結果データは含まれません。 ホスト型の download_snapshot では、ツールが返されたダウンロード URL に到達可能であることを確認するため、 CDN の HEAD チェックが成功すると利用回数に含まれます。HEAD チェックに失敗した場合は含まれません。

stdio(ローカル)

npx -y sportwizzard-mcp

Claude Code:

claude mcp add sportwizzard -e SPORTWIZZARD_API_KEY=sw_live_your_api_key_here -- npx -y sportwizzard-mcp

Claude Desktop(claude_desktop_config.json — macOS:~/Library/Application Support/Claude/、Windows:%APPDATA%\Claude\):

{
  "mcpServers": {
    "sportwizzard": {
      "command": "npx",
      "args": ["-y", "sportwizzard-mcp"],
      "env": { "SPORTWIZZARD_API_KEY": "sw_live_your_api_key_here" }
    }
  }
}
モックモード(キー不要、ネットワーク不要)

SPORTWIZZARD_MOCK=1 を設定すると、用意されたサンプルレスポンスが返されます。キーを取得する前にインテグレーションを接続する際に便利です。

設定

環境変数デフォルト用途
SPORTWIZZARD_API_KEY(なし)X-Api-Key として送信する API キーです。
SPORTWIZZARD_BASE_URLhttps://api.sportwizzard.comAPI のベース URL を上書きします。
SPORTWIZZARD_MOCK(オフ)1 = 用意されたサンプルデータを使用し、ネットワークに接続しません。

ツール

ツール機能
list_events / get_eventイベント/試合予定 — リーグ、チーム、ステータス、時間で絞り込みます。天候、ラインナップ、先発予想投手を含む詳細情報を取得します。
get_event_statsボックススコア:1 つのイベントにおける全選手の成績とチームの結果です。
get_odds / get_event_odds / get_player_odds / get_team_oddsイベント、選手、チーム、スポーツブック、マーケット、リーグで絞り込んだ現在のオッズです。get_odds では scope も指定できます。event(試合マーケット)、season(シーズン通年の先物)、tournament(ゴルフ/テニスの優勝者予想)を指定できます。指定を省略するとすべてが対象になります。
get_edgesデビッグ後のフェアマーケットと比較した +EV エッジ(リーグ、ソース、最小エッジで絞り込み可能)です。
get_arbitrage各賭けの対象と賭け金の割合を含むアービトラージの機会です(2 通り/3 通り)。
list_players / list_teams / get_player_stats / get_team_stats参照データと、シーズン別/過去の統計です。
get_player_game_logs試合ごとの成績データを一括で取得します。モデルのトレーニング用フィードです。
download_snapshotライブボード全体をディスクに保存します(gzip で数十 MB)。include_history: true を指定すると、すべての選択肢の priceHistory も取得します(スキーマは同じで、料金は一律 5 クレジット、通常は 1 クレジットです)。
list_sportsbooks / list_leagues / list_markets / statusソース ID、対象リーグ、対応マーケットタイプを確認し、顧客向け API の利用可否を確認します。
get_account_usageプランのティア、レート制限、月間使用量を取得します。

すべてのレスポンスは { success, data, nextCursor, meta } エンベロープを使用します。nextCursor が含まれる場合、エージェントが続けて取得できるよう、ツールは _paging ヒントを追加します。

フューチャーズ(シーズン単位のマーケット)

get_odds に scope=season を指定すると、シーズン全体のフューチャーズ(ディビジョン/カンファレンス/優勝者、各賞のオッズ、チームの勝利数、シーズン成績のリーダー、シーズン全体の選手プロップ)が返されます。これらは互いに独立した3つの軸で表されます。

  • marketScope — マーケットの基準となる対象です。SEASON または TOURNAMENT です。通常の試合の行では完全に省略されます。
  • period — その基準内での期間です。REG_SEASON(レギュラーシーズン終了時に精算)または FULL(プレーオフまで対象)です。
  • segment — 競技内のどの区分かを表します。AFC_EAST、NL、SEC、…などです。マーケットが区分単位の場合にのみ存在し、重要な意味を持ちます。NFLの32件すべての DIVISION_WINNER 選択肢は、シーズンを基準とする1つの eventId を共有するため、segment がなければ、8つのディビジョンごとの競争ではなく、32チームが競う1つのレースとして扱われます。

注意事項:優勝者/各賞のマーケットはカテゴリ型です(競争相手ごとに YES の選択肢が1つあり、teamSide: "NONE" で、通常は NO 側がありません)。フューチャーズの行にある eventStartTime はシーズンの基準日/精算日であり、キックオフ時刻ではありません。各ブックのある競技のフューチャーズは、同じシーズンの eventId を共有します。また、フューチャーズは get_edges / get_arbitrage の対象から意図的に除外されています(デビギングやエッジの計算には含まれません)。スコープは完全一致で照合されます。season に TOURNAMENT は含まれず、無効な値を指定すると、有効な値を示す HTTP 400 が返されます。

ソースから

git clone https://github.com/sportwizzard/sportwizzard-mcp.git
cd sportwizzard-mcp && npm install && npm run build
SPORTWIZZARD_MOCK=1 node dist/index.js   # or set SPORTWIZZARD_API_KEY

メンテナー向け

この README は npm パッケージに含まれるため、内部ホスト名、キー、非公開のメモを記載しないでください(このリポジトリは公開されています)。

構成。 src/index.ts は stdio エントリ(dist/index.js、npm の bin)です。src/httpServer.ts はホスト型 Streamable HTTP エントリ(ステートレスで、POSTごとに1リクエスト。Host の許可リストとベアラーキーを処理)です。src/auth.ts は呼び出し元のキーを API に照らして検証し、キャッシュして、キーごとのレート制限を適用します。src/tools.ts と src/server.ts はツールを定義して登録します。src/client.ts は REST クライアントで、src/mock.ts は SPORTWIZZARD_MOCK=1 のデータです。 tests/stdio-smoke.mjs と tests/http-smoke.mjs は、ループバックのモック API を使ったエンドツーエンドのスモークテストです(認証情報は不要で、本番環境への呼び出しはありません)。

ビルドと検証(PR チェックの .github/workflows/ci.yml では、同じパックおよびスモークテストに加えて、プッシュを行わないコンテナビルドを実行します):

npm ci --ignore-scripts && npm run build
release_dir="$(mktemp -d)"
npm pack --ignore-scripts --pack-destination "$release_dir"
npm install --prefix "$release_dir/consumer" --omit=dev --ignore-scripts --no-audit --no-fund "$release_dir"/*.tgz
npm run smoke -- "$release_dir/consumer/node_modules/sportwizzard-mcp/dist/index.js" "$release_dir/smoke.json" "$release_dir"/*.tgz
npm run smoke:http -- "$release_dir/consumer/node_modules/sportwizzard-mcp/dist/httpServer.js" "$release_dir/http-smoke.json"
rm -rf "$release_dir"

stdio スモークテストでは、tools/list、get_odds scope=season の転送、履歴付きのスナップショットダウンロードを確認します。HTTP スモークテストでは、/healthz、キーの拒否、Host の許可リスト、tools/list、キーの転送、正常な SIGTERM 終了を確認します。どちらもトランスポートとパッケージングを検証するものであり、ライブデータの品質を検証するものではありません。

リリース。

  • ホスト型サーバー:publish-container.yml は、main へのプッシュごとに SHA タグ付きの GHCR イメージを公開します。デプロイは、そのダイジェストが Ops の deployment/releases/api.yaml の行で昇格された場合にのみ行われます。この行で配置、制限、認証情報の参照先を管理します。
  • npm パッケージ:package.json の version を更新し、npm install --package-lock-only を実行して、server.json を同期し、main にマージした後、手動の Publish npm package ワークフロー(publish-npm.yml)を実行します。ビルドは1回だけ行い、パックした tarball をスモークテストした後、npm のトラステッドパブリッシング(OIDC。npm トークンは不要)を使って、その同一のバイト列を公開します。npm への公開によって、ホスト型コンテナは更新されません。

注意事項。 ホスト型ランタイムの設定は MCP_HTTP_PORT(デフォルトは 8091)、MCP_ALLOWED_HOSTS、AUTH_CACHE_TTL_MS、RATE_LIMIT_PER_MIN、SPORTWIZZARD_SNAPSHOT_URL、SPORTWIZZARD_SNAPSHOT_HISTORY_URL と、上記の顧客設定です。download_snapshot は stdio ではファイルを書き込みますが、ホスト型サーバーでは CDN URL とコマンドを返します。~/.npmrc の内容を表示したり、コミットしたりしないでください。未対応の作業は、このリポジトリの GitHub issue に登録してください。

ライセンス

MIT © SportWizzard LLC

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。