SF Bay Area Transit MCP について
SF Bay Area Transit MCPは、AIアプリでベイエリアの公共交通を使った経路を計画し、停留所の発車予定を確認するサービスです。読みやすい案内に加え、対応するMCP Appsではインタラクティブな行程詳細を表示し、Transitousのデータを利用します。
主な機能
- 01ベイエリアの場所と停留所を検索
- 02出発時刻または到着時刻を指定して経路計画
- 03停留所の次の発車を確認
- 04公共交通、徒歩、自転車を比較
- 05対応アプリでインタラクティブな行程詳細を表示
活用シーン
- 01ベイエリア内の地点間の経路を調べる
- 02期限までに到着する行程を計画
- 03停留所の次の発車を確認
- 04公共交通と徒歩や自転車を比較
MCP 対応
場所検索、経路計画、停留所の発車情報、サービス情報のツールをMCPクライアントに提供します。リモート接続はStreamable HTTP、ローカル接続はstdioに対応します。
設定
リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。
https://mcp.riv.lc/sf-transit/mcpclaude mcp add --transport http czekaj-sf-transit https://mcp.riv.lc/sf-transit/mcp{"mcpServers":{"czekaj-sf-transit":{"type":"http","url":"https://mcp.riv.lc/sf-transit/mcp"}}}Cursor で開く{"servers":{"czekaj-sf-transit":{"type":"http","url":"https://mcp.riv.lc/sf-transit/mcp"}}}VS Code で開く{"mcpServers":{"czekaj-sf-transit":{"type":"http","url":"https://mcp.riv.lc/sf-transit/mcp"}}}{"mcpServers":{"czekaj-sf-transit":{"serverUrl":"https://mcp.riv.lc/sf-transit/mcp"}}}コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。
ツール
詳細

SF Bay Area Transit MCP
Lucas Czekaj が作成(X: @0xLCZ)。Reindex Ventures LLC が運営・公開しています。
AI エージェントを使って、サンフランシスコとベイエリアでの移動を計画できます。徒歩で移動する場所、利用するバスや電車、乗り換え場所、出発時刻と到着時刻が表示されます。
無料で利用できます。API キーや認証は不要です。 リモート MCP サーバーに対応した AI エージェントやアプリに接続するか、コンピューター上でサーバーを実行してください。MCP は AI アプリをツールに接続します。MCP Apps に対応したアプリでは、インタラクティブな移動の詳細を表示できます。ホスト型サービスは Cloudflare Workers Free で実行されます。Transitous が経路検索、場所検索、停留所の出発情報を提供します。
「フェリービルディングからベイカービーチまで、今出発するとしたらどう行けばいいですか?」
「明日の朝9時までにフェリービルディングに着きたいです。」
「公共交通機関と自転車を比較して、乗り換えは1回までにしてください。」
「エンバカデロ BART から次に出発する便は何ですか?」
「エンバカデロから次に出発する Muni N の便を表示してください。」
デフォルトのプロバイダーは、小規模かつ非商用のオープンソース利用を対象としています。これはコミュニティサービスであり、利用可能であることは保証されません。プロバイダーの詳細をご覧ください。
はじめに
ホスト型サービスに接続する
-
AI エージェントの MCP またはコネクターの設定で、公式のホスト URLを使ってリモートサーバーを追加します。
https://mcp.riv.lc/sf-transit/mcp -
尋ねられた場合は、認証をなしに設定します。
-
「フェリービルディングからベイカービーチまで、今出発するとしたらどう行けばいいですか?」と尋ねます。
ユーザーガイドと IT レビューでは、セットアップ、ツールの権限、データの取り扱い、サポート、サービスの制限について説明しています。場所検索、移動の座標、指定された停留所 ID と出発時刻は Transitous に送信されます。プライバシーポリシーをご覧ください。
GitHub からローカルサーバーをインストールする
Node.js 22.12 以降と Git が必要です。
Claude Desktop の場合は、MCP 設定に次の内容を追加します。公開リポジトリからサーバーをインストールして起動します。
{
"mcpServers": {
"sf-transit": {
"command": "npx",
"args": [
"--yes",
"--package=git+https://github.com/czekaj/sf-transit-mcp.git",
"sf-transit-mcp"
]
}
}
}
Claude Desktop を再起動して、移動経路を尋ねます。Claude Code の場合:
claude mcp add sf-transit -- npx --yes --package=git+https://github.com/czekaj/sf-transit-mcp.git sf-transit-mcp
ローカルコピーを実行する
git clone https://github.com/czekaj/sf-transit-mcp.git
プロジェクトディレクトリで次を実行します。
npm ci --ignore-scripts
npm run build
Claude Desktop の場合は、以下の例をローカルコピーの完全なパスに置き換えてください。
{
"mcpServers": {
"sf-transit": {
"command": "node",
"args": ["/absolute/path/to/sf-transit-mcp/dist/stdio.js"]
}
}
}
Claude Desktop を再起動します。Claude Code の場合は、同じローカルサーバーを登録します。
claude mcp add sf-transit -- node /absolute/path/to/sf-transit-mcp/dist/stdio.js
サーバーは認証情報や環境変数なしで起動します。移動のリクエストには出発地の住所を含めるか、会話ですでに使用した住所を使ってください。このサービスは自宅の住所を保存しません。一致する場所が複数ある場合は、経路を計画する前に目的の場所を選んでください。
**プライバシー:**場所検索、移動の座標、指定された停留所 ID と出発時刻は Transitous に送信されます。同サービスのプライバシーポリシーによると、リクエスト URL は最長2日間ログに記録されます。このアプリケーションのコードは住所や移動結果をログに記録したり保存したりしません。AI アプリやホスティングプロバイダーには、それぞれ独自のデータ保持方針があります。プロジェクトのプライバシーポリシーでは、データの受信者と取り扱い方法を説明しています。
サポートについては、サポートを確認するか、GitHub の Issueを開いてください。セキュリティまたはプライバシーに関する報告は、[email protected]までお送りください。セキュリティをご覧ください。
できること
| ツール | 目的 |
|---|---|
search_places | 座標とともに、ベイエリア内で一致する住所、ランドマーク、停留所を検索します。 |
plan_trip | 今すぐ出発する、指定時刻以降に出発する、または指定時刻までに到着する旅程を計画します。 |
get_stop_departures | ベイエリアの選択した停留所からの今後の出発便を取得し、利用可能な場合はリアルタイムの予測時刻も表示します。 |
get_service_info | Transitous に接続せずに、現在時刻、データソース、クレジット、サービスの制限を確認します。 |
公共交通機関を使う旅程には、停留所まで、および停留所からの徒歩移動が含まれます。乗り換え回数を制限したり、車いす向けルートのオプションを指定したり、公共交通機関と徒歩または自転車での移動を比較したりできます。結果には、読みやすい案内とアプリで表示できるデータが含まれます。
**MCP の互換性:**リモート接続では Streamable HTTP、ローカル接続では stdio を使用して、プロトコルバージョン 2026-07-28 をサポートしています。以前のバージョンにも対応しています。ローカルテストでは、現行および以前の接続手順を両方とも確認します。テスト済みのバージョンとクライアントの制限をご覧ください。
時刻には、夏時間の変更も含め、ベイエリアの太平洋時間帯である America/Los_Angeles を使用します。所要時間と出発前の待ち時間は別々に表示されます。バス、電車、フェリーの各区間には、時刻表の時刻かリアルタイム予測かが示されます。プロバイダーは予測情報の経過時間を報告しません。リアルタイム予測が古くなっている場合があります。
インタラクティブな旅程
Claude など、MCP Appsに対応したアプリでは、plan_trip にインタラクティブな旅程の詳細も表示されます。
- 出発時刻と到着時刻、乗り換え、徒歩時間を含む旅程の候補を比較できます。
- 旅程の詳細を開いて、停留所、移動案内、ホーム、徒歩区間、乗り換え時の待ち時間を確認できます。
- 公共交通機関の時刻がリアルタイム予測か時刻表に基づくものかを確認できます。
- 「更新」を選択すると、同じ旅程を更新できます。「今すぐ出発」は現在時刻に更新され、指定した出発時刻や到着期限はそのまま維持されます。
旅程の選択と詳細の表示には、すでに返された結果を使用します。更新すると旅程を再度リクエストし、通常の旅程検索と同じリクエスト制限が適用されます。表示は自動更新されず、外部マップも読み込みません。MCP Apps に対応していないアプリには、読みやすい旅程案内と同じ結果データが返されます。
インタラクティブ表示は、アプリが対応している場合、ライトテーマとダークテーマ、狭い画面、キーボード操作、全画面での詳細表示をサポートします。旅程の候補と旅程の各区間を順番に表示します。道路地図は含まれません。
Claude に表示された、フェリービルディングからベイカービーチまでの旅程です。画像を選択すると、全サイズで表示できます。
Transitous には、Muni、BART、Caltrain、AC Transit、VTA、SamTrans、地域フェリーのデータソースが掲載されています。利用可能な旅程や予測は、現在提供されているデータによって異なります。場所の検索対象はベイエリアに限られます。徒歩案内では、曲がり角ごとの指示はなく、場所と停留所間の接続経路を説明します。車いす向けルートのオプションは、徒歩経路と乗り換え経路に適用されます。車両のアクセシビリティは不明な場合があります。各公共交通機関の区間を確認してください。データでは、エレベーターの現在の稼働状況は確認できず、バリアフリーの入口や経路も保証されません。結果には、運賃、乗車券、運行情報、自転車シェアの利用状況は含まれません。
次の出発
停留所の次の出発便を確認するには、出発案内を開きます。乗車区間のステップで、この停留所の次の出発を選択してください。各出発便には、リアルタイムの予測時刻または予定時刻に加えて、路線、行き先、運行事業者、乗り場、運休情報、乗車情報が提供されている場合に表示されます。
出発案内には、便、行き先、出発時刻が3列で表示されます。時刻の下には、リアルタイムまたは予定の別が表示されます。便名は省略せずに表示され、予定時刻との比較は、表示される日付または時刻が出発予測と異なる場合にのみ表示されます。
もう一度出発案内を取得するには、[更新]を選択してください。選択中の経路は変更されません。路線と行き先のフィルターは、すでに読み込まれた結果を絞り込みます。追加の出発便を取得することはありません。自動ポーリングや再試行はありません。[取得日時]は結果を取得した時刻を示し、運行事業者が予測を最後に更新した時刻ではありません。時刻は太平洋時間で表示されます。
以下のスクリーンショットは、現在の出発便ではなく、サンプルデータを使ったインタラクティブ表示です。
スクリーンショットを選択すると、実寸で表示できます。ビジュアルデザインの変遷とデータソースの調査結果については、デザインノートとリアルタイム到着情報の調査をご覧ください。
Cloudflare でのホスティング
同じコードで、Streamable HTTP を使用したリモート MCP 接続を /sf-transit/mcp で提供します。既存の /mcp 接続も引き続き動作します。コンテナ、データベース、ストレージバインディング、API キー、OAuth、バックグラウンドジョブは使用しません。サーバーをお使いのコンピューターで実行すれば、別途ホスティングサービスを利用する必要はありません。Workers Free では無料のホスティング枠が提供されます。サービスをデプロイする人には Cloudflare アカウントが必要ですが、MCP エンドポイントに接続する人には必要ありません。
ローカルでビルドしてプレビューします。
npm run build:worker
npm run dev:worker
build:worker は、デプロイせずにローカルでビルドします。ローカルのテスト URL は http://localhost:8787/sf-transit/mcp です。
ご自身の Cloudflare アカウントに公開するには、wrangler.jsonc を確認し、Workers Free アカウントを使用して、Wrangler のデプロイコマンドをご自身で実行してください。リモート MCP クライアントを、認証不要の https://<worker>.<subdomain>.workers.dev/sf-transit/mcp URL に接続します。クラウドで実行されるエージェントは、お使いのコンピューターの localhost URL を使用できません。
Claude のリモートコネクターでは、wrangler.jsonc の vars.PUBLIC_MCP_URL に、末尾のスラッシュを付けず、/sf-transit/mcp を含む正確なコネクター URLを設定してください。Claude はインタラクティブビューに別の Web アドレスを使用します。サーバーはこの URL からそのアドレスを計算します。ビューのアドレスを登録する必要はありません。ローカルで使用する場合や、アプリに既定のアドレスを選ばせる場合は、値を空のままにしてください。コネクター URL を変更した場合は、この値も更新してください。
Reindex Ventures LLC の本番構成では、https://mcp.riv.lc/sf-transit/mcp を使用します。wrangler.jsonc の production という名前の環境では、sf-transit-mcp Worker、会社のホスト名、および https://reindexventures.com へのルートリダイレクトが設定されています。リポジトリ名は引き続き czekaj/sf-transit-mcp です。
Cloudflare の連携 Git ビルドでは、ビルドコマンドに npm run build:widget、デプロイコマンドに npx wrangler deploy --env production を使用してください。本番用 URL 変数はこの構成から取得されるため、URL 変数を手動で設定したり、別の構成ファイルを用意したりする必要はありません。既定の構成にはカスタムドメインがないため、フォークしたリポジトリも独立してデプロイできます。Cloudflare のデプロイガイドをご覧ください。
デプロイせずに、メンテナーの構成をローカルで確認します。
npm run build:worker:production
公開環境へのデプロイは、Transitous の利用ポリシーに従う必要があります。多くのユーザーにサービスを提供したり、大量の自動トラフィックを送信したりする前に、メンテナーと調整してください。実行中のサーバーまたは Worker インスタンスごとに、Transitous へのリクエスト数は直近 1 分間で 20 件、直近 24 時間で 600 件までに制限されます。これらの制限はインスタンスの再起動時にリセットされ、全インスタンスの合計リクエスト数は制限されません。サービスはバックグラウンドで更新をリクエストしたり、自動的に再試行したりしません。停留所の出発時刻をリクエストすると、Transitous へのリクエストが 1 件発生します。通常の乗換検索では、Transitous へのリクエストが 1 件発生します。交通手段を比較すると、交通手段ごとに 1 件のリクエストが発生します。
開発
npm run check
npm run build:worker
テストでは架空の例とシミュレートしたサービス応答を使用します。実際の交通機関 API は呼び出しません。Worker のビルドと型生成はローカルで実行されます。Wrangler の設定を変更した後は、型を再生成してください。
npm run types:worker
架空の交通機関サービスと公共施設の例を使って、インタラクティブビューをプレビューします。
npm run preview:widget
http://127.0.0.1:8798 を開きます。プレビューでは、分離されたフレーム内で MCP Apps 接続を使用します。コントロールには、ライトテーマとダークテーマ、狭い画面、空の結果、更新の失敗が表示されます。交通機関 API へのリクエストは一切行いません。ビューを編集した後は、再ビルドして再読み込みしてください。npm run build:widget を実行すると、HTML とファイルの内容で識別される MCP リソースが生成されます。生成ファイルはコミットされません。
MCP 接続、Transitous へのリクエスト、表示コードはそれぞれ独立しています。リクエストとレスポンスは、Transitous がリンクしている MOTIS API バージョンに準拠します。貢献とテストのガイダンスについては、CONTRIBUTING.md を参照してください。
Claude の提出資料には、掲載文、レビュアー向けの手順、承認済みのスクリーンショット素材、残りの公開要件が含まれています。掲載内容は草案です。プロバイダーの利用には、Transitous の公開ポリシーが適用されます。条件を満たす軽度の利用には、個別の事前承認は不要です。
ホストされたサービスは、公式 MCP Registry に io.github.czekaj/sf-transit-mcp として掲載されています。公開ガイドには、確認済みの提出内容、オフラインでのマニフェスト検証、手動での公開ワークフロー、今後の公開に必要な承認が記録されています。
ウィジェットのプレビューには、架空の例を使った BART、Muni、Caltrain の単独の出発案内板と、経路詳細から開く案内板も含まれています。Caltrain の例では、長いサービス名と重複する予定時刻を確認します。
プロジェクトのアートワーク
SF アイコンは、ゴールデンゲートブリッジ、交通ルートの端点、路面電車を組み合わせたものです。元の AI 生成 PNG は assets/route-monogram.png で、生成プロンプトも同じ場所にあります。MCP サーバー、ツール、リソースの説明には、MCP アイコン仕様に従って PNG アイコンが含まれています。表示するかどうかはアプリが選択します。
Worker は、ホストされたアイコン URL が必要なディレクトリ用に、512 × 512 の PNG も /sf-transit/icon.png で提供します。デプロイ後の会社 URL は https://mcp.riv.lc/sf-transit/icon.png です。認証やリダイレクトなしで画像を直接配信し、別の画像ホスティングサービスではなく既存の Worker を使用します。
npm run build:branding を実行すると、元のアートワークからロゴ、各サイズのアイコン、assets/social-preview.png が生成されます。このスクリプトは選択した画像を切り抜いてサイズ変更します。画像サービスは呼び出しません。元画像を変更する場合は、scripts/build-branding.mjs の切り抜きとサイズ設定を調整してください。ソーシャルプレビューは、GitHub の Settings → Social preview 用の 1280 × 640 の画像です。これをコミットしても、その設定は変更されません。アートワークにはプロジェクトの MIT ライセンスが適用されます。
ライセンスとクレジット
コード:MIT。交通機関と地図のデータには、それぞれ独自のライセンスが適用されます。
Transitous によるルーティング · Transitous のデータソース · © OpenStreetMap の貢献者 · 511.org 提供のベイエリアデータ
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。



