Transit MCP について
Transit MCPは、ニューヨーク、ワシントンD.C.、サンフランシスコ・ベイエリアを対象とする読み取り専用の公共交通MCPサーバーです。時刻表とリアルタイム情報を組み合わせ、経路計画、アクセシビリティ、車両状況の確認に対応します。
主な機能
- 01地域をまたぐ経路計画
- 02リアルタイムと時刻表の発車情報
- 03路線、駅、運行アラートの検索
- 04バリアフリー経路とエレベーター停止情報
- 05車両の位置と状況
- 06NYC、DC、ベイエリアを網羅
活用シーン
- 01路線や交通手段をまたぐ移動の計画
- 02停留所から目的地へ向かう次の便の確認
- 03出発前の運休やエレベーター停止の確認
- 04列車やバスの位置と行き先の把握
MCP 対応
MCPサーバーはStreamable HTTP経由で18個のツールを提供し、経路計画、発車情報、運行状況、交通機関の検索、車両状況を扱います。transit://リソーステンプレートと定義済みプロンプトも備えています。
設定
リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。
https://transitmcp.com/mcpclaude mcp add --transport http com-transitmcp-transit https://transitmcp.com/mcp{"mcpServers":{"com-transitmcp-transit":{"type":"http","url":"https://transitmcp.com/mcp"}}}Cursor で開く{"servers":{"com-transitmcp-transit":{"type":"http","url":"https://transitmcp.com/mcp"}}}VS Code で開く{"mcpServers":{"com-transitmcp-transit":{"type":"http","url":"https://transitmcp.com/mcp"}}}{"mcpServers":{"com-transitmcp-transit":{"serverUrl":"https://transitmcp.com/mcp"}}}コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。
ツール
詳細
Transit MCP
Transit MCP は、AI が交通機関に関する質問に答えられる、無料で匿名の読み取り専用 Model Context Protocol サーバーです。目的地までの行き方、次の列車の時刻、運行に支障があるかどうか、バスの現在地などを尋ねられます。個人開発のプロジェクトで、汎用エージェント(ChatGPT、Claude、Muse、Instinct など)から直接接続できます。
対応エリア:
- ニューヨーク: 地下鉄、Long Island Rail Road、Metro-North、NYC のバス。
- ワシントン DC: Metrorail と Metrobus。
- サンフランシスコ・ベイエリア: BART、Muni、Caltrain、AC Transit、VTA、SamTrans、フェリーなど、511 SF Bay の地域フィードに含まれるすべての事業者に対応しています。出発便、アラート、車両情報に加え、経路検索も利用できます。
Metro MCP は Transit MCP に名称が変わりました。
過去 7 日間に、約 10 万件のリクエストに対応しました。
接続方法
本番エンドポイントは https://transitmcp.com/mcp です。ログインは不要です。クライアント認証情報、Bearer トークン、OAuth フローも必要ありません。Transit MCP はクライアント認証情報を収集しません。古い Authorization ヘッダーは無視されます。
以前のエンドポイント https://metro-mcp.anuragd.me/mcp も引き続きサポートされ、同じ Worker を利用します。
ディレクトリ
- OpenAI(ChatGPT/Codex)
- Claude ディレクトリ
- 公式 MCP レジストリ(
com.transitmcp/transit-mcp) - Smithery
Claude
claude mcp add --transport http transit-mcp https://transitmcp.com/mcp
Codex
codex mcp add transit-mcp https://transitmcp.com/mcp
汎用 Streamable HTTP クライアント
{
"mcpServers": {
"transit-mcp": {
"type": "http",
"url": "https://transitmcp.com/mcp"
}
}
}
エージェントスキル
skills/transit-mcp/SKILL.md では、どの質問にどのツールを使うか、複数の場所を指す名前をどう扱うか、出発前に予定した経路を再確認して利用者に最新情報を伝える方法をエージェントに説明します。エージェントのスキル用ツールを使ってインストールするか(例:npx skills add Aarekaz/transit-mcp)、ファイルをスキルフォルダーにコピーしてください。
ステートレス Streamable HTTP エンドポイントとして、POST /mcp の利用を推奨します。POST と OPTIONS /sse は互換性のためのエイリアスです。従来の GET SSE、DELETE、セッションメッセージ URL、末尾にスラッシュを付けた形式は 405 を返します。
提供機能
このチェックアウトでは、18 個の MCP ツールを登録しています。内訳は、互換性のある DC/NYC 向けツール 13 個と、グローバル機能の find_transit、plan_trip、get_departures、get_service_status、get_vehicle_status の 5 個です。互換性のあるツールは、到着情報、運行障害、駅、路線、バス、列車、乗り換え、車両位置の情報を WMATA と MTA から直接取得します。
3 つの地域すべてで、5 つのグローバルツールを利用できます。各ツールの機能は次のとおりです。
plan_tripは、公開時刻表とリアルタイム予測を使って、駅間の移動や、短い徒歩を含む地図上の座標からの移動を計画します。ニューヨークと DC では、鉄道網を独自に検索します。SF Bay Area やバスを含むどの地域でも、乗車する路線をroutesに最大 4 つ指定すると、それらを使う実際の便、停留所、乗り換え、徒歩を見つけます。独自に検索できない場合はその理由を示し、各端の近くにある路線と両端を結ぶ路線をrouteHintsで返します。すべての旅程は独立したバリデーターで検証され、乗客がそのまま利用できる平易なstepsが付属します。- 場所の名前は、乗客が入力したとおりに指定できます。1 つの場所を指す名前(Penn Station、SFO、通りを挟んで向かい合う 2 つの駅など)は、その場所にあるすべての駅を対象にします。異なる場所を指す名前(「Broadway」など)の場合、
plan_tripでは各場所からの最適な移動を提示し、readingでラベルを付けてnoticeで説明します。他のツールでは、確認のための質問を提示します。どのツールもユーザーにフォームを表示しません。 get_departuresにtoStopを指定すると、「A から B へ向かう次の列車」に答えます。その停留所まで運行する便のみを表示し、それぞれの到着時刻も示します。get_departuresは、時刻表とリアルタイムの運行更新情報を統合します。NYC では、迂回運行中の列車や時刻表に載っていない列車も含まれ、除外されずに観測済みとして示されます。駅名を直接指定できます。Times Sq-42 St や 14 St-Union Sq のような駅複合施設は 1 つの場所として扱われ、その中のすべての路線の発車情報が表示されます。同じ名前の別々の駅が実際に存在する場合は、選択肢として返されます。get_service_statusは、都市、路線、駅、または便に関する交通機関独自のアラートに加え、その場所のエレベーターとエスカレーターの停止情報も返します。各設備が段差のない経路上にあるか、代替エレベーターがあるか、MTA が推奨する迂回方法も確認できます。accessibility: "step_free"を指定したplan_tripは、階段を使わずにホームへ行ける場所でのみ乗車、降車、乗り換えを行う旅程を計画し、現在エレベーターの停止により利用できない駅を避けます。駅へのアクセス情報は WMATA の GTFS と MTA の駅一覧(片方向のみバリアフリー対応の駅を含む)から取得します。リアルタイムのエレベーター情報がない場合や古い場合は、推測せずにその旨を示します。find_transitは、駅、停留所、路線、列車 ID を特定します。駅は道路上の停留所より上位に、鉄道はバスより上位に表示されます。各候補には、その種類(駅、ホーム、道路上の停留所)、交通手段、路線が記載されます。SFO、Union Square、Penn Station、Grand Central、Dulles など、確認済みのいくつかの地名も利用できます。- 名前は、人が入力する表記で検索できます。「King Street」から King St-Old Town、「42nd Street Times Square」から Times Sq-42 St が見つかり、「Crystl Cty」のようなスペルミスでも該当する場所が見つかります。DC の駅は、WMATA が公表している名称(「Chinatown」、「Convention Center」、「Adams Morgan」)でも検索できます。地域を指定しない場合、すべての地域で名前を検索します。引数なしの
find_transitは、各地域と対応機能の一覧を表示します。一致するものがない場合は、最も近い名前をsuggestionsとして提示しますが、これらが一致したものとして扱われることはありません。 - リアルタイムデータは 2 回目の質問だけでなく、最初の質問から利用できます。静かに動作するコーディネーターが、交通機関のフィードにデータが届くとすぐに、停留所の発車情報を返します。乗客に表示される時刻は、タイムゾーンオフセットを含む交通機関の現地時間です(
18:32-04:00)。 get_vehicle_statusは、列車やバスの位置を表示します。路線上、出発案内または計画済みの旅程にある特定の日付の便上、あるいは駅(駅複合施設内のすべての駅)で確認できます。各列車について、列車 ID(MTA の場合は1A 1023 207/FARなど、WMATA の場合はその番号)、停車中または向かっている駅、直前に停車した駅、行き先を表示します。DC の列車は GPS 座標を保持します。MTA は座標ではなく駅を公開しているため、NYC の列車が駅に停車中の場合はその駅に配置し、駅間にいる場合は推測で座標を補わず、座標なしとして表示します。 NYC のカバレッジには Long Island Rail Road、Metro-North、NYC バスも含まれ、DC には Metrobus が含まれます。移動ではバスを含むすべての交通手段を利用し、Penn Station、Grand Central、Atlantic Terminal などの駅で徒歩で乗り換えます。LIRR と Metro-North の出発案内には番線が表示されます。ネットワークプランナーは、cron が R2 で構築する簡潔な時刻表を検索し、提案された路線を正確に計画・検証します(src/transit/planner/network-plan.tsを参照)。NYC のバスの運行予測、位置情報、アラートは MTA Bus Time から取得します。キー(MTA_BUS_API_KEY)を設定していないセルフホスト可能な Worker では、NYC のバス情報は時刻表のみで提供されます。
WMATA または MTA が実際に変更された時刻表を公開すると、エッジで時刻表が再構築されます。MTA が約1時間ごとに再公開する NYC 地下鉄では、昨日・今日・明日の変更は5分以内に反映され、それより先の日付の変更は最大6時間待って反映されます。511 SF Bay の時刻表は自動的に保存され、オフラインで構築されます。1日の運行の大部分を削除する更新は拒否され、リアルタイムの照合精度を低下させる更新はロールバックされます。ドキュメントページの内部の仕組みでは、図を交えて詳しく説明しています。DC と NYC のグローバル交通は検証記録です。SF Bay のデータは 511 SF Bay と参加事業者から取得し、すべての結果に出典を表示しています。
制約事項
- 深夜など、徒歩圏内で運行している交通手段がない場合、
plan_tripは経路を見つけられず、代わりにrouteHintsを返します。 - NYC の駅間を走る列車には座標がありません。MTA が報告するのは駅の情報であり、GPS 情報ではありません。
- 利用がしばらくなかった後の最初の呼び出しでは、時刻表の読み込みに数秒かかる場合があります。
- 既存の13個のツールは引き続き利用でき、旧クライアント向けに変更されていません。
また、4つの transit:// URI テンプレート(駅、路線、運行障害、バージョン管理されたエンティティ)と、3つの定型プロンプト(service-briefing、commute-planner、accessibility-check)を提供します。移動には plan_trip を使用してください。出発案内から経路を組み立てないでください。グローバルな結果では realtime、scheduled_only、unavailable を区別し、ソースのタイムスタンプ、バージョン、理由、出典情報、JSON のテキストフォールバックを含みます。
Apps 対応のホストでは、13個の DC および NYC ツール向けに Transit Board リソースをレンダリングできます。Apps の検証記録を参照してください。
ランタイムと安全性の境界
- プロトコル: MCP
2026-07-28ステートレス Streamable HTTP。サーバーはセッション、再開機能、サーバープッシュを通知しません。 - リクエストの信頼性: パブリックオリジンとホスト/オリジンの許可リストは、起動時に検証されます。署名付き MRTR リクエスト状態コーデックは MCP メソッドにバインドされ、5分後に有効期限が切れます。
- キャンセル: クライアントの切断によりリクエストのキャンセルが伝播し、MCP ハンドラーと上流の交通情報取得がキャンセルされます。
- キャッシュ: ディスカバリーとツールのメタデータは24時間、パブリックキャッシュ可能です。駅と路線のリソースはパブリックキャッシュ可能ですが、運行障害とバージョン管理されたエンティティのリソースは対象外です。従来の WMATA および MTA ツールでは、引き続き各プロバイダーのキャッシュが使用されます。グローバルツールは、リクエスト中に上流プロバイダーを取得せず、バージョン管理されたアーティファクトとスナップショットを読み込みます。
- レート制限: Cloudflare のロケーションごとに、ソース IP キーあたり60秒間におよそ300リクエストです。共有の外向き IP を使うクライアントは同じグループにまとめられ、適用は最終的に整合します。これは不正利用の防止策であり、ユーザーごとの専用割り当てではありません。
- ロールバック: 使用されていない
MetroMcpAgentクラスと、元のv1Durable Object マイグレーションはロールバック用に残されています。安定化中は削除マイグレーションを追加しないでください。
独自にデプロイする
クライアントは匿名でアクセスできます。セルフホストする Worker には、独自の WMATA および 511 SF Bay API キーに加え、署名付き MRTR 状態に使用する 32 バイト以上の安定した MCP_REQUEST_STATE_KEY が必要です。
bun install --frozen-lockfile
cp .dev.vars.example .dev.vars
bun run dev
チェックイン済みのループバックオリジン、ホスト名許可リスト、ENVIRONMENT=development の値を併用してください。.dev.vars をソース管理に含めないでください。本番環境とプレビュー環境では、それぞれ独自のオリジン、許可リスト、状態キー、WMATA および 511 キー、アーティファクトバケット、MCP_RATE_LIMITER バインディングを使用します。
承認済みのデプロイ前には、ドライランのみを実行してください。
production_out=$(mktemp -d /tmp/transit-mcp-production.XXXXXX)
preview_out=$(mktemp -d /tmp/transit-mcp-preview.XXXXXX)
node node_modules/wrangler/bin/wrangler.js deploy --dry-run --env "" --outdir "$production_out"
node node_modules/wrangler/bin/wrangler.js deploy --env preview --dry-run --outdir "$preview_out"
検証
bun run build && bun run test && bun run test:apps を実行してください。適合性ランナーは、独立したローカル Worker を起動・停止し、インストール済みの固定バージョンの審査ツールを使用して、実際のテストに対応付けられた固定の製品プロファイルを評価します。公式スコア全体は別途報告され、製品プロファイルの合格を意味するものではありません。
./scripts/run-conformance.sh
最新のエビデンスと未通過のリリースゲートについてはグローバル交通機関の検証、有効化の前提条件についてはSF ロールアウト、リクエスト境界についてはセキュリティアーキテクチャをご覧ください。過去の MCP 2026 記録は履歴上のエビデンスであり、このブランチの受け入れ基準ではありません。
サポートと法的情報
ライセンス
MIT。LICENSEをご覧ください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。