SportAPI について
SportAPIは、ライブと試合前の試合、スコア、統計、オッズを検索するMCPサーバーです。認証情報なしで明示ラベル付きのデモデータを使え、SportAPIキーを設定すると最新データを取得できます。
主な機能
- 01スポーツデータ用の読み取り専用ツール11種
- 02ライブと試合前の試合検索
- 03試合詳細、統計、オッズの表示
- 04チームと注目試合の検索
- 05更新間隔に沿ったスナップショットキャッシュ
- 06オッズ分析用プロンプト2種
活用シーン
- 01ライブスコアとオッズの確認
- 02今後の試合とマーケットの検索
- 03試合マーケットとインプライド確率の比較
MCP 対応
11種の読み取り専用ツールと2つのプロンプトを通じて、MCPクライアントにSportAPIのスポーツデータを提供します。既定ではstdioで動作し、Streamable HTTPも選択できます。キーなしでデモ応答を利用できます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
uvx sportapi-mcpSPORTAPI_KEYシークレットSportAPI key, sent in the Package header. Leave unset for demo data.SPORTAPI_BASE_URLYour personal SportAPI base URL, e.g. https://YOUR_API_DOMAIN. Leave unset for demo data.SPORTAPI_LANGUAGEResponse language code enabled for your key.ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。
ツール
11掲載時のツール一覧 · 2 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| esports | boolean | いいえ | 従来のスポーツではなく、eスポーツを対象にします(SportAPI cybersport mode)。 |
| line_type | enum | いいえ | 'live' = 進行中の試合、'prematch' = まだ始まっていない試合。live | prematch |
詳細
sportapi-mcp
AI アシスタント(Claude Desktop、Claude Code、Cursor、VS Code、Windsurf、その他の MCP クライアント)が、SportAPI からライブおよび試合前の試合、スコア、ライブ統計、ベッティングオッズを検索できる MCP サーバーです。API キーなしで、デモデータを使ってすぐに実行できます。
claude mcp add sportapi -- uvx sportapi-mcp
次のように尋ねてください:「現在ライブ中のサッカーの試合はどれで、どちらが有利ですか?」
この MCP サーバーは無料で、MIT ライセンスのもとで提供されています。一方、背後にある SportAPI データサービスは商用製品です。ライブデータを利用するには個人用 API キーが必要です(取得方法)。キーがない場合、すべてのツールは SportAPI ドキュメントのサンプルレスポンスを返し、すべての結果にその旨が示されます。
特長
- 読み取り専用ツールを11個搭載し、Sport Line API を網羅します。スポーツ、ナビゲーションメニュー、国、トーナメント、ライブおよび試合前の試合一覧、試合カレンダー、すべてのマーケットを含む試合の詳細、チーム検索、注目の試合、注目の選手権、キーのアカウントステータスに対応します。
- トークン効率の高い出力:空のフィールドを省いたコンパクトな JSON を返し、オッズはマーケットごとに1行で表示します(
"W1 1.525 | X 5.08 | W2 6.15")。詳細な試合データには200を超えるマーケットが含まれる場合があるため、get_matchはデフォルトで15件を返し、marketsフィルター(["1X2", "Total"])を指定できます。 - 設計段階から負荷に配慮:すべてのリクエストはスナップショットキャッシュを通り、ドキュメントに記載された最小更新間隔を守り、同じデータに対するリクエストが重複して送信されることはありません。アシスタントが何度呼び出しても、ツールがポーリングしたり、複数の試合にリクエストを並列送信したりすることはありません。
- セットアップ不要のデモモード:
"source": "demo"と明示するため、アシスタントがスナップショットをライブデータとして提示することはありません。 - 対処につながるエラー:キーの有効期限切れ、サブスクリプション対象外のスポーツ、終了した試合、誤ったラインタイプの
game_idについて、アシスタントが対処できる簡潔な説明を返します。 - 2つのプロンプト:スポーツごとのライブベッティング概要と、1試合のマーケット比較(インプライド確率、ブックメーカーのマージン、公正オッズ)を提供します。
- 公式の SportAPI Python クライアントと公式の MCP Python SDKを使用しています。デフォルトは stdio で、Streamable HTTP にも対応しています。
質問できること
デモモードでの会話例(回答は一部省略)。アシスタントがツールを自動で選択します。
「現在、ライブのサッカーで何が起きていますか?」
→ list_live_matches(sport_id=1)
SportAPI ドキュメントのデモデータであり、ライブデータではありません。 サッカーの39試合が進行中です。 Garuda Darwin 0:1 Darwin Olympic(76分、NPL Northern Territory):Darwin Olympicの勝利がほぼ確実で、オッズは1.064です。Ikonnect FA U19 0:1 Obosa U19(33分):Obosaが1.40で優勢、引き分けは4.65です。 Caucaia U20 — Floresta EC U20は2分時点で無得点で、Florestaが2.112でやや優勢です。
「Arsenal対Coventry:ゴールラインのオッズはどうなっていますか?」
→ get_match(game_id=746146992, line_type="live", markets=["Total"])
56分時点でArsenalが3:0でリードしています(xG 1.45対0.03、枠内シュート4対0)。合計ゴール数:3.5超えが1.23、 4.5超えが2.09/4.5未満が1.81、5.5超えが4.41です。市場では4点目が予想されていますが、 5点目には否定的です。
「Manchester Cityの次の試合はいつで、オッズはいくらですか?」
→ search_matches(text="Manchester")、次にget_match(game_id=730321837, line_type="prematch", markets=["1X2", "Total"])
Manchester City — Bournemouth、Premier League、2026年8月23日 13:00 UTC。1X2:City 1.525、 引き分け5.08、Bournemouth 6.15。2.5ゴール超え1.39、2.5ゴール未満2.72。
「今週末の注目試合は何ですか?」 → top_matches(line_type="prematch", include_odds=True)
「SportAPIキーは有効ですか?今週は何回リクエストしましたか?」 → account_status()(ライブモード)
キーを設定すると、同じ質問を、サブスクリプション対象のあらゆるスポーツについて最新データで確認できます。
インストール
このサーバーはPythonパッケージです(Python 3.10以降)。最も簡単な実行方法は
uvを使うことです。uvxがダウンロードして隔離環境で実行するため、インストール作業は不要です。
uvx sportapi-mcp # starts the stdio server; MCP clients launch it for you
または、pipでインストールして、uvx sportapi-mcpの代わりにsportapi-mcpコマンドを使用します。
pip install sportapi-mcp
以下のenvブロックは任意です。省略するとデモモードで起動します。
Claude Desktop
ワンクリックでインストール:最新リリースからsportapi-mcp.mcpbをダウンロードして開くと、Claude Desktopが拡張機能をインストールし、任意のキーとベースURLを尋ねます(デモデータを使う場合は空欄のままにします)。バンドルのソースはmcpb/にあります。
または、claude_desktop_config.jsonを編集します(Settings → Developer → Edit Config)。
{
"mcpServers": {
"sportapi": {
"command": "uvx",
"args": ["sportapi-mcp"],
"env": {
"SPORTAPI_KEY": "YOUR_API_KEY",
"SPORTAPI_BASE_URL": "https://YOUR_API_DOMAIN"
}
}
}
}
Claude Desktopを再起動すると、SportAPIのツールがツールメニューに表示されます。
Claude Code
# demo mode
claude mcp add sportapi -- uvx sportapi-mcp
# live data, available in all your projects
claude mcp add sportapi --scope user \
-e SPORTAPI_KEY=YOUR_API_KEY -e SPORTAPI_BASE_URL=https://YOUR_API_DOMAIN \
-- uvx sportapi-mcp
Cursor
~/.cursor/mcp.json(すべてのプロジェクト)または.cursor/mcp.json(1つのプロジェクト)に追加します。
{
"mcpServers": {
"sportapi": {
"command": "uvx",
"args": ["sportapi-mcp"],
"env": {
"SPORTAPI_KEY": "YOUR_API_KEY",
"SPORTAPI_BASE_URL": "https://YOUR_API_DOMAIN"
}
}
}
}
VS Code
.vscode/mcp.jsonに追加します。VS Codeはキーを一度だけ尋ね、安全に保存します。
{
"inputs": [
{
"type": "promptString",
"id": "sportapi-key",
"description": "SportAPI key",
"password": true
}
],
"servers": {
"sportapi": {
"type": "stdio",
"command": "uvx",
"args": ["sportapi-mcp"],
"env": {
"SPORTAPI_KEY": "${input:sportapi-key}",
"SPORTAPI_BASE_URL": "https://YOUR_API_DOMAIN"
}
}
}
}
Windsurfおよびその他のクライアント
stdioサーバーを起動できるMCPクライアントであれば、どれでも動作します。コマンドはuvx、引数は
sportapi-mcp、環境変数は下記に記載されています。Windsurfの場合は、Cursor向けに示されているmcpServersブロックを~/.codeium/windsurf/mcp_config.jsonに追加します。
Streamable HTTPとDocker
sportapi-mcp --transport streamable-http --port 8000 # http://127.0.0.1:8000/mcp
docker build -t sportapi-mcp .
docker run -i --rm -e SPORTAPI_KEY -e SPORTAPI_BASE_URL sportapi-mcp # stdio
docker run --rm -p 8000:8000 sportapi-mcp --transport streamable-http --host 0.0.0.0
HTTPトランスポート自体には認証機能がありません。アクセスできる人は誰でもキーを使用できるため、localhost上または独自のゲートウェイの背後で実行してください。
設定
| 変数 | 必須 | 説明 |
|---|---|---|
SPORTAPI_KEY | ライブデータの場合 | API キーです。サーバーはこのキーを Package HTTP ヘッダーでのみ送信し、URL やツールの出力には含めません。 |
SPORTAPI_BASE_URL | ライブデータの場合 | キーとともに発行された個人用の API ベース URL です(https://YOUR_API_DOMAIN)。 |
SPORTAPI_LANGUAGE | いいえ | 応答言語コードです。デフォルトは en です。この言語がキーで有効になっている必要があります。言語をご覧ください。デモデータは英語のみです。 |
ライブデータを使用する場合は SPORTAPI_KEY と SPORTAPI_BASE_URL の両方を設定してください。デモモードを使用する場合は、どちらも設定しないでください。
sportapi-mcp --demo を指定すると、キーが設定されていてもデモモードが強制されます。
キーは、そのキーで承認されたサーバーの IP アドレスまたはサイトに紐付けられます
(認証とアクセス)。
通常、MCP サーバーはお使いのコンピューターで実行されるため、そのアドレスがキーで許可されていることを確認してください。
account_status で SportAPI が認識している IP アドレスを確認できます。
ツール
| ツール | 確認できる内容 | SportAPI メソッド |
|---|---|---|
list_sports | 現在 Live/Prematch の試合があるスポーツと、その試合数 | sports |
get_menu | ID と件数を含む、スポーツ → 国 → トーナメントのツリー | menu |
list_countries | 1 つのスポーツで試合がある国 | countries |
list_tournaments | 1 つのスポーツと国のトーナメント | tournaments |
list_live_matches | スポーツまたはトーナメントのライブ試合:スコア、ピリオド、分、主要オッズ。スポーツを指定しない場合は、ライブ中のスポーツと上位のライブ試合 | events |
list_prematch_matches | 開催予定の試合:「Top 50」、トーナメント、全試合一覧、またはカレンダー(今後 2/4/6/12 時間、今日から 5 日先まで) | events、カレンダー |
get_match | 1 試合の情報:スコア、ライブ統計、すべてのマーケットとそのオッズ、サブイベント(前後半、コーナー、カードなど) | event |
search_matches | チーム名または参加者名で Live と Prematch の試合を検索 | search |
top_matches | 人気の高い試合を最大 10 件(全スポーツ、または Prematch の 1 つのスポーツ) | topmatches、toplist |
top_championships | 試合数を含む、人気の高い選手権を最大 12 件 | topchampionships |
account_status | デモまたはライブの状態。キーがある場合は、有効期限、スポーツ、言語、アクセスモード、過去 7 日間のリクエスト数も確認できます | account |
プロンプト:live_betting_overview(sport) と compare_match_markets(match, markets)。
出力と API データ(10 進オッズ、ブロックされた選択肢、マーケット ID、サブイベント、
ライブ統計)の対応については、データモデルのオッズ、
試合、および
ライブ統計をご覧ください。
get_match(include_pointers=true) を指定すると、各選択肢に oc_pointer が追加されます。これは
SportAPI Coupon API などのベット
配置システムで使用されるコードです。
デモモードの対象範囲
デモモードでは、SportAPI のドキュメントにある英語のサンプルレスポンス全体を提供します(2026 年 8 月~10 月のスナップショット)。
list_sports、get_menu、top_matches:Live と Prematchlist_countries、list_live_matches、list_prematch_matches:サッカー(sport_id1)list_tournaments:サッカー、country_id1get_match:746146992(Live、Arsenal — Coventry City)と730321837(Prematch、Manchester City — Bournemouth)search_matches:「Perth」(Live)と「Manchester」(Prematch)
それ以外(その他のスポーツや試合、カレンダー、eスポーツ、top_championships)には、デモモードの対象範囲とキーの取得方法を記載したメッセージが返されます。
更新間隔
すべてのレスポンスはスナップショットです。サーバーは、メソッドごとに記載された最小間隔が経過するまでスナップショットを再利用します。たとえば、Live の試合リストは 7 秒、Live の試合は 5 秒、Prematch の試合は 30 秒です。キャッシュから返される結果には cached_seconds が含まれます。同じデータへの同時リクエストは、すでに処理中のリクエストが完了するまで待機します。データ更新ガイドラインをご覧ください。
ドキュメント
- クイックスタート
- API メソッドの概要
- 主要な概念:Live と Prematch、ID
- エラー処理
- スポーツとスポーツ ID
- SportAPI のドキュメント
独自の連携を構築する場合は、このサーバーの基盤となっている SportAPI Python クライアントをご利用ください。
API キーを取得する
Live データには、SportAPI の個人用 API キーとベース URL が必要です。プランは月額 30 ドルからで、2 日間の無料トライアルがあります。
- Telegram:@sportapinet_bot
- ウェブサイト:sportapi.net
キーは MCP クライアントの設定またはシークレットストアに保管し、共有チャットや Git リポジトリには決して記載しないでください。
コントリビューション
イシューやプルリクエストを歓迎します。CONTRIBUTING.mdをご覧ください。提出前に ruff check . && mypy && pytest を実行してください。
ライセンス
MIT © 2026 SportAPI
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。