mcpField
T
tfl-mcp-server

tfl-mcp-server

ローカル
github.com/oneill9地図・旅行14 週間前に更新

tfl-mcp-server について

tfl-mcp-serverは、TfLのリアルタイム交通情報をMCPツールとしてAIアシスタントに提供します。運行状況、到着情報、経路、自転車ステーション、混雑度、運賃を扱い、stdioとステートレスなStreamable HTTPに対応します。

主な機能

  1. 01路線の運行状況と乱れ
  2. 02到着情報と経路検索
  3. 03自転車拠点・混雑度・運賃
  4. 04インタラクティブな運行状況ボード
  5. 05stdioとStreamable HTTPのトランスポート

活用シーン

  1. 01ロンドンの路線運行状況の確認
  2. 02停留所の次の到着便の検索
  3. 032地点間の経路計画

MCP 対応

TfL Unified APIのデータをMCPクライアント向けのツールとして提供し、運行状況、到着情報、経路、自転車拠点、混雑度、運賃を照会できます。stdioとステートレスなStreamable HTTPに対応します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"oneill9-tfl": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"TFL_APP_KEY",
"ghcr.io/oneill9/tfl-mcp-server:1.5.2"
],
"env": {
"TFL_APP_KEY": "<TFL_APP_KEY>"
}
}
}
}
起動コマンドdocker run -i --rm -e TFL_APP_KEY ghcr.io/oneill9/tfl-mcp-server:1.5.2
設定が必要な環境変数
TFL_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 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
ocighcr.io/oneill9/tfl-mcp-server:1.5.2

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

TfL MCP サーバー

TfL MCP サーバーのロゴ

免責事項: これはコミュニティによって構築されたプロジェクトです。Transport for London(TfL)とは提携、承認、関係していません。このプロジェクトは、一般公開されている TfL Unified API を利用しています。

GitHub リリース ライセンス:MIT

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
journey2 地点間の経路を計画GET /Journey/JourneyResults/{from}/to/{to}
bike_pointsSantander 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_BYTES1048576Streamable HTTP で受け付ける JSON リクエスト本文の最大サイズ
MCP_REQUEST_TIMEOUT_MS30000Streamable HTTP リクエストのタイムアウト(ミリ秒)
MCP_HEADERS_TIMEOUT_MS10000Streamable 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 リファレンス

コメント

MCP は初めてですか?

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

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