Skip to main content
Glama

TfL MCP Server

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

GitHub release License: 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/tfl-mcp-server@2.0.0"],
      "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 を再起動して質問を始める

例: 「セントラル線は正常に運行していますか?」、「オックスフォード・サーカスからの次のバスはいつですか?」

ソース、Docker、Streamable HTTP のオプションについては、docs/installation.md を参照してください。

Related MCP server: TFL MCP Server for Poke

ツール

Tool

Description

TfL Endpoint

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) を使用します。キーは強く推奨されます — キーがない場合、TfL は厳しいレート制限を適用し、ほとんどの実際の使用に影響します。登録は無料です。この MCP サーバーを使用するために、TfL ポータル以外の OAuth フロー、ログイン、アカウントは必要ありません。

設定

Environment Variable

Default

Description

TFL_APP_KEY

(none)

TfL API キー — api-portal.tfl.gov.uk で登録

TFL_APP_ID

(none)

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 リファレンス

Related MCP Connectors

Related MCP Servers