tfl-mcp-server について
tfl-mcp-serverは、TfLのリアルタイム交通情報をMCPツールとしてAIアシスタントに提供します。運行状況、到着情報、経路、自転車ステーション、混雑度、運賃を扱い、stdioとステートレスなStreamable HTTPに対応します。
主な機能
- 01路線の運行状況と乱れ
- 02到着情報と経路検索
- 03自転車拠点・混雑度・運賃
- 04インタラクティブな運行状況ボード
- 05stdioとStreamable HTTPのトランスポート
活用シーン
- 01ロンドンの路線運行状況の確認
- 02停留所の次の到着便の検索
- 032地点間の経路計画
MCP 対応
TfL Unified APIのデータをMCPクライアント向けのツールとして提供し、運行状況、到着情報、経路、自転車拠点、混雑度、運賃を照会できます。stdioとステートレスなStreamable HTTPに対応します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
docker run -i --rm -e TFL_APP_KEY ghcr.io/oneill9/tfl-mcp-server:1.5.2TFL_APP_KEYシークレットTfL API key — recommended for effective use. Without a key, TfL applies strict rate limits that will impact most real-world usage. Register free at https://api-portal.tfl.gov.uk/ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。
ghcr.io/oneill9/tfl-mcp-server:1.5.2stdioツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
TfL MCP サーバー
免責事項: これはコミュニティによって構築されたプロジェクトです。Transport for London(TfL)とは提携、承認、関係していません。このプロジェクトは、一般公開されている TfL Unified API を利用しています。
TfL(Transport for London)Unified API をツールとして公開する MCP サーバーです。Claude などの AI アシスタントが、ロンドンの交通機関の最新データを照会できます。
バージョン 2 は、MCP 2026-07-28 プロトコルリビジョンを使用する、Node.js 22 による単一の実装です。ローカルホスト向けの stdio、npm、MCPB に加え、リモートデプロイ向けの /mcp でのステートレスな Streamable HTTP をサポートしています。
プロトコルの互換性: Streamable HTTP が対応するのは、最新の MCP
2026-07-28のみです。stdio エントリーポイントは、Codex などのデスクトップホスト向けに 2025 年代の初期化も受け付けます。一方、最新の stdio クライアントは引き続き2026-07-28をネゴシエートします。レガシー HTTP/SSE はサポートしていません。
はじめに
ステップ 1 — Claude Desktop に追加する
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
オプション A:Node.js MCPB(推奨)
GitHub Releases から tfl-mcp-server.mcpb をダウンロードし、Claude Desktop にインストールします。
オプション B:npm
Node.js 22 以降をインストールしたうえで、Claude Desktop から公開済みパッケージを指定します。
{
"mcpServers": {
"tfl-mcp-server": {
"command": "npx",
"args": ["-y", "@oneill9/[email protected]"],
"env": { "TFL_APP_KEY": "your_key_here" }
}
}
}
オプション C:Docker
{
"mcpServers": {
"tfl-mcp-server": {
"command": "docker",
"args": ["run", "-i", "--rm", "-e", "TFL_APP_KEY", "ghcr.io/oneill9/tfl-mcp-server:latest"]
}
}
}
ステップ 2 — TfL API キーを追加する(推奨)
キーがない場合、TfL によって厳しいレート制限が適用されるため、実際の多くの用途で影響が出ます。無料キーを登録し、TFL_APP_KEY 環境変数で渡してください。Docker の例では、-e TFL_APP_KEY によってこの値をコンテナに渡します。
"env": { "TFL_APP_KEY": "your_key_here" }
ステップ 3 — Claude Desktop を再起動して質問する
例:「Central 線は通常どおり運行していますか?」、「Oxford Circus から次のバスは何時ですか?」
ソース、Docker、Streamable HTTP の使用方法については、docs/installation.md をご覧ください。
ツール
| ツール | 説明 | TfL エンドポイント |
|---|---|---|
service_status | 交通機関の種類ごとの現在の運行状況と運行障害 | GET /Line/Mode/{modes}/Status |
arrivals | 停留所名を指定して、到着予定をリアルタイムで取得 | GET /StopPoint/{naptan}/Arrivals |
journey | 2 地点間の経路を計画 | GET /Journey/JourneyResults/{from}/to/{to} |
bike_points | Santander Cycles のドッキングステーション一覧 | GET /BikePoint |
crowding | 駅名を指定して、混雑度をリアルタイムで取得 | GET /Crowding/{naptan}/Live |
fares | 名称を指定した 2 つの停留所間の運賃情報 | GET /StopPoint/{id}/FareTo/{targetId} |
注: サーバーは内部で
/StopPoint/Search/{query}エンドポイントを使用し、arrivals、crowding、faresツールで停留所名を NaPTAN ID に自動変換します。
MCP Apps UI
service_status ツールは、段階的な拡張機能として MCP Apps をサポートしています。UI 対応ホスト(例:Claude Desktop)では、テキスト応答とともにインタラクティブな運行状況ボードを表示できます。UI 非対応のホストには、標準のテキスト出力が引き続き返されます。
- UI は自己完結型です(HTML/CSS をインラインで記述し、外部アセットは使用しません)
- テキストの代替出力とともに、構造化された JSON データが返されます
- 追加の設定は不要です。ホストのサポート状況は自動的に検出されます
詳しくは docs/tools.md をご覧ください。
認証
MCPB とデフォルトのコンテナーモードでは、stdio トランスポートを使用します。オプションの Streamable HTTP モードでは、OAuth などのサーバー側認証は実装されていません。適切な信頼できるアクセスレイヤーの背後でのみデプロイしてください。
TfL API では、環境変数として設定するシンプルな API キー(TFL_APP_KEY)を使用します。API キーの設定を強く推奨します。キーがない場合、TfL の厳格なレート制限により、実際の利用のほとんどに影響します。登録は無料です。この MCP サーバーを利用するために、TfL ポータル以外での OAuth フロー、ログイン、アカウント作成は不要です。
設定
| 環境変数 | デフォルト | 説明 |
|---|---|---|
TFL_APP_KEY | (なし) | TfL API キー — api-portal.tfl.gov.uk で登録してください |
TFL_APP_ID | (なし) | TfL App ID — ID とキーの両方が発行された古い API 登録の場合のみ必要です |
MCP_MAX_REQUEST_BODY_BYTES | 1048576 | Streamable HTTP で受け付ける JSON リクエスト本文の最大サイズ |
MCP_REQUEST_TIMEOUT_MS | 30000 | Streamable HTTP リクエストのタイムアウト(ミリ秒) |
MCP_HEADERS_TIMEOUT_MS | 10000 | Streamable HTTP ヘッダーのタイムアウト(ミリ秒)。リクエストのタイムアウトを超えてはなりません |
API キーの設定を強く推奨します。キーがない場合、TfL の厳格なレート制限により、実際の利用のほとんどに影響します。api-portal.tfl.gov.uk で無料登録できます。
ソースから実行する
Node.js 22 以降が必要です。ロックファイルからインストールし、サーバーを起動する前にビルドしてください。
cd node
npm ci
npm run build
node dist/index.js
これにより、stdio トランスポートが起動します。ステートレスな Streamable HTTP を使用する場合:
cd node
HOST=127.0.0.1 PORT=8080 node dist/index.js --http
MCP 2026-07-28 クライアントを http://127.0.0.1:8080/mcp に接続してください。他のホスト名で提供する場合は、MCP_ALLOWED_HOSTS に許可するホスト名をカンマ区切りで設定してください。
Claude Desktop での使用方法については、docs/installation.md を参照してください。
テスト
ユニットテストではモック HTTP サーバーを使用するため、ネットワークアクセスや API キーは不要です。
cd node && npm test
Streamable HTTP の受け入れテストは npm test に含まれています。公式の固定 MCP 2026-07-28 要件セットは、個別に実行してください(このセット外のオプションの拡張プローブは採点対象外です)。
cd node && npm run test:conformance
適合性テスト用フィクスチャでは、共有のモダン専用 HTTP アダプターを通じて、本番環境で使用する TfL のツールとリソースを登録します。また、審査用のハードコードされたプローブに必要な、テスト専用の診断ツール、リソース、プロンプト、フローも追加します。これらの診断機能は、本番用エントリーポイントでは公開されません。
コントラクトテストでは、稼働中の TfL API を呼び出します。
cd node && TFL_APP_KEY=your_key_here npm run contractTest
bash scripts/test-distributions.sh で、パッケージ化された npm CLI、MCPB、コンテナーディストリビューションをビルドし、スモークテストを実行します。Docker が利用できない場合、スクリプトはコンテナーチェックをスキップします。
サポート
ご質問、バグ報告、機能リクエストは、GitHub Issues で issue を作成してください。
プライバシーポリシー
この MCP サーバーは、AI アシスタントと TfL Unified API の間でローカルプロキシとして動作します。TfL にクエリを転送するために必要な範囲を超えて、個人データを収集、保存、送信することはありません。
- データ収集: アナリティクスやテレメトリーは収集しません。運用上必要な限定的な診断情報は標準エラーに出力されますが、サーバーによって保存されることはありません。ホスト側が独自のログポリシーに基づいて保持する場合があります。
- 利用と保存: クエリはリアルタイムで TfL に転送され、レスポンスはすぐに返されます。クエリ履歴や結果は保存されません。
- 第三者との共有: リクエストは TfL Unified API(
api.tfl.gov.uk)に転送されます。TfL における API 利用データの取り扱いについては、TfL のプライバシーポリシーをご覧ください。 - データ保持: サーバーはデータを保持せず、リクエスト間で状態を維持しません。ホストが管理する標準エラーの保持は、サーバーの管理範囲外です。
- お問い合わせ: プライバシーに関する懸念がある場合は、https://github.com/oneill9/tfl-mcp-server/issues で Issue を作成してください。
プライバシーポリシーの全文は PRIVACY.md をご覧ください。
コンプライアンス
このサーバーは、Anthropic Software Directory Terms および Anthropic Software Directory Policy への準拠について審査を受けています。準拠に関する声明とメンテナーの取り組みの全文は、COMPLIANCE.md をご覧ください。
TfL API リファレンス
- Unified API:https://api.tfl.gov.uk/
- API ポータル/キー登録:https://api-portal.tfl.gov.uk/
- Swagger UI:https://api.tfl.gov.uk/swagger/ui/index.html
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。