mcpField
S
Sports Hub

Sports Hub

ローカル
github.com/lacausecryptoゲーム・エンタメ402 週間前に更新

Sports Hub について

Sports Hubは、42のスポーツAPIプロバイダーを一つにまとめ、70以上のスポーツのスコア、統計、オッズを扱うMCPサーバーです。スポーツデータを必要とするMCPクライアント向けで、プロバイダーを選択して読み込め、多くはAPIキーなしで利用できます。

主な機能

  1. 0142のスポーツAPIプロバイダーを統合
  2. 0270以上のスポーツ向けに410ツールを提供
  3. 03スコア、統計、オッズに対応
  4. 04プロバイダー選択とプリセット
  5. 05フィールド指定と応答サイズ制限
  6. 06stdioとHTTP/SSEのトランスポート

活用シーン

  1. 01複数スポーツのスコア取得
  2. 02対応プロバイダー間のオッズ比較
  3. 03チェス、eスポーツ、モータースポーツのデータ照会
  4. 04MCPクライアントから選択したスポーツAPIへ接続

MCP 対応

stdioまたはHTTP/SSE経由で、スポーツデータのツールをMCPクライアントに提供します。デフォルトでは19プロバイダーを読み込み、必要に応じて追加できます。APIキーが必要なのは該当プロバイダーのみです。

設定

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

mcp.json · 共通設定
{
"mcpServers": {
"lacausecrypto-sports-hub": {
"command": "npx",
"args": [
"-y",
"mcp-sports-hub"
],
"env": {
"SPORTS_HUB_PROVIDERS": "<SPORTS_HUB_PROVIDERS>",
"API_SPORTS_KEY": "<API_SPORTS_KEY>",
"PANDASCORE_TOKEN": "<PANDASCORE_TOKEN>",
"THE_ODDS_API_KEY": "<THE_ODDS_API_KEY>"
}
}
}
}
起動コマンドnpx -y mcp-sports-hub
設定が必要な環境変数
SPORTS_HUB_PROVIDERSComma-separated provider names or a preset (free, us-major, soccer, f1, motorsport, esports, odds, cricket, golf, chess, all). Omit to load the free preset (19 no-key providers).
API_SPORTS_KEYシークレットAPI-Sports key (free at api-sports.io)
PANDASCORE_TOKENシークレットPandaScore esports token (free at pandascore.co)
THE_ODDS_API_KEYシークレットThe Odds API key (free at the-odds-api.com)

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
npmmcp-sports-hub1.4.1

ツール

165

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

パラメーター型必須説明
sportstringはいスポーツコード。例:"football"、"basketball"、"baseball"、"hockey"、"soccer"、"mma"、"golf"、"tennis"、"racing"
leaguestringはいリーグコード。例:"nfl"、"nba"、"mlb"、"nhl"、"wnba"、"college-football"、"mens-college-basketball"、"eng.1"、"usa.1"、"ufc"、"pga"、"atp"、"f1"
datesstringいいえYYYYMMDD 形式の日付フィルター(例:20240115)
limitintegerいいえ返すイベントの最大数

詳細

Sports Hub

Sports Hub MCP サーバー

npm バージョン npm ダウンロード数 CI ライセンス

42 のプロバイダー 410 個のツール MCP レジストリ

macOS Linux Windows Node.js TypeScript

42 のスポーツ API プロバイダーを単一のサービスに集約する統合型 MCP サーバーです。70 種類以上のスポーツを対象に、スコア、統計、オッズ、e スポーツ、大学スポーツ、チェス、モータースポーツ、ボクシング、AFL などを網羅する410 個のツールを提供します。

各プロバイダーは独立して動作します。利用するプロバイダーの API キーだけが必要です。キーが不足していても起動は妨げられません。キーなしでツールを呼び出すとエラーが返されます。

対応クライアント: Claude ChatGPT Cursor Windsurf Zed Continue Cline

デモ

mcp-sports-hub デモ

NBA のスコア、プレミアリーグのオッズ、テニスの対戦成績を、すべて単一の MCP サーバーから取得できます。

互換性

プラットフォーム
OS状態
macOS対応
Linux対応
Windows対応
MCP クライアント
クライアント状態備考
Claude Desktop対応Anthropic のデスクトップアプリ
Claude Code (CLI)対応claude mcp add
Cursor対応MCP を標準搭載
Windsurf (Codeium)対応MCP を標準搭載
Continue.dev対応オープンソースの AI アシスタント
Cline対応VS Code 拡張機能
Zed対応MCP を標準搭載
ChatGPT Desktop対応OpenAI のデスクトップアプリ
Gemini CLI対応Google のコマンドライン
すべての MCP クライアント対応Stdio および HTTP/SSE トランスポート

MCP SDK の stdio トランスポートを使用します。あらゆる LLM(Claude、GPT、Gemini、Llama、Mistral など)で動作します。

必要要件:Node.js 18 以降、npm。

プロバイダー(42)

すぐに使えます — API キーもサインアップも不要(19 のプロバイダー、約 165 個のツール)

以下のプロバイダーは、そのまま使えます。ビルドして実行するだけです。

プレフィックスプロバイダー対応範囲ツール数備考
espn_ESPN20 種目以上10非公式 — 動作しなくなる可能性があります
nhl_NHL Web APINHL13ドキュメントはありませんが、安定しています
mlb_MLB Stats APIMLB/MiLB13公式ですが、ドキュメントはありません
f1_Jolpica F1Formula 1(1950 年以降)13コミュニティによって保守されています
openf1_OpenF1F1 のライブテレメトリー12レース開催期間中のみライブデータを利用できます
openliga_OpenLigaDBドイツのサッカー10Bundesliga が中心です
sportsdb_TheSportsDB40 種目以上13テストキーが自動で設定され、透かしが入ります
ncaa_NCAA API大学スポーツ8レート制限は 5 リクエスト/秒です
sportsrc_SportSRCサッカー、バスケットボール、MMA、ストリーム7V1 は無料、V2 には有料キーが必要です
lichess_Lichessチェス(ユーザー、トッププレイヤー、ブロードキャスト、デイリーパズル)7約 20 リクエスト/秒/IP です
chesscom_Chess.comチェス(プロフィール、統計、クラブ、リーダーボード)7並列呼び出し時にスロットリングされます
squiggle_SquiggleAFL(オーストラリアンフットボールリーグ)6適切な UA が必要です
motogp_MotoGPMotoGP/Moto2/Moto3/MotoE7非公式 — 動作しなくなる可能性があります
formulae_Formula EFormula E7非公式 — 動作しなくなる可能性があります
nascar_NASCARNASCAR Cup/Xfinity/Truck3非公式の CDN フィードです
opendota_OpenDotaDota 2 の分析1160 リクエスト/分、50,000 リクエスト/月です
sleeper_SleeperNFL ファンタジー10約 1,000 リクエスト/分です
euroleague_EuroLeagueEuroLeague と EuroCup のバスケットボール6キー不要のフィードです
footballdata_uk_Football-Data.co.uk過去のサッカーの試合結果とオッズ2CSV、25 リーグ以上

ヒント:SPORTS_HUB_PROVIDERS=free を設定すると、これら 19 のプロバイダー(約 165 個のツール)のみが読み込まれます。

API キーを使う無料プラン — 登録が必要、クレジットカード不要(23 プロバイダー、約 245 ツール)

登録にかかる時間は 1~2 分です。すべてのキーが無料です。

PrefixProviderCoverageToolsFree LimitGet Key
pandascore_PandaScoree スポーツ(13 タイトル)141000 req/hr登録
apifootball_API-Footballサッカー(960 以上のリーグ)15100 req/day登録
apisports_API-Sports9 種目10100 req/day/sport登録
apitennis_API-Tennisテニス(ATP/WTA/ITF)12100 req/day登録
bdl_BallDontLieNBA/NFL/MLB/NHL10Basic tier登録
cricket_CricketDataクリケット10100 req/day登録
entitycricket_Entity Sportクリケット(250 以上の大会)12Free plan登録
footballdata_football-data.orgサッカー(12 リーグ)1110 req/min登録
sportmonks_Sportmonksサッカー123000 req/hr登録
sportsdata_SportsDataIO9 種目121000 req/mo登録
odds_The Odds API70 以上のスポーツのオッズ9500 req/mo登録
oddsio_Odds-API.io34 種目のオッズ10Free account登録
sgo_Sports Game Odds55 以上のリーグのオッズ10Trial登録
lumify_Lumifyオッズ、ベッティングの内訳、AI によるベット分析(8 種目)14Free trial key登録
mma_Fighting TomatoesMMA8200 req/mo登録
livegolf_Live Golf APIゴルフ(PGA/DP World)8Free tier登録
isports_iSportsAPIサッカー/バスケットボール(アジア)10Free tier登録
sportdevs_SportDevsラグビー/バレーボール/ハンドボール12Trial登録
msf_MySportsFeedsNFL/NBA/MLB/NHL12Free non-commercial登録
golfcourse_GolfCourseAPI3 万以上のゴルフコース6300 req/day登録
cfbd_College Football DataNCAA フットボール141000 req/mo登録
boxing_Boxing Data APIプロボクシング(選手/試合/タイトル)8100 req/mo登録
highlightly_Highlightlyマルチスポーツのハイライトとオッズ6100 req/day登録

キーが未設定のプロバイダーがあってもサーバーは停止しません。呼び出したときにエラーを返すだけです。必要に応じて、キーを順次登録してください。

インストール

クイック(npx — インストール不要)
npx mcp-sports-hub
npm グローバル
npm install -g mcp-sports-hub
mcp-sports-hub
ソースから
git clone https://github.com/lacausecrypto/mcp-sports-hub.git
cd mcp-sports-hub
npm install
npm run build
MCP Registry

このサーバーは、公式 MCP Registry に io.github.lacausecrypto/sports-hub として公開されています。Registry に対応する MCP クライアントは、このサーバーを自動的に検出してインストールできます。

トランスポートモード

Stdio(デフォルト — Claude Desktop、Cursor など)
npx mcp-sports-hub
HTTP/SSE(リモートクライアント、ウェブアプリ、カスタム統合)
# Via flag
npx mcp-sports-hub --http

# Via env
SPORTS_HUB_HTTP=1 SPORTS_HUB_PORT=3000 npx mcp-sports-hub

エンドポイント:

  • POST /mcp — MCP プロトコル(SSE を使用した Streamable HTTP)
  • GET /health — ヘルスチェック({"status":"ok","providers":19,"sessions":0,"mode":"session"})

CORS と、mcp-session-id ヘッダーを介した複数クライアントのセッション管理に対応しています。デフォルトのポートは 3000 です。

各クライアントには個別のセッションが割り当てられ、initialize 時に作成され、その後はセッション ID で指定されます。165 個のツールを含む free プリセットのセッション構築には約 90 ms かかりますが、リクエストごとではなくクライアントごとに一度だけです。アイドル状態のセッションは削除されます。

SPORTS_HUB_MAX_SESSIONS=200   # concurrent sessions before new ones get a 503
SPORTS_HUB_SESSION_TTL=1800   # seconds a session may sit idle
SPORTS_HUB_STATELESS=1        # opt out: build a throwaway server per request

SPORTS_HUB_STATELESS=1 は、スティッキールーティングを使用せずにロードバランサーの背後で複数のレプリカを運用する場合に適しています。呼び出しのたびに構築コストがかかるため、単一インスタンスではセッションをおすすめします。

⚠ セキュリティ:HTTP モードはデフォルトで 127.0.0.1(ループバック)にバインドします。SPORTS_HUB_HOST=0.0.0.0 を設定すると、認証されていない MCP エンドポイントがネットワーク全体に公開されます。エンドポイントにアクセスできるユーザーは、設定済みの API キーを誰でも使用できます。DNS リバインディング保護がブロックするのはブラウザーからのオリジン攻撃のみで、直接接続するクライアントは対象外です。認証と TLS を備えたリバースプロキシの背後でのみ公開してください。SPORTS_HUB_CORS_ORIGINS には明示的なオリジンを指定する必要があります(* の指定は拒否されます)。

ホステッド(Smithery)

コンテナーを Smithery でホスティングするための Dockerfile と smithery.yaml が含まれています。ホステッドエンドポイントはキー不要の free プリセットを提供するため、クライアントはセットアップなしで接続できます。Smithery のプロキシが localhost 以外の Host ヘッダーを転送するため、デプロイ時には SPORTS_HUB_DNS_REBINDING_PROTECTION=0 が設定されます。

SPORTS_HUB_DNS_REBINDING_PROTECTION=0 は Host/Origin のチェックを無効にします(デフォルトでは有効です)。ルーティングを管理する信頼できるプロキシの背後でサーバーを実行する場合にのみ設定してください。localhost 上でブラウザーから直接アクセスできるサーバーでは、絶対に設定しないでください。

設定

環境変数

使用するプロバイダーのキーのみ設定してください。

# Free — no key needed:
# ESPN, NHL, MLB, Jolpica F1, OpenF1, OpenLigaDB, NCAA, TheSportsDB (test key),
# SportSRC (V1), Lichess, Chess.com, Squiggle (AFL),
# MotoGP, Formula E, NASCAR, OpenDota, Sleeper

# Optional (defaults to test key)
export THESPORTSDB_API_KEY="your-key"          # https://www.thesportsdb.com/

# Requires free registration
export PANDASCORE_TOKEN="your-token"            # https://pandascore.co/
export API_SPORTS_KEY="your-key"                # https://api-sports.io/
export API_FOOTBALL_KEY="your-key"              # https://www.api-football.com/
export API_TENNIS_KEY="your-key"                # https://api-tennis.com/
export BALLDONTLIE_API_KEY="your-key"           # https://www.balldontlie.io/
export CRICKETDATA_API_KEY="your-key"           # https://cricketdata.org/
export ENTITY_SPORT_KEY="your-key"              # https://www.entitysport.com/
export FOOTBALL_DATA_API_KEY="your-key"         # https://www.football-data.org/
export SPORTMONKS_API_KEY="your-key"            # https://www.sportmonks.com/
export SPORTSDATA_IO_KEY="your-key"             # https://sportsdata.io/
export THE_ODDS_API_KEY="your-key"              # https://the-odds-api.com/
export ODDS_API_IO_KEY="your-key"               # https://odds-api.io/
export SPORTS_GAME_ODDS_KEY="your-key"          # https://sportsgameodds.com/
export FIGHTING_TOMATOES_API_KEY="your-key"     # https://fightingtomatoes.com/
export LIVE_GOLF_API_KEY="your-key"             # https://livegolfapi.com/
export ISPORTSAPI_KEY="your-key"                # https://www.isportsapi.com/
export SPORTDEVS_API_KEY="your-key"             # https://sportdevs.com/
export GOLFCOURSE_API_KEY="your-key"            # https://golfcourseapi.com/
export MYSPORTSFEEDS_USER="your-user"           # https://www.mysportsfeeds.com/
export MYSPORTSFEEDS_PASS="your-pass"
export CFBD_API_KEY="your-key"                  # https://collegefootballdata.com/key
export LUMIFY_API_KEY="your-key"                # https://lumify.ai/

Windows(PowerShell):

$env:API_SPORTS_KEY = "your-key"
$env:PANDASCORE_TOKEN = "your-token"

Windows(cmd):

set API_SPORTS_KEY=your-key
set PANDASCORE_TOKEN=your-token
レスポンスサイズと fields パラメーター

スポーツ API は非常に大きなオブジェクトを返します。ツールが返すバイト数はすべて、モデルのコンテキストウィンドウを消費します。espn_get_scoreboard のようなチーム一覧は、単体で約 300 KB の JSON になりますが、必要な部分は 3 KB 未満です。

すべてのツールは省略可能な fields パラメーターを受け付けます。これは保持するキー名をカンマ区切りで指定するもので、どの階層にあるキーにも一致します。一致するものがない分岐は削除され、一致したキーは値全体が保持されます。

// espn_get_teams { "sport": "basketball", "league": "nba" }
//   -> 297 KB

// espn_get_teams { "sport": "basketball", "league": "nba",
//                  "fields": "id,abbreviation,displayName,location" }
//   -> 2.9 KB, same 30 teams

fields に一致するものがない場合、ツールは空のオブジェクトを返すのではなく、その旨を伝え、確認できたトップレベルのキーを一覧表示します。

レスポンスにはサイズ上限も設定されています。上限を超えると、収まるまでペイロード内の最も長いリストが短縮されます(そのため JSON の解析は可能です)。また、削除された項目数が注記で報告されます。

SPORTS_HUB_MAX_RESULT_BYTES=40000   # default; serialized bytes per tool result
Claude Desktop

設定ファイルの場所:

  • macOS:~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows:%APPDATA%\Claude\claude_desktop_config.json
  • Linux:~/.config/claude/claude_desktop_config.json
{
  "mcpServers": {
    "sports-hub": {
      "command": "node",
      "args": ["/absolute/path/to/mcp-sports-hub/dist/index.js"],
      "env": {
        "PANDASCORE_TOKEN": "your-token",
        "API_SPORTS_KEY": "your-key",
        "THE_ODDS_API_KEY": "your-key"
      }
    }
  }
}

Windows のパス:"args": ["C:/Users/you/mcp-sports-hub/dist/index.js"]

必要なプロバイダーの環境変数のみ含めてください。無料プロバイダーのみを使用する場合は、env を省略してください。

Claude Code(CLI)
claude mcp add sports-hub node /absolute/path/to/mcp-sports-hub/dist/index.js

または .claude/settings.json に記述します:

{
  "mcpServers": {
    "sports-hub": {
      "command": "node",
      "args": ["/absolute/path/to/mcp-sports-hub/dist/index.js"],
      "env": {
        "PANDASCORE_TOKEN": "your-token"
      }
    }
  }
}

プロバイダーのフィルタリング

デフォルトでは、free プリセットのみが読み込まれます(19 個のプロバイダー、約 165 個のツール。API キーは不要です)。SPORTS_HUB_PROVIDERS を使用すると、読み込む内容を変更できます。

# Default — free providers only (no config needed)
npx mcp-sports-hub

# Load ALL 42 providers (410 tools)
SPORTS_HUB_PROVIDERS=all npx mcp-sports-hub

# Use a preset
SPORTS_HUB_PROVIDERS=us-major npx mcp-sports-hub

# Pick specific providers
SPORTS_HUB_PROVIDERS=espn,nhl,odds npx mcp-sports-hub

# Exclude from all (prefix with -)
SPORTS_HUB_PROVIDERS=-sportsdata,-mma npx mcp-sports-hub
プリセット
プリセットプロバイダーツールキーが必要ですか?
free(デフォルト)キー不要のプロバイダー19件(espn, nhl, mlb, f1, openf1, openliga, sportsdb, ncaa, sportsrc, lichess, chesscom, squiggle, motogp, formulae, nascar, opendota, sleeper, euroleague, footballdatauk)約165いいえ
all全42プロバイダー410はい(キーが必要なプロバイダーの場合)
chesslichess, chesscom14いいえ
us-majorespn, nhl, mlb, ncaa, cfbd, bdl, msf, nascar, sleeper約93一部
soccerespn, apifootball, footballdata, sportmonks, openliga, sportsrc, footballdatauk, highlightly約73一部
f1f1, openf125いいえ
motorsportf1, openf1, motogp, formulae, nascar約42いいえ
esportspandascore, opendota25一部
oddsodds, oddsio, sgo, lumify43はい
cricketcricket, entitycricket22はい
golflivegolf, golfcourse14一部
キャッシュ

すべての GET レスポンスは、デフォルトでメモリに60秒間キャッシュされます。これにより、重複した呼び出しやレート制限の無駄な消費を防ぎます。次のように設定します。

SPORTS_HUB_CACHE_TTL=120  # seconds (0 to disable)

キャッシュキーにはリクエストの認証ヘッダーのダイジェストが含まれるため、2つの API キーが互いのエントリーを読み取ることはありません。同一のリクエストが同時に行われた場合は、1つの上流呼び出しにまとめられます。また、404/410 は短時間記憶されるため(SPORTS_HUB_NEGATIVE_CACHE_TTL、デフォルトは30秒)、誤った ID がループ内で再取得されることはありません。

レート制限と再試行

429 および 5xx のレスポンスは、指数バックオフで再試行されます。上流から Retry-After が送られた場合は、それに従います。クライアントエラー(408/425/429 を除く 4xx)とタイムアウトは再試行されません。

SPORTS_HUB_MAX_RETRIES=2        # extra attempts after the first (0 disables)
SPORTS_HUB_RETRY_BASE_MS=300    # backoff base; doubles per attempt

Claude Desktop の設定:

"env": {
  "SPORTS_HUB_PROVIDERS": "us-major",
  "THE_ODDS_API_KEY": "your-key"
}

ツールの命名規則

すべてのツールは {provider}_{action} に従います。

espn_get_scoreboard        — Live scores (ESPN)
nhl_get_standings          — NHL standings
mlb_get_game_boxscore      — MLB box score
f1_get_race_results        — F1 results (1950+)
openf1_get_laps            — F1 live telemetry
pandascore_get_lives       — Live esports matches
apifootball_get_fixtures   — Soccer fixtures (960+ leagues)
odds_get_odds              — Betting odds (70+ sports)
sportsrc_get_xg_stats      — Expected goals (xG)

MCP リソースとプロンプト

ツールに加えて、サーバーは次のものを公開します。

リソース(読み取り可能なカタログ。API 呼び出しは不要):

  • sportshub://providers — すべてのプロバイダーカタログ(プレフィックス、名前、対応範囲、必要なキー)
  • sportshub://presets — すべてのプリセットと、それらが読み込むプロバイダー
  • sportshub://provider/{key} — 1つのプロバイダーの詳細(キーの自動補完付き)

プロンプト(410個のツールを使った、厳選されたスラッシュコマンド形式のワークフロー):

  • whats-on-today · compare-odds {event} · motorsport-weekend {series} · league-standings {league} · team-deep-dive {team} · f1-race {season} {round}

すべてのツールには readOnly/idempotent の注釈が付いているため、クライアントは確認プロンプトを省略できます。

アーキテクチャ

src/
├── index.ts                    # Imports + registers all 42 providers; transports
├── shared/
│   ├── http.ts                 # fetchJson, fetchText, buildUrl, toolResult, errorResult
│   │                           #   + retry/backoff, coalescing, keyed cache
│   ├── catalog.ts              # provider catalog + presets (single source of truth)
│   ├── annotations.ts          # central read-only annotations + titles
│   ├── tool-pipeline.ts        # central `fields` param, size cap, empty-result hints
│   ├── projection.ts           # field projection used by the pipeline
│   ├── slim.ts                 # strips $schema boilerplate from tools/list
│   ├── resources.ts            # MCP resources (provider/preset catalogs)
│   └── prompts.ts              # MCP prompts (curated workflows)
└── providers/
    ├── espn.ts                 #  10 tools — no key
    ├── nhl.ts                  #  13 tools — no key
    ├── mlb-stats.ts            #  13 tools — no key
    ├── jolpica-f1.ts           #  13 tools — no key
    ├── openf1.ts               #  12 tools — no key
    ├── openligadb.ts           #  10 tools — no key
    ├── golfcourse.ts           #   6 tools — GOLFCOURSE_API_KEY
    ├── thesportsdb.ts          #  13 tools — optional key
    ├── pandascore.ts           #  14 tools — PANDASCORE_TOKEN
    ├── api-football.ts         #  15 tools — API_FOOTBALL_KEY
    ├── api-sports.ts           #  10 tools — API_SPORTS_KEY
    ├── api-tennis.ts           #  12 tools — API_TENNIS_KEY
    ├── balldontlie.ts          #  10 tools — BALLDONTLIE_API_KEY
    ├── cricketdata.ts          #  10 tools — CRICKETDATA_API_KEY
    ├── entity-sport-cricket.ts #  12 tools — ENTITY_SPORT_KEY
    ├── football-data.ts        #  11 tools — FOOTBALL_DATA_API_KEY
    ├── sportmonks.ts           #  12 tools — SPORTMONKS_API_KEY
    ├── sportsdata-io.ts        #  12 tools — SPORTSDATA_IO_KEY
    ├── the-odds-api.ts         #   9 tools — THE_ODDS_API_KEY
    ├── odds-api-io.ts          #  10 tools — ODDS_API_IO_KEY
    ├── sports-game-odds.ts     #  10 tools — SPORTS_GAME_ODDS_KEY
    ├── lumify.ts               #  14 tools — LUMIFY_API_KEY
    ├── fighting-tomatoes.ts    #   8 tools — FIGHTING_TOMATOES_API_KEY
    ├── live-golf.ts            #   8 tools — LIVE_GOLF_API_KEY
    ├── isportsapi.ts           #  10 tools — ISPORTSAPI_KEY
    ├── sportdevs.ts            #  12 tools — SPORTDEVS_API_KEY
    ├── mysportsfeeds.ts        #  12 tools — MYSPORTSFEEDS_USER/PASS
    ├── sportsrc.ts             #   7 tools — V1 free, V2 needs paid key (not exposed)
    ├── ncaa.ts                 #   8 tools — no key
    ├── cfbd.ts                 #  14 tools — CFBD_API_KEY
    ├── lichess.ts              #   7 tools — no key
    ├── chess-com.ts            #   7 tools — no key
    ├── squiggle.ts             #   6 tools — no key
    ├── motogp.ts               #   7 tools — no key
    ├── formula-e.ts            #   7 tools — no key
    ├── nascar.ts               #   3 tools — no key
    ├── opendota.ts             #  11 tools — no key
    ├── sleeper.ts              #  10 tools — no key
    ├── euroleague.ts           #   6 tools — no key
    ├── football-data-uk.ts     #   2 tools — no key (CSV)
    ├── boxing.ts               #   8 tools — BOXING_DATA_API_KEY
    └── highlightly.ts          #   6 tools — HIGHLIGHTLY_API_KEY

各プロバイダーは register(server) をエクスポートします。キーは起動時ではなく、呼び出し時に確認されます。

貢献

  1. リポジトリをフォークします
  2. register(server: McpServer) をエクスポートする src/providers/my-api.ts を作成します
  3. ツール名にプレフィックスを付けます:myapi_get_something
  4. src/index.ts でインポートして呼び出します
  5. npm run build を実行して検証します
  6. PR を送信します

ライセンス

MIT

コメント

MCP は初めてですか?

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

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