MADSYSTEM

MADSYSTEM / MCP

AIから、公開レースデータへ。

MADSYSTEM MCPは、大会・選手・成績・ラップをAIから調べるための公開サービスです。リモートMCPに対応したAIクライアントから、認証なしで接続できます。

読み取り専用全10機能Streamable HTTP

接続URL

https://madsystem.win/mcp

接続する

  1. AIクライアントのMCPサーバー追加画面を開き、リモート接続・Streamable HTTPを選びます。
  2. 接続URLに https://madsystem.win/mcp を入力します。認証・APIキーの設定は不要です。
  3. ツール一覧を読み込み、10機能が表示されることを確認してから質問します。

URLを通常のチャットに貼るだけで接続できるかは、AIサービス側の仕様によります。機能が少なく表示される場合は、ツール一覧を更新して再接続してください。

MSIDはMADSYSTEM IDです。 ツールでは pilotId に文字列で指定します。公開MCPは「自分」が誰かを特定しないため、MSIDまたは公開名を指定してください。

名前で質問すると、AIが公開名から候補とMSIDを確認して成績などを取得します。同名の場合は候補を選びます。MSIDが分かっていれば直接指定でき、名前検索を省けます。同じ選手への続けての質問には、確認済みのMSIDを使えます。

使える10機能

公開大会一覧と保存版一覧は別です。今日の進行には大会一覧、過去の確定成績・ラップには保存版一覧から対象を選びます。引数末尾の ? は省略可能を表します。

公開大会一覧list_public_events

大会名・開催日時・会場・公開状態を調べ、eventIdを選びます。

引数:引数なし

ライブ計測get_live_laps

指定大会の受信済みラップ・区間時間・元の順位を取得します。

引数:eventId / organizationSlug?

レース結果get_result

ヒートやクラスを指定して、選手の順位・各周・合計タイムを読みます。

引数:eventId / organizationSlug? / heat? / classCode?

順位表get_leaderboard

指定大会・クラス・シリーズの順位表を取得します。

引数:eventId / organizationSlug? / classCode? / series?

保存版一覧list_public_archives

公開済みの保存大会と、成績・ラップの収録範囲を確認します。

引数:引数なし

保存成績・大会順位get_pilot_results

選手別の確定成績、または保存大会全体の順位を取得します。総合順位と予選順位・シード順を区別し、未収録の予選順位は推測しません。

引数:pilotId または eventId(両方指定可) / offset? / limit?

保存ラップ・セクターget_archive_laps

保存大会を選び、選手別またはレース別の各周・区間時間を読みます。

引数:eventId / pilotId または race(任意) / offset? / limit?

出走・チャンネル・対戦相手get_pilot_race_status

現在・次の出走、チャンネル、対戦相手、暫定予選結果を確認します。

引数:eventId / pilotId / organizationSlug?

名前から選手検索search_public_pilots

現在の公開選手マスタから候補とMSIDを探します。同名は候補を確認します。

引数:name / limit? / offset? / revision?

MSIDからプロフィールget_public_pilot

現在の公開名・チームなどを取得します。大会当時の名義とは区別します。

引数:pilotId

AIへの入力例

MCP接続後に、例えば次のように質問できます。比較・集計は、取得した記録を使ってAIが行います。大会・予選/本戦・周回の条件を揃えてください。

名前で探す
MAD XのMSIDと、現在の公開プロフィールを調べて。
保存成績を見る
山梨大会のhirokoさんの保存成績を見せて。
2人を比較する
山梨大会のhirokoさんとKounoFPVさんの予選ラップを比較して。ベスト・平均・セクター差と、欠測の影響も説明して。
ライブを確認する
公開大会一覧から対象大会を選んで、最新のライブ計測と元データの更新時刻を教えて。
次の出番を確認する
選択した大会で、MAD Xの次の出番・チャンネル・対戦相手を確認して。未確定の情報は区別して。

名前検索は現在の公開名が対象です。同名の候補、改名、保存大会への未収録があるため、検索結果のMSIDと大会当時の名義を確認します。登録されていることだけで大会参加とは判断しません。

ライブデータを読むときに

取得時刻と、計測データの更新時刻は別です

fetchedAt はMCPで取得した時刻、sourceUpdatedAt は元データの更新時刻です。後者が null なら更新時刻は不明です。再取得できても、計測が今も進行しているとは限りません。

  • ライブ・出走情報は、対象大会の計測と公開が接続されている場合に取得できます。質問ごとに取り直す方式で、MCPから計測が自動配信され続ける仕組みではありません。
  • 「接続テスト」と表示された大会や架空選手の記録は、実大会の成績として扱わないでください。
  • no_data は取得できる記録がない状態です。元APIの内部読取失敗と区別できない場合があり、大会・結果が存在しないとは断定できません。
  • 確定/暫定は resultStatus の official/provisional を確認します。大会の終了状態や順位だけでは推測しません。
  • 次走が未確定でも、敗退とは限りません。heatsBefore は間にある予定レース数で、待ち時間の分数ではありません。
  • 欠測や誤検知の注記、未完走を含めて読みます。保存ラップのセクターとL0(スタート時間)はミリ秒、ラップ時間は m:ss.SSS 表記です。

保存成績・ラップは pagination.nextOffset が null になるまで取得します。limit は最大20。ラップはレース単位のページで、ページ間の revision が変わった場合は取り直してください。

現在公開されている対象は、公開大会一覧APIと保存版一覧APIで確認できます。未同期の大会から別大会の記録へ切り替えて回答することはありません。

開発者向けの最小例

Node.jsと公式TypeScript SDKで、接続・ツール一覧・保存版一覧を取得する例です。以下を madsystem.mjs に保存し、node madsystem.mjs で実行します。掲載例のSDKは1.31.0です。

npm install @modelcontextprotocol/sdk@1.31.0
import { Client } from '@modelcontextprotocol/sdk/client/index.js';
import { StreamableHTTPClientTransport } from '@modelcontextprotocol/sdk/client/streamableHttp.js';

const client = new Client({ name: 'madsystem-reader', version: '1.0.0' });
try {
  await client.connect(new StreamableHTTPClientTransport(
    new URL('https://madsystem.win/mcp')
  ));
  console.log(await client.listTools());
  console.log(await client.callTool({
    name: 'list_public_archives', arguments: {}
  }));
} finally {
  await client.close();
}
ツールを直接呼ぶときの引数例

get_pilot_results に、次の arguments を渡します。大会IDは一覧から取得してください。

{
  "pilotId": "296",
  "eventId": "wtw-yamanashi-qualifier-2026-09-22"
}

接続確認には initialize → tools/list → tools/call を使います。接続URLをブラウザで通常表示すると405になる仕様です。

サーバー側・デスクトップ側からのリモートMCP接続を想定しています。ブラウザからの直接接続はOrigin/CORS制限があるため、任意のWebページから呼び出せるAPIではありません。各AI製品での接続可否は、その製品のリモートMCP対応を確認してください。

公開範囲と利用時の制限

公開済みの大会・競技記録と、有効な公開プロフィールだけを返します。LINEアカウントや非公開プロフィールへのアクセス、登録・設定変更・レース操作はできません。MCPにLINEの認証情報やAIサービスのAPIキーを送る必要はありません。

同じ接続元IPで60回/10秒・300回/分、処理拠点ごとの合計で1,200回/分の制限があります。超過時は429の Retry-After に従って待ってください。同じAIサービスや会場回線の利用者は、同じIP枠を共有する場合があります。

案内更新:2026年10月20日。データの出典は各応答の sourceUrl に含まれます。サービスについてのお問い合わせ。