mcpField
H
Historical Baseball

Historical Baseball

リモート
pipeworx.ioゲーム・エンタメ02 日前に更新
リポジトリ公式サイト

Historical Baseball について

Historical Baseballは、Retrosheetの試合ログとSABR Lahman Baseball Databaseに基づく、1871年まで遡るMLB歴史統計のMCPサーバーです。野球の研究者やファン向けに、選手の通算成績、チームのシーズン記録、試合概要、シーズン別ランキングを提供します。

主な機能

  1. 01選手の通算打撃・投球記録の取得
  2. 02チームのシーズン記録の検索
  3. 03試合単位のボックススコア概要の確認
  4. 04シーズン別打撃・投球ランキングの照会
  5. 05読み込み済みデータの範囲確認

活用シーン

  1. 01選手の通算成績を調査
  2. 02シーズンごとのチーム成績を比較
  3. 03過去の試合のスコアと概要を確認
  4. 04特定シーズンの統計リーダーを検索

MCP 対応

歴史的な選手、チーム、試合ログ、ランキング、データ範囲のツールをMCPクライアントに公開します。Pipeworxゲートウェイまたはローカルのstdio MCPサーバーとして利用できます。

設定

リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。

エンドポイントhttps://gateway.pipeworx.io/historical-baseball/mcp
インストールコマンドをコピー
Claude CodeTerminal
Cursor.cursor/mcp.json
VS Code.vscode/mcp.json
Claude Desktopclaude_desktop_config.json
Windsurf~/.codeium/windsurf/mcp_config.json

コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。

ツール

46
パラメーター型必須説明
qstringいいえquestion の別名。
askstringいいえquestion の別名。
textstringいいえquestion の別名。
inputstringいいえquestion の別名。
packsarrayいいえ任意。ルーティング対象をこれらのパックスラッグに限定します(例:["sec-form-d","sec-13f"])。その場合、ルーターは該当パック内のツールのみを選択します。省略すると、デフォルトの全カタログへのルーティングになります。スラッグは list_packs / search_packs / https://pipeworx.io/directory から取得できます。リストにない、または不明なスラッグは無視され、_meta.pack_scope.ignored に記載されます。該当するスラッグが 1 つもない場合は、カタログ全体にルーティングし、_meta.pack_scope.full_catalog:true を設定します(空の回答にはなりません)。
querystringいいえquestion の別名。
promptstringいいえquestion の別名。
messagestringいいえquestion の別名。
questionstringはい自然言語での質問またはリクエスト。query、q、prompt、text、input、ask、message をエイリアスとして使用できます。

詳細

@pipeworx/historical-baseball

歴代MLB統計:1871年までさかのぼる、通算の打撃・投球成績、チームのシーズン成績、試合ごとのボックススコア要約、シーズン別ランキングです。Fleet #2976 — ライブ版の mlb-stats パックが対象とするのは現在のMLB Stats APIのみです。このパックは、その下にある歴史的記録を提供します。

Pipeworx の一部です — AI エージェントを1786以上のライブデータソースに接続するMCPゲートウェイです。これは独立した非公式の統合であり、上流のプロバイダーとの提携、承認、公開はありません。

ツール

  • baseball_player_history(player) — 1人の選手の全キャリアにわたる、年ごとの打撃成績および/または投球成績です。名前(「Babe Ruth」)または正確なLahmanの player_id(「ruthba01」)を指定します。名前が曖昧な場合は推測せず、候補の一覧(player_id付き)を返します。
  • baseball_team_season(team, year) — 指定した年の1チームのシーズン全体の成績です。勝敗数、地区/リーグ/ワールドシリーズの結果、チームの打撃・投球合計、本拠地球場、観客動員数が含まれます。コード(「NYA」)または一般的な名称(「Yankees」)を指定します。
  • baseball_game_log(date, team) — ある日に1チームが行った試合のボックススコアレベルの要約です(配列で返されるため、ダブルヘッダーでは2試合が返されます):最終スコア、勝利/敗戦/セーブ投手、監督、各チームのAB/H/2B/3B/HR/RBI/BB/SO/エラーが含まれます。レギュラーシーズンに加え、オールスター、ディビジョンシリーズ、リーグチャンピオンシップシリーズ、ワイルドカード、ワールドシリーズの試合(game_type: R/A/D/L/C/W)を対象とします。
  • baseball_season_leaders(year, stat, league?, limit?) — 1シーズンの打撃または投球指標について、上位N人を示すランキングです。打撃:HR, AVG, RBI, R, H, SB, BB, SO, 2B, 3B。投球:W, ERA, SO_P, SV, L, WHIP。AVG/ERA/WHIPには簡易的な基準(AB>=100/IPouts>=100)を適用します。MLB公式の打席数/投球回数による規定には準拠していません。
  • baseball_coverage() — 読み込み済みのRetrosheetの日付範囲、最新のLahmanシーズン年、最終更新日時を返します。存在するはずの日付や年が見つからない場合は、これを呼び出してください。

移転または改称された複数のフランチャイズでは、チームコードが変更されています(例:アスレチックスのRetrosheetコードは、2025年のサクラメント移転に伴い変更されました)。該当する場合、旧コードと新コードの両方がデータ内に存在します。また、一般的な名称や、よく知られた消滅済みフランチャイズの一部は自動的に解決されます(src/store.ts の TEAM_ALIASES を参照してください)。認識できないチーム/年/日付/指標が指定された場合、空の結果を返さず、明確なエラーを返します。

認証

キーは不要です。ツールはPipeworxゲートウェイ経由でのみ応答します。データはゲートウェイが保持しているため、単独で npm install しても読み取り可能なデータはなく、すべてのツールは空のリストを返すのではなく、「not bound in this runtime」という明確なエラーをスローします。

データソース

  • Retrosheet (retrosheet.org/gamelogs) — 1 試合につき 1 行、1871-2025 年。 帰属表示が必要ですが無料で利用でき、表示文はすべての baseball_game_log の応答にそのまま掲載されます。

    ここで使用した情報は Retrosheet から無料で提供されたものであり、 著作権は Retrosheet に帰属します。関心のある方は Retrosheet まで お問い合わせください:"www.retrosheet.org"。

  • SABR Lahman Baseball Database (sabr.org/lahman-database) — シーズン別 打撃/投球/チームのテーブルと選手プロフィール、1871-2025 年(現在は Seamheads.com からライセンスされた Negro Leagues の統計も収録)。Sean Lahman 氏による当初の寄贈をもとに、SABR が管理しています。ライセンスは CC BY-SA 3.0 Unported (Creative Commons 表示-継承)です。

    このデータベースの著作権は、Sean Lahman 氏からの寛大な寄贈を受け、 SABR が 1996-2025 年に保有しています。この作品は Creative Commons 表示-継承 3.0 Unported ライセンスに基づいてライセンスされています。 詳細は次をご覧ください: http://creativecommons.org/licenses/by-sa/3.0/

どちらのソースもライブクエリ API を公開しておらず、一括ファイルのみを 提供しています。そのため、このパックではプロキシするのではなくコピーを 構築します(CLAUDE.md の「BUILD THE COPY」)。 対象範囲はシーズンおよび試合の集計データのみです。 Retrosheet の プレーごとの EVENT ファイルは読み込みません。試合ログはすでに 1 試合につき 1 行であり、Lahman のテーブルもすでに選手・チーム・シーズンごとに 1 行で あるため、生のフライトや配達データとは異なり、ここではどちらも集計処理は 必要ありませんでした。

ライセンスと ShareAlike の遵守

Lahman のテーブル(people、batting_season、pitching_season、 teams_season)は、リクエストごとに SABR にライブで問い合わせて取得する のではなく、SABR の一括ファイルから構築します。CC BY-SA 3.0 の ShareAlike 条項は、このような構築に適用され、上流サービスへのライブ問い合わせには 適用されません。具体的には、次のとおりです。

  • 表示(BY):Lahman に基づくツールからのすべての応答には、 source(SABR/Sean Lahman)、source_url(sabr.org/lahman-database)、 および license 内のライセンス全文が含まれます。また、この README にも 再掲しています。
  • 継承(ShareAlike):これら 4 つの特定のテーブルの派生物を保持し、 再配布するため(上記のツール応答を通じて)、その派生物自体もソースと 同じ CC BY-SA 3.0 ライセンスで提供され、より制限の厳しいライセンスには なりません。baseball_player_history、baseball_team_season、または baseball_season_leaders の打撃/投球データを使って製品を構築する場合、 そのデータを独自に改変したものには、同じ CC BY-SA 3.0 の義務が適用 されます。SABR/Sean Lahman をクレジットし、その再配布物には CC BY-SA 3.0 または互換性のあるライセンスを適用してください。
  • この条件は、Retrosheet に基づく baseball_game_log のデータには 適用されません。このデータに必要なのは Retrosheet 独自の帰属表示 (上記引用)だけで、ShareAlike 条項はありません。
  • Pipeworx カタログ内の他のものには何も制限を加えません。ShareAlike が 「波及」するのは、コピーまたは改変された特定の作品だけであり、この ゲートウェイも呼び出すというだけの無関係なコードベースには及びません (CLAUDE.md にある symmap の前例と同じ考え方です。ただし、免除された ライセンスではなく、実際に条件を課すライセンスに適用しています)。
データの更新または拡張
node scripts/historical-baseball/load-data.mjs
# Retrosheet only (skip re-downloading/parsing Lahman's local CSVs):
node scripts/historical-baseball/load-data.mjs --skip-lahman
# Lahman only, once new CSVs are in place:
node scripts/historical-baseball/load-data.mjs --skip-retrosheet

Retrosheet は完全に自動化されています。 ローダーは https://www.retrosheet.org/gamelogs/gl1871_2025.zip(1871~2025 年とオールスター/ポストシーズンの試合ログを含む、安定した統合一括ファイル)を直接ダウンロードします。手動での作業は不要です。Retrosheet が次のシーズンの統合 ZIP を公開したら、再実行してください(https://www.retrosheet.org/gamelogs/ で新しい gl1871_20XX.zip を確認するか、統合ファイルが更新される前であれば単独の gl20XX.zip を確認してください)。

Lahman は自動化されていないため、最初に一度だけ手動でダウンロードする必要があります。 SABR は、Box のウェブアプリが発行するファイルごとの署名付き Box.com リンク (sabr.box.com/s/<share-id>/file/<id>)を通じて、カンマ区切りのリリースを配布しています。Retrosheet の ZIP とは異なり、CSV 自体を取得できる安定した curl 対応 URL はありません。更新するには、次の手順に従います。

  1. https://sabr.org/lahman-database/ を開き、「Download latest version」の下にある「Comma-delimited version」リンク(現在は sabr.box.com/s/...)を開きます。
  2. その Box フォルダーから Teams.csv、People.csv、Batting.csv、Pitching.csv をローカルディレクトリにダウンロードします。
  3. ローダーを --lahman-dir <that directory> で実行します(既定値は、このリポジトリのルートから見て ../lahman-csv、つまり pipeworx のチェックアウトと同じ階層にあるディレクトリです)。

SABR は差分を公開するのではなく、修正済みのファイル全体を再公開するため、実行のたびにすべてのテーブルが置き換えられます(DROP + reload)。そのため、以前修正されたシーズンの古い行が新しいデータとともに残らないようにするには、データをクリーンに再読み込みする必要があります。

どちらのデータソースでも、Pipeworx の Cloudflare アカウントに wrangler でログインしている必要があります。

クイックスタート

MCP クライアント(Claude Desktop、Cursor、Windsurf など)に追加します。

{
  "mcpServers": {
    "historical-baseball": {
      "url": "https://gateway.pipeworx.io/historical-baseball/mcp"
    }
  }
}
このエンドポイントが実際に提供するもの

https://gateway.pipeworx.io/historical-baseball/mcp の tools/list は、上の表にあるツールに加えて、共有 Pipeworx メタツール(ask_pipeworx、 discover_tools、search_within、remember/recall など、ゲートウェイ全体で使えるツール群)も返します。そのため、表示されるツール数はこの表より多くなります。単一パックのエンドポイントでは現在、パック独自のツールとともに、共有ツールが約 30 個表示されます。接続の initialize 応答には正確な範囲が示されており、その日の状況を知るための確定情報です。

これは意図的な設計であり、偶然の多重化ではありません。メタツールを使うと、ask_pipeworx を介してカタログ全体にルーティングできるため、このパックの対象外の質問にも、2 つ目の MCP サーバーを追加せずに回答できます。現在、メタツールなしでパックのエンドポイントに接続する方法はありません。追加のスキーマによるコンテキスト消費がルーティングの利便性に見合わない場合は、複数のパックエンドポイントではなく、フルゲートウェイに一度接続してください。

このパックのツールだけでなく、すべてのパックのツールを直接一覧表示するには、フル Pipeworx ゲートウェイに接続する方法もあります。

{
  "mcpServers": {
    "pipeworx": {
      "url": "https://gateway.pipeworx.io/mcp"
    }
  }
}

どちらの URL も同じゲートウェイと同じ 1786+ のデータソースに接続します。違いは、どのパックのツールが直接一覧表示されるかだけです。どちらから接続しても、ask_pipeworx ですべてのツールにアクセスできます。

MCP クライアントがない場合:HTTP で呼び出す

curl -X POST https://gateway.pipeworx.io/v1/tools/baseball_player_history \
  -H 'Content-Type: application/json' \
  -d '{"player":"Babe Ruth"}'

最初の呼び出しにアカウントは不要です。ツールを確認するには、GET https://gateway.pipeworx.io/v1/tools/baseball_player_history を実行します。ツールを検索するには、{"query":"..."} を指定して POST https://gateway.pipeworx.io/v1/tools/search_packs を実行します。

単独で実行(ゲートウェイアカウント不要)

このパッケージはローカルの stdio MCP サーバーとしても実行できます。Pipeworx アカウントも、ゲートウェイへのラウンドトリップも不要です。

{
  "mcpServers": {
    "historical-baseball": {
      "command": "npx",
      "args": ["-y", "@pipeworx/mcp-historical-baseball"]
    }
  }
}

または、起動することを確認するため、直接実行します。

npx -y @pipeworx/mcp-historical-baseball

stdin/stdout 経由で MCP を使用し、initialize/tools/list/tools/call に応答します。対象はこのパックのツールのみで、上記のゲートウェイ接続で追加される共有メタツールは含まれません。同じソース、同じツールを使用しますが、ask_pipeworx によるルーティングはありません。

ask_pipeworx の使用

ツールを直接呼び出す代わりに、自然な英語で質問できます。これは、上記のパックエンドポイントとフルゲートウェイの両方で利用できます。

ask_pipeworx({ question: "your question about Historical Baseball data" })

ゲートウェイが適切なツールを選択し、引数を自動的に設定します。

More

License

MIT

コメント

MCP は初めてですか?

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

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