mcpField
S
SportAPI

SportAPI

ローカル
sportapi.netゲーム・エンタメ03 週間前に更新

SportAPI について

SportAPIは、ライブと試合前の試合、スコア、統計、オッズを検索するMCPサーバーです。認証情報なしで明示ラベル付きのデモデータを使え、SportAPIキーを設定すると最新データを取得できます。

主な機能

  1. 01スポーツデータ用の読み取り専用ツール11種
  2. 02ライブと試合前の試合検索
  3. 03試合詳細、統計、オッズの表示
  4. 04チームと注目試合の検索
  5. 05更新間隔に沿ったスナップショットキャッシュ
  6. 06オッズ分析用プロンプト2種

活用シーン

  1. 01ライブスコアとオッズの確認
  2. 02今後の試合とマーケットの検索
  3. 03試合マーケットとインプライド確率の比較

MCP 対応

11種の読み取り専用ツールと2つのプロンプトを通じて、MCPクライアントにSportAPIのスポーツデータを提供します。既定ではstdioで動作し、Streamable HTTPも選択できます。キーなしでデモ応答を利用できます。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"sportapi-net-sportapi": {
"command": "uvx",
"args": [
"sportapi-mcp"
],
"env": {
"SPORTAPI_KEY": "<SPORTAPI_KEY>",
"SPORTAPI_BASE_URL": "<SPORTAPI_BASE_URL>",
"SPORTAPI_LANGUAGE": "<SPORTAPI_LANGUAGE>"
}
}
}
}
起動コマンドuvx sportapi-mcp
設定が必要な環境変数
SPORTAPI_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 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
pypisportapi-mcp0.1.0

ツール

11

掲載時のツール一覧 · 2 週間前に更新

パラメーター型必須説明
esportsbooleanいいえ従来のスポーツではなく、eスポーツを対象にします(SportAPI cybersport mode)。
line_typeenumいいえ'live' = 進行中の試合、'prematch' = まだ始まっていない試合。live | prematch

詳細

sportapi-mcp

AI アシスタント(Claude Desktop、Claude Code、Cursor、VS Code、Windsurf、その他の MCP クライアント)が、SportAPI からライブおよび試合前の試合、スコア、ライブ統計、ベッティングオッズを検索できる MCP サーバーです。API キーなしで、デモデータを使ってすぐに実行できます。

License: MIT Python 3.10+ MCP CI

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_menuID と件数を含む、スポーツ → 国 → トーナメントのツリーmenu
list_countries1 つのスポーツで試合がある国countries
list_tournaments1 つのスポーツと国のトーナメントtournaments
list_live_matchesスポーツまたはトーナメントのライブ試合:スコア、ピリオド、分、主要オッズ。スポーツを指定しない場合は、ライブ中のスポーツと上位のライブ試合events
list_prematch_matches開催予定の試合:「Top 50」、トーナメント、全試合一覧、またはカレンダー(今後 2/4/6/12 時間、今日から 5 日先まで)events、カレンダー
get_match1 試合の情報:スコア、ライブ統計、すべてのマーケットとそのオッズ、サブイベント(前後半、コーナー、カードなど)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 と Prematch
  • list_countries、list_live_matches、list_prematch_matches:サッカー(sport_id 1)
  • list_tournaments:サッカー、country_id 1
  • get_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 が含まれます。同じデータへの同時リクエストは、すでに処理中のリクエストが完了するまで待機します。データ更新ガイドラインをご覧ください。

ドキュメント

独自の連携を構築する場合は、このサーバーの基盤となっている SportAPI Python クライアントをご利用ください。

API キーを取得する

Live データには、SportAPI の個人用 API キーとベース URL が必要です。プランは月額 30 ドルからで、2 日間の無料トライアルがあります。

キーは MCP クライアントの設定またはシークレットストアに保管し、共有チャットや Git リポジトリには決して記載しないでください。

コントリビューション

イシューやプルリクエストを歓迎します。CONTRIBUTING.mdをご覧ください。提出前に ruff check . && mypy && pytest を実行してください。

ライセンス

MIT © 2026 SportAPI

コメント

MCP は初めてですか?

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

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