Taiwan TDX transport

io.github.amangeldievkuu由 GitHub 账号 amangeldievkuu 发布v0.9.0更新于 Nov 3, 2026

通过TDX获取台湾交通信息:YouBike、公交、铁路、航班、轮渡、道路交通、停车、电动车

AI 翻译由 AI 模型根据下方的原文描述翻译,可能有误。

原文描述

Taiwan transport via TDX: YouBike, buses, rail, flights, ferries, road traffic, parking, EV

已验证STDIO仅桌面位置与生活开发者工具

概览

Taiwan TDX transport 的本地 MCP 服务;无需登录;STDIO。

暂无 AI 概览:以下信息来自注册中心条目和服务本身。

安装

在 SourceWeft 中

  1. 打开 控制台中的 Taiwan TDX transport,将其添加到工作区。
  2. 为需要使用其工具的对话启用该服务。

Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。

其他 MCP 客户端

参照 仓库 中的启动说明。

README

tdx-taiwan-mcp

[npm] [CI] [license]

繁體中文說明

An unofficial MCP server for Taiwan's TDX (Transport Data eXchange) API, built on the tdx-taiwan SDK. It lets Claude and other MCP clients answer questions such as "where is the nearest YouBike with bikes?", "when does the 307 reach Ximen?", "which high speed trains to Zuoying still have seats tonight?", "is CI100 delayed?" or "where can I charge a CCS2 car near Taipei Main Station?".

  • Task-shaped tools: search by name (Chinese or English, 台/臺 folded) or by location, with readable output ("4 min", "last bus has passed") instead of raw status codes
  • City names as TDX codes or in Chinese (Taipei, 臺北市, 台北)
  • Results capped in size; static lists kept on disk for a day, live data cached for 15 s
  • tdx_get for any TDX endpoint the tools do not cover yet
  • Runs over stdio; Node.js 20+

Get TDX keys

Register at tdx.transportdata.tw, then copy the Client Id and Client Secret from 會員中心 → 資料服務 → API金鑰.

Set up

Claude Code

sh
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

Download tdx-taiwan-mcp-<version>.mcpb from the latest release and open it (or drag it into Settings → Extensions). Claude Desktop asks for your TDX Client Id and Secret, stores the secret in the system keychain, and runs the server with its own Node.js. The settings also take the tool groups to load (see TDX_TOOLS below).

Other clients

Add the server to the client's MCP configuration (or Claude Desktop's claude_desktop_config.json, instead of the extension):

json
{  "mcpServers": {    "tdx": {      "command": "npx",      "args": ["-y", "tdx-taiwan-mcp"],      "env": {        "TDX_CLIENT_ID": "your-client-id",        "TDX_CLIENT_SECRET": "your-client-secret"      }    }  }}

Environment

VariableDefaultMeaning
TDX_CLIENT_IDrequiredTDX API key Client Id
TDX_CLIENT_SECRETrequiredTDX API key Client Secret
TDX_REQUESTS_PER_SECOND5Client-side rate limit; match it to your TDX plan (0 turns it off)
TDX_MAX_ITEMS200Most items any tool returns
TDX_CACHE_DIRsee belowWhere static data is kept between runs; off turns it off
TDX_TOOLSallTool groups to load, e.g. bus,rail or -road,-raw (see below)

A .env file in the working directory is read too; variables already set take precedence.

Disk cache. Station, route and timetable lists are kept on disk for a day, so a new session answers from them instead of calling TDX again. A first metro journey that took close to two minutes on the free plan's per-minute quota then takes a fraction of a second. The default folder is ~/.cache/tdx-taiwan-mcp ($XDG_CACHE_HOME if set; %LOCALAPPDATA% on Windows), a few MB at most. Live data (arrivals, availability, positions) is never stored.

Loading fewer tools. Every tool's description goes into the model's context, and with 47 of them a model can pick the wrong one. If you only need some areas, list them in TDX_TOOLS: bike, bus, rail (THSR, TRA, metro, Alishan), flight, ferry, road, parking, ev and raw (tdx_get). A list loads only those groups (bus,rail); names with a minus leave groups out of all of them (-road,-raw). The server's instructions to the model cover only the loaded groups.

Tools

YouBike, cycling and buses

ToolWhat it answers
youbike_nearbyNearest YouBike / Moovo stations to a coordinate with bikes (or empty docks) right now
youbike_stationYouBike stations by name or address, with live bikes, e-bikes and empty docks
cycling_routesCycle paths near a coordinate or by name, road or district, with length and end points
bus_stops_nearbyBus stops near a coordinate, with their heading and the city and coach routes there
bus_stop_arrivalsEvery bus due at one stop, all routes at once, soonest first
bus_route_searchBus routes by name or terminal stop, with endpoints, operators and fare
bus_route_stopsThe stops of a route in order, per direction and sub-route
bus_etaLive arrival estimates at the stops of a route, and whether the coming bus has a ramp
bus_timetableScheduled departures of a route on a day, or how often it runs
bus_first_lastWhen the first and last bus of a route leave on a day
bus_fareA route's fares per passenger and ticket: between two stops, or per section
bus_alertsCurrent and upcoming detours, suspensions and moved stops, with the latest news
bus_positionsWhere the buses on a route are now: speed, last stop, low-floor and ramp

Bus tools take a city (Taipei, NewTaipei, ...) or InterCity for 公路客運 / 國道客運 coaches. Whether a bus is low-floor with a wheelchair ramp comes from the fleet lists that Taipei, New Taipei, Taoyuan, Taichung, Tainan and Kaohsiung publish; Taipei and New Taipei do not say which bus an arrival estimate is for, so bus_eta estimates it from where each bus last stopped.

Rail

ToolWhat it answers
thsr_timetableHigh speed rail (高鐵) trains between two stations on a day
thsr_seatsStandard and business seat availability for those trains
thsr_fareTHSR fares per car and passenger type
thsr_trainEvery stop of one THSR train, with its non-reserved (自由座) cars
tra_timetableTaiwan Railway (臺鐵) trains between two stations, with train type
tra_live_boardTrains about to arrive at or leave a TRA station, with delays
tra_trainOne TRA train today: stops, current position and delay
tra_fareTRA fares per train type and passenger type
metro_live_boardMinutes to the next metro trains (Kaohsiung, Taoyuan; Taipei arrivals only)
metro_fareMetro fares between two stations
metro_first_last_trainFirst and last trains at a metro station
metro_travel_timeMetro journey time between two stations, with line changes and expected waits
metro_frequencyMinutes between metro trains through the day, per line (incl. 文湖線)
rail_station_departuresA TRA, THSR or metro station's departures on a day, toward every destination
rail_station_infoStation exits (nearest to your destination first), lifts and toilets
afr_timetableAlishan Forest Railway (阿里山林業鐵路) regular timetable
afr_fareAlishan Forest Railway fares per train type
rail_station_searchStations of any rail system by name, or nearest to a coordinate
rail_alertsService status and disruptions of THSR, TRA or a metro

Rail tools take station names in Chinese or English (台北, Taipei, 台北車站) or station IDs. For today, timetables start from the current time in Taiwan.

Flights

ToolWhat it answers
flight_statusTimes, delay, gate and status of a flight (CI100)
flight_boardA Taiwan airport's departure or arrival board, with the current weather
flight_scheduleFlights between two airports on a day: domestic (華信, 立榮, 德安) with fares, or international
flight_seatsSeats left on a domestic flight (available, fewer than 5, sold out); slow, asks the airline

Airports are IATA codes or names (TSA, 松山, Kinmen).

Ferries

ToolWhat it answers
ferry_timetableSailings between two ports on a day, with live status and alerts (typhoons) today
ferry_live_boardA port's departures and arrivals today, with delays and cancellations
ferry_fareFares between two ports per ticket, cabin and passenger type
ferry_alertsCurrent suspensions and changes to ferry service
ferry_positionsWhere ferries are now (AIS): position, speed, status and nearest port

Ports are names (富岡, 綠島, 小琉球) or port IDs. Lines run by a county (Penghu inter-island boats, 旗津, 淡水) need city, e.g. PenghuCounty.

Roads

ToolWhat it answers
traffic_liveLive speed and congestion per road section, worst first, with a count per level
traffic_travel_timeCar travel time between two freeway interchanges now, from live eTag data, per segment
traffic_eventsAccidents, roadworks, closures and announced events (parades), with the latest road news
traffic_camerasLive traffic cameras by road, place or distance, with their stream links
traffic_signsWhat the message signs over the road show now: travel times, warnings

Road tools take a network: freeway (國道), highway (省道) or a city; traffic_travel_time takes freeway interchange names in Chinese (林口, 新竹). Freeway sections are named after interchanges, so search them by keyword (林口).

Parking and EV charging

ToolWhat it answers
parking_nearbyNearest car parks and on-street parking with free car or scooter spaces now
parking_searchCar parks and on-street parking by name, address or road, with free spaces
ev_charger_nearbyNearest EV chargers with a free connector (CCS2, Tesla, ...), AC or DC, prices

Coverage differs per city: NewTaipei has on-street parking only, and not every car park publishes live spaces (those show "no live data"). ev_charger_nearby takes freeway for the freeway service areas.

Other

ToolWhat it answers
tdx_getAny TDX API path with OData filter, select, orderBy, top, skip

MCP registry

The server is listed in the MCP registry as io.github.amangeldievkuu/tdx-taiwan-mcp, so clients that browse the registry can install it with the two TDX variables above.

Use as a library

ts
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());

Rate limits and billing

TDX limits requests per second by plan and bills by call count and response size. The server caches static lists (stations, routes) for an hour and live data for 15 seconds, and spaces requests at TDX_REQUESTS_PER_SECOND. When TDX still answers 429 (the basic plan also limits calls per minute), the server waits as TDX asks and retries, so a tool call can take up to a minute during a burst of questions.

繁體中文

tdx-taiwan-mcp 是交通部 TDX 運輸資料流通服務的非官方 MCP 伺服器(與交通部無隸屬或合作關係),讓 Claude 等 MCP 用戶端以即時資料回答「最近哪個 YouBike 站有車?」「307 公車幾分鐘到西門?」「今晚往左營的高鐵還有座位嗎?」「CI100 有沒有誤點?」等問題,涵蓋 YouBike 與自行車道、市區公車與公路客運(含票價與首末班車)、高鐵、臺鐵、捷運、阿里山林業鐵路、國內外航班、船運、即時路況與路況影像、停車場及充電樁。

取得金鑰:註冊 TDX 會員後,至「會員中心 → 資料服務 → API金鑰」取得 Client Id 與 Client Secret。

安裝

  • Claude Desktop:從最新版本下載 tdx-taiwan-mcp-<版本>.mcpb 並開啟,依提示填入 Client Id 與 Client Secret(密鑰存於系統鑰匙圈)。

  • Claude Code:

    sh
    claude mcp add tdx \  -e TDX_CLIENT_ID=你的-client-id -e TDX_CLIENT_SECRET=你的-client-secret \  -- npx -y tdx-taiwan-mcp
  • 其他用戶端:以 npx -y tdx-taiwan-mcp 啟動,並設定上述兩個環境變數(需要 Node.js 20 以上版本)。

設定(環境變數)

  • TDX_TOOLS:只載入部分工具群組,例如 bus,rail;加上減號可排除,例如 -road,-raw。群組有 bike、bus、rail(高鐵、臺鐵、捷運、阿里山)、flight、ferry、road、parking、ev 與 raw(tdx_get)。工具愈少,模型愈容易選對工具。
  • TDX_CACHE_DIR:站點、路線、時刻表等靜態資料會在磁碟保存一天(預設 ~/.cache/tdx-taiwan-mcp),新的工作階段不必再向 TDX 下載;設為 off 可關閉。即時資料不會存檔。
  • TDX_REQUESTS_PER_SECOND:用戶端限流,預設每秒 5 次,請依您的 TDX 方案調整。TDX_MAX_ITEMS:每個工具最多回傳的筆數,預設 200。

使用提示:站名、港口與機場可用中文或英文(台北、Taipei、松山、TSA);城市可用 TDX 代碼或中文(Taipei、臺北市);時間皆為臺灣時間(UTC+8)。公車工具需要完整路線名稱,可先用 bus_route_search 查詢;bus_eta 與 bus_positions 會標示公車是否為低地板、有無輪椅斜坡(依各縣市公布的車輛資料)。

Data source

資料來源:交通部 TDX 運輸資料流通服務平臺 (MOTC Transport Data eXchange). TDX data is subject to the TDX 資料授權利用條款. This project is not affiliated with MOTC or TDX.

License

MIT

来源:README.md,提交 82a200b

工具

0
SourceWeft 尚未在沙箱中启动过该软件包,因此其工具未知。

版本历史

2
  1. v0.9.0最新Nov 3, 2026
  2. v0.7.1Oct 29, 2026

评分

已满足适用检查项的 50%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通25 分

    请保持端点能够响应 MCP 握手;SourceWeft 每 30 天探测一次。

  • 已声明认证方式10 分

    请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。

  • 已列出工具15 分

    请让服务器在无凭据时响应 tools/list,或发布可在沙箱中无凭据启动的软件包。

  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分