Taiwan TDX transport について
Taiwan TDX transportは、TDX APIで台湾の交通データを照会する非公式MCPサーバーです。公共交通、道路、駐車場などを調べるタスク指向のツールをMCPクライアントに提供します。
主な機能
- 01YouBikeとバスのリアルタイム情報
- 02鉄道の時刻、運賃、運行情報
- 03航空便とフェリーの状況・時刻
- 04道路交通と所要時間
- 05駐車場とEV充電器
- 06任意のTDXエンドポイント照会
活用シーン
- 01自転車のある近くのYouBikeを検索
- 02バスの到着や鉄道の空席を確認
- 03航空便の遅延やフェリーの欠航を確認
- 04駐車場や空き充電コネクターを探す
MCP 対応
stdio経由で台湾のTDX交通データをMCPクライアント向けのツールとして公開します。TDX Client IdとClient Secretが必要です。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
npx -y tdx-taiwan-mcpTDX_CLIENT_IDTDX API key Client Id (tdx.transportdata.tw → 會員中心 → 資料服務 → API金鑰).TDX_CLIENT_SECRETシークレットTDX API key Client Secret.TDX_REQUESTS_PER_SECONDClient-side rate limit; match it to your TDX plan (0 turns it off).TDX_MAX_ITEMSMost items any tool returns.TDX_TOOLSTool groups to load: bike, bus, rail, flight, ferry, road, parking, ev, raw; e.g. bus,rail or -road,-raw.TDX_CACHE_DIRFolder where static data is kept for a day between runs (default ~/.cache/tdx-taiwan-mcp); off turns it off.ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。
ツール
47掲載時のツール一覧 · 今日に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| lat | number | はい | 緯度(WGS84)。例:25.0478。 |
| lon | number | はい | 経度(WGS84)。例:121.517。 |
| city | string | はい | 都市:TDX コード(Taipei、NewTaipei、Taoyuan、Taichung、Tainan、Kaohsiung、Hsinchu、HsinchuCounty、MiaoliCounty、ChanghuaCounty、YunlinCounty、Chiayi、ChiayiCounty、PingtungCounty、TaitungCounty)、または中国語名(臺北市、新北市、高雄市など)。 |
| want | enum | いいえ | 営業中で、貸し出し可能な自転車("bike"、既定値)または返却可能な空きドック("dock")があるステーションのみを対象にします。"any" はすべてのステーションを一覧表示します。bike | dock | any |
| limit | integer | いいえ | 返すステーション数の上限(既定値は 5)。 |
| radiusMeters | integer | いいえ | 検索半径(メートル単位、既定値は 1000)。 |
詳細
tdx-taiwan-mcp
tdx-taiwan SDK を基盤に構築された、台湾の
TDX(Transport Data eXchange) API 向けの非公式 MCP サーバーです。Claude などの MCP
クライアントが、「自転車がある最寄りの YouBike はどこですか?」「307 はいつ西門に着きますか?」「今夜、左営行きでまだ座席がある高速鉄道はどれですか?」「CI100 は遅延していますか?」や「台北駅の近くで CCS2 車を充電できる場所はどこですか?」といった質問に回答できます。
- タスクに応じたツール:名前(中国語または英語。台/臺は同一視)または場所で検索し、生のステータスコードではなく「4分」「最終バスは通過済み」のように読みやすい形式で出力します
- 都市名は TDX コードまたは中国語(
Taipei、臺北市、台北)で指定できます - 結果のサイズには上限があります。静的リストはキャッシュされ、ライブデータは15秒間キャッシュされます
- ツールでまだ対応していない任意の TDX エンドポイントには
tdx_getを使用できます - stdio で動作します。Node.js 20 以降が必要です
TDX キーの取得
tdx.transportdata.tw で登録し、會員中心 → 資料服務 → API金鑰 から Client Id と Client Secret をコピーします。
セットアップ
Claude Code
claude mcp add tdx \
-e TDX_CLIENT_ID=your-client-id -e TDX_CLIENT_SECRET=your-client-secret \
-- npx -y tdx-taiwan-mcp
Claude Desktop およびその他のクライアント
サーバーをクライアントの MCP 設定に追加します(Claude Desktop の場合は
claude_desktop_config.json)。
{
"mcpServers": {
"tdx": {
"command": "npx",
"args": ["-y", "tdx-taiwan-mcp"],
"env": {
"TDX_CLIENT_ID": "your-client-id",
"TDX_CLIENT_SECRET": "your-client-secret"
}
}
}
}
環境変数
| 変数 | デフォルト | 説明 |
|---|---|---|
TDX_CLIENT_ID | 必須 | TDX API キーの Client Id |
TDX_CLIENT_SECRET | 必須 | TDX API キーの Client Secret |
TDX_REQUESTS_PER_SECOND | 5 | クライアント側のレート制限。TDX のプランに合わせて設定してください(0 で無効) |
TDX_MAX_ITEMS | 200 | 各ツールが返す項目数の上限 |
作業ディレクトリにある .env ファイルも読み込まれます。すでに設定されている変数が優先されます。
ツール
YouBike とバス
| ツール | 回答する内容 |
|---|---|
youbike_nearby | 現在、自転車(または空きドック)がある座標付近の最寄りの YouBike/Moovo ステーション |
youbike_station | 名前または住所で YouBike ステーションを検索し、リアルタイムの自転車、電動自転車、空きドックを表示 |
bus_stops_nearby | 座標付近のバス停と、各バス停の方面、都市路線およびバス路線 |
bus_stop_arrivals | 1つのバス停に到着予定のすべてのバス。全路線をまとめて、到着が早い順に表示 |
bus_route_search | 名前または終点のバス停でバス路線を検索し、起終点、運行事業者、運賃を表示 |
bus_route_stops | 路線の停留所を順番に表示。方向と支線ごとに確認できます |
bus_eta | 路線の停留所におけるリアルタイムの到着予測。必要に応じて1つの停留所に絞り込めます |
bus_timetable | 指定日の路線の発車予定、または運行間隔 |
bus_alerts | 現在および今後の迂回、運休、停留所の移動と最新情報 |
bus_positions | 路線上のバスの現在位置、速度、ステータス |
バスのツールでは、都市(Taipei、NewTaipei など)を指定します。公路客運/國道客運の長距離バスの場合は InterCity を指定してください。
鉄道
| ツール | 回答する内容 |
|---|---|
thsr_timetable | 2つの駅間を運行する当日の高速鉄道(高鐵)列車 |
thsr_seats | これらの列車の標準席およびビジネス席の空席状況 |
thsr_fare | 車両クラスおよび乗客種別ごとのTHSR運賃 |
thsr_train | 1本のTHSR列車の全停車駅 |
tra_timetable | 2つの駅間を運行する台湾鉄道(臺鐵)列車と列車種別 |
tra_live_board | TRAの駅にまもなく到着または出発する列車と遅延状況 |
tra_train | 本日のTRA列車1本の停車駅、現在位置、遅延状況 |
tra_fare | 列車種別および乗客種別ごとのTRA運賃 |
metro_live_board | 次の地下鉄列車までの時間(高雄、桃園。台北は到着列車のみ) |
metro_fare | 2つの駅間の地下鉄運賃 |
metro_first_last_train | 地下鉄駅の始発および終電 |
afr_timetable | 阿里山森林鉄道(阿里山林業鐵路)の定期時刻表 |
rail_station_search | 名前で検索したあらゆる鉄道システムの駅、または座標から最寄りの駅 |
rail_alerts | THSR、TRA、または地下鉄の運行状況と運行障害 |
鉄道ツールでは、中国語または英語の駅名(台北、Taipei、台北車站)、または駅IDを指定します。本日の時刻表は、台湾の現在時刻以降の情報を表示します。
航空便
| ツール | 回答する内容 |
|---|---|
flight_status | フライト(CI100)の時刻、遅延、ゲート、運航状況 |
flight_board | 台湾の空港の出発または到着案内と現在の天気 |
flight_schedule | 台湾の2つの空港間を運航する当日の国内線(華信、立榮、德安)と運賃 |
空港はIATAコードまたは名称(TSA、松山、Kinmen)で指定します。
フェリー
| ツール | 回答する内容 |
|---|---|
ferry_timetable | 2つの港間を運航する当日の便とリアルタイムの運航状況、および本日の注意報(台風) |
ferry_live_board | 港の本日の出発便と到着便、および遅延・欠航情報 |
ferry_fare | チケット、客室、乗客種別ごとの2つの港間の運賃 |
ferry_alerts | フェリー運航の現在の休止・変更情報 |
港は名称(富岡、綠島、小琉球)または港IDで指定します。県が運航する航路(澎湖諸島間の船便、旗津、淡水)では、PenghuCountyなどのcityが必要です。
道路
| ツール | 回答内容 |
|---|---|
traffic_live | 道路区間ごとの現在の速度と渋滞状況。最も深刻な区間から表示し、各レベルの件数も示します |
traffic_travel_time | ライブの eTag データに基づく、現在の高速道路インターチェンジ間の車での所要時間(区間ごと) |
traffic_events | 事故、道路工事、通行止め、開催が発表されたイベント(パレード)の場所 |
道路ツールでは、ネットワークとして freeway(國道)、highway(省道)、または都市を指定します。traffic_travel_time
では、中国語の高速道路インターチェンジ名(林口、新竹)を指定します。高速道路の区間は
インターチェンジ名に基づいているため、キーワード(林口)で検索してください。
駐車場とEV充電
| ツール | 回答内容 |
|---|---|
parking_nearby | 現在、車またはスクーターの空きスペースがある最寄りの駐車場と路上駐車スペース |
parking_search | 名称、住所、道路名で検索できる、空きスペースのある駐車場と路上駐車スペース |
ev_charger_nearby | 空きコネクター(CCS2、Tesla、...)がある最寄りのEV充電器。ACまたはDC、料金も表示 |
都市によって対応状況は異なります。NewTaipeiでは路上駐車のみ利用でき、すべての駐車場が
空き状況をリアルタイムで公開しているわけではありません(その場合は「no live data」と表示されます)。ev_charger_nearby では
高速道路のサービスエリアを指定するために freeway を指定します。
その他
| ツール | 回答内容 |
|---|---|
tdx_get | OData の filter、select、orderBy、top、skip を使って、任意のTDX APIパスを取得します |
MCP レジストリ
このサーバーは MCP registry に
io.github.amangeldievkuu/tdx-taiwan-mcp として登録されているため、レジストリを参照できる
クライアントは、上記の2つのTDX変数を使ってインストールできます。
ライブラリとして使用
import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
import { TdxClient } from 'tdx-taiwan';
import { createServer } from 'tdx-taiwan-mcp';
const tdx = new TdxClient({ clientId: '…', clientSecret: '…', cache: true });
await createServer({ tdx }).connect(new StdioServerTransport());
レート制限と課金
TDXではプランごとに1秒あたりのリクエスト数が制限され、呼び出し回数とレスポンスサイズに応じて課金されます。このサーバーは静的な一覧(駅、ルート)を1時間、ライブデータを15秒間キャッシュし、リクエストの間隔を TDX_REQUESTS_PER_SECOND に従って調整します。TDXから引き続き429が返される場合(ベーシックプランでは1分あたりの呼び出し数も制限されます)、TDXの指示に従って待機してから再試行するため、質問が集中すると、ツールの呼び出しに最大1分かかることがあります。
データソース
データソース:交通部 TDX 運輸資料流通服務平臺 (MOTC Transport Data eXchange)。TDXデータには TDX 資料授權利用條款 が適用されます。このプロジェクトは MOTCまたはTDXと提携していません。
ライセンス
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。