Sports Hub について
Sports Hubは、42のスポーツAPIプロバイダーを一つにまとめ、70以上のスポーツのスコア、統計、オッズを扱うMCPサーバーです。スポーツデータを必要とするMCPクライアント向けで、プロバイダーを選択して読み込め、多くはAPIキーなしで利用できます。
主な機能
- 0142のスポーツAPIプロバイダーを統合
- 0270以上のスポーツ向けに410ツールを提供
- 03スコア、統計、オッズに対応
- 04プロバイダー選択とプリセット
- 05フィールド指定と応答サイズ制限
- 06stdioとHTTP/SSEのトランスポート
活用シーン
- 01複数スポーツのスコア取得
- 02対応プロバイダー間のオッズ比較
- 03チェス、eスポーツ、モータースポーツのデータ照会
- 04MCPクライアントから選択したスポーツAPIへ接続
MCP 対応
stdioまたはHTTP/SSE経由で、スポーツデータのツールをMCPクライアントに提供します。デフォルトでは19プロバイダーを読み込み、必要に応じて追加できます。APIキーが必要なのは該当プロバイダーのみです。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
npx -y mcp-sports-hubSPORTS_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 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。
ツール
165掲載時のツール一覧 · 2 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| sport | string | はい | スポーツコード。例:"football"、"basketball"、"baseball"、"hockey"、"soccer"、"mma"、"golf"、"tennis"、"racing" |
| league | string | はい | リーグコード。例:"nfl"、"nba"、"mlb"、"nhl"、"wnba"、"college-football"、"mens-college-basketball"、"eng.1"、"usa.1"、"ufc"、"pga"、"atp"、"f1" |
| dates | string | いいえ | YYYYMMDD 形式の日付フィルター(例:20240115) |
| limit | integer | いいえ | 返すイベントの最大数 |
詳細
Sports Hub MCP サーバー
42 のスポーツ API プロバイダーを単一のサービスに集約する統合型 MCP サーバーです。70 種類以上のスポーツを対象に、スコア、統計、オッズ、e スポーツ、大学スポーツ、チェス、モータースポーツ、ボクシング、AFL などを網羅する410 個のツールを提供します。
各プロバイダーは独立して動作します。利用するプロバイダーの API キーだけが必要です。キーが不足していても起動は妨げられません。キーなしでツールを呼び出すとエラーが返されます。
デモ

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_ | ESPN | 20 種目以上 | 10 | 非公式 — 動作しなくなる可能性があります |
nhl_ | NHL Web API | NHL | 13 | ドキュメントはありませんが、安定しています |
mlb_ | MLB Stats API | MLB/MiLB | 13 | 公式ですが、ドキュメントはありません |
f1_ | Jolpica F1 | Formula 1(1950 年以降) | 13 | コミュニティによって保守されています |
openf1_ | OpenF1 | F1 のライブテレメトリー | 12 | レース開催期間中のみライブデータを利用できます |
openliga_ | OpenLigaDB | ドイツのサッカー | 10 | Bundesliga が中心です |
sportsdb_ | TheSportsDB | 40 種目以上 | 13 | テストキーが自動で設定され、透かしが入ります |
ncaa_ | NCAA API | 大学スポーツ | 8 | レート制限は 5 リクエスト/秒です |
sportsrc_ | SportSRC | サッカー、バスケットボール、MMA、ストリーム | 7 | V1 は無料、V2 には有料キーが必要です |
lichess_ | Lichess | チェス(ユーザー、トッププレイヤー、ブロードキャスト、デイリーパズル) | 7 | 約 20 リクエスト/秒/IP です |
chesscom_ | Chess.com | チェス(プロフィール、統計、クラブ、リーダーボード) | 7 | 並列呼び出し時にスロットリングされます |
squiggle_ | Squiggle | AFL(オーストラリアンフットボールリーグ) | 6 | 適切な UA が必要です |
motogp_ | MotoGP | MotoGP/Moto2/Moto3/MotoE | 7 | 非公式 — 動作しなくなる可能性があります |
formulae_ | Formula E | Formula E | 7 | 非公式 — 動作しなくなる可能性があります |
nascar_ | NASCAR | NASCAR Cup/Xfinity/Truck | 3 | 非公式の CDN フィードです |
opendota_ | OpenDota | Dota 2 の分析 | 11 | 60 リクエスト/分、50,000 リクエスト/月です |
sleeper_ | Sleeper | NFL ファンタジー | 10 | 約 1,000 リクエスト/分です |
euroleague_ | EuroLeague | EuroLeague と EuroCup のバスケットボール | 6 | キー不要のフィードです |
footballdata_uk_ | Football-Data.co.uk | 過去のサッカーの試合結果とオッズ | 2 | CSV、25 リーグ以上 |
ヒント:
SPORTS_HUB_PROVIDERS=freeを設定すると、これら 19 のプロバイダー(約 165 個のツール)のみが読み込まれます。
API キーを使う無料プラン — 登録が必要、クレジットカード不要(23 プロバイダー、約 245 ツール)
登録にかかる時間は 1~2 分です。すべてのキーが無料です。
| Prefix | Provider | Coverage | Tools | Free Limit | Get Key |
|---|---|---|---|---|---|
pandascore_ | PandaScore | e スポーツ(13 タイトル) | 14 | 1000 req/hr | 登録 |
apifootball_ | API-Football | サッカー(960 以上のリーグ) | 15 | 100 req/day | 登録 |
apisports_ | API-Sports | 9 種目 | 10 | 100 req/day/sport | 登録 |
apitennis_ | API-Tennis | テニス(ATP/WTA/ITF) | 12 | 100 req/day | 登録 |
bdl_ | BallDontLie | NBA/NFL/MLB/NHL | 10 | Basic tier | 登録 |
cricket_ | CricketData | クリケット | 10 | 100 req/day | 登録 |
entitycricket_ | Entity Sport | クリケット(250 以上の大会) | 12 | Free plan | 登録 |
footballdata_ | football-data.org | サッカー(12 リーグ) | 11 | 10 req/min | 登録 |
sportmonks_ | Sportmonks | サッカー | 12 | 3000 req/hr | 登録 |
sportsdata_ | SportsDataIO | 9 種目 | 12 | 1000 req/mo | 登録 |
odds_ | The Odds API | 70 以上のスポーツのオッズ | 9 | 500 req/mo | 登録 |
oddsio_ | Odds-API.io | 34 種目のオッズ | 10 | Free account | 登録 |
sgo_ | Sports Game Odds | 55 以上のリーグのオッズ | 10 | Trial | 登録 |
lumify_ | Lumify | オッズ、ベッティングの内訳、AI によるベット分析(8 種目) | 14 | Free trial key | 登録 |
mma_ | Fighting Tomatoes | MMA | 8 | 200 req/mo | 登録 |
livegolf_ | Live Golf API | ゴルフ(PGA/DP World) | 8 | Free tier | 登録 |
isports_ | iSportsAPI | サッカー/バスケットボール(アジア) | 10 | Free tier | 登録 |
sportdevs_ | SportDevs | ラグビー/バレーボール/ハンドボール | 12 | Trial | 登録 |
msf_ | MySportsFeeds | NFL/NBA/MLB/NHL | 12 | Free non-commercial | 登録 |
golfcourse_ | GolfCourseAPI | 3 万以上のゴルフコース | 6 | 300 req/day | 登録 |
cfbd_ | College Football Data | NCAA フットボール | 14 | 1000 req/mo | 登録 |
boxing_ | Boxing Data API | プロボクシング(選手/試合/タイトル) | 8 | 100 req/mo | 登録 |
highlightly_ | Highlightly | マルチスポーツのハイライトとオッズ | 6 | 100 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 | はい(キーが必要なプロバイダーの場合) |
chess | lichess, chesscom | 14 | いいえ |
us-major | espn, nhl, mlb, ncaa, cfbd, bdl, msf, nascar, sleeper | 約93 | 一部 |
soccer | espn, apifootball, footballdata, sportmonks, openliga, sportsrc, footballdatauk, highlightly | 約73 | 一部 |
f1 | f1, openf1 | 25 | いいえ |
motorsport | f1, openf1, motogp, formulae, nascar | 約42 | いいえ |
esports | pandascore, opendota | 25 | 一部 |
odds | odds, oddsio, sgo, lumify | 43 | はい |
cricket | cricket, entitycricket | 22 | はい |
golf | livegolf, golfcourse | 14 | 一部 |
キャッシュ
すべての 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) をエクスポートします。キーは起動時ではなく、呼び出し時に確認されます。
貢献
- リポジトリをフォークします
register(server: McpServer)をエクスポートするsrc/providers/my-api.tsを作成します- ツール名にプレフィックスを付けます:
myapi_get_something src/index.tsでインポートして呼び出しますnpm run buildを実行して検証します- PR を送信します
ライセンス
MIT
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。