sportwizzard について
sportwizzardは、複数のスポーツブックやDFSアプリのライブオッズ、選手プロップ、統計、+EVの機会、アービトラージを照会するMCPサーバーです。ホスト型HTTPとローカルstdioに対応し、AIエージェントなどのMCPクライアントから利用できます。
主な機能
- 01複数ブックのライブオッズ
- 02選手・チーム統計
- 03+EV機会とアービトラージ
- 04試合・シーズン市場
- 05データスナップショットのダウンロード
活用シーン
- 01試合や選手の価格比較
- 02+EVやアービトラージ機会の発見
- 03選手・チーム統計の取得
- 04ライブボードを分析用に出力
MCP 対応
ホスト型HTTPまたはローカルstdio経由で、ライブオッズ、統計、エッジ、アービトラージ、参照データを扱う20個の読み取り専用ツールを公開します。クライアントはSportWizzard APIキーで認証します。
設定
リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。
https://mcp.sportwizzard.com/mcpclaude mcp add --transport http com-sportwizzard-sportwizzard https://mcp.sportwizzard.com/mcp{"mcpServers":{"com-sportwizzard-sportwizzard":{"type":"http","url":"https://mcp.sportwizzard.com/mcp"}}}Cursor で開く{"servers":{"com-sportwizzard-sportwizzard":{"type":"http","url":"https://mcp.sportwizzard.com/mcp"}}}VS Code で開く{"mcpServers":{"com-sportwizzard-sportwizzard":{"type":"http","url":"https://mcp.sportwizzard.com/mcp"}}}{"mcpServers":{"com-sportwizzard-sportwizzard":{"serverUrl":"https://mcp.sportwizzard.com/mcp"}}}コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。
https://mcp.sportwizzard.com/mcp認証が必要ツール
詳細
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_URL | https://api.sportwizzard.com | API のベース 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
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。