mcpField
T
Taiwan TDX transport

Taiwan TDX transport

本地服务
github.com/amangeldievkuu地图与出行01 天前更新

关于 Taiwan TDX transport

Taiwan TDX transport 是非官方 MCP 服务,通过 TDX API 查询台湾交通数据。它为 MCP 客户端提供面向任务的工具,覆盖公共交通、道路、停车及出行信息。

主要功能

  1. 01YouBike 与公交实时信息
  2. 02铁路时刻、票价与服务公告
  3. 03航班及渡轮状态和时刻
  4. 04道路路况与行车时间
  5. 05停车位与电动车充电桩
  6. 06通用 TDX 端点查询

适用场景

  1. 01查找有车可借的附近 YouBike 站
  2. 02查询公交到站或铁路余位
  3. 03查看航班延误或渡轮取消
  4. 04寻找停车位或空闲充电接口

MCP 相关

通过 stdio 向 MCP 客户端提供台湾 TDX 交通数据工具。需要 TDX Client Id 和 Client Secret。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"amangeldievkuu-tdx-taiwan": {
"command": "npx",
"args": [
"-y",
"tdx-taiwan-mcp"
],
"env": {
"TDX_CLIENT_ID": "<TDX_CLIENT_ID>",
"TDX_CLIENT_SECRET": "<TDX_CLIENT_SECRET>",
"TDX_REQUESTS_PER_SECOND": "<TDX_REQUESTS_PER_SECOND>",
"TDX_MAX_ITEMS": "<TDX_MAX_ITEMS>",
"TDX_TOOLS": "<TDX_TOOLS>",
"TDX_CACHE_DIR": "<TDX_CACHE_DIR>"
}
}
}
}
启动命令npx -y tdx-taiwan-mcp
需要配置的环境变量
TDX_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+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npmtdx-taiwan-mcp0.7.1

工具

47

收录的工具列表 · 更新于 今天

参数类型必填说明
latnumber是纬度(WGS84),例如 25.0478。
lonnumber是经度(WGS84),例如 121.517。
citystring是城市:TDX 代码(Taipei、NewTaipei、Taoyuan、Taichung、Tainan、Kaohsiung、Hsinchu、HsinchuCounty、MiaoliCounty、ChanghuaCounty、YunlinCounty、Chiayi、ChiayiCounty、PingtungCounty、TaitungCounty)或其中文名称(臺北市、新北市、高雄市等)。
wantenum否仅返回正在运营且有可租借自行车("bike",默认值)或可还车的空桩("dock")的站点;"any" 会列出所有站点。bike | dock | any
limitinteger否返回的站点数量上限(默认值为 5)。
radiusMetersinteger否搜索半径,单位为米(默认值为 1000)。

详细介绍

tdx-taiwan-mcp

npm CI license

一个非官方的台湾 MCP 服务,适用于 TDX(Transport Data eXchange) API,基于 tdx-taiwan SDK 构建。它让 Claude 和其他 MCP 客户端能够回答诸如“最近的哪家 YouBike 还有车?”、“307 路什么时候到西门?”、“今晚开往左营的高铁还有哪些有座位?”、“CI100 是否延误?”或“台北车站附近哪里可以给 CCS2 汽车充电?”等问题。

  • 面向任务的工具:按名称(中文或英文,会统一台/臺)或位置搜索,结果易读(“4 分钟”“末班车已开过”),而不是原始状态码
  • 城市名称可使用 TDX 代码或中文(Taipei、臺北市、台北)
  • 限制结果数量;静态列表会缓存,实时数据缓存 15 秒
  • tdx_get 可访问工具尚未覆盖的任意 TDX 端点
  • 通过 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_IDrequiredTDX API 密钥 Client Id
TDX_CLIENT_SECRETrequiredTDX API 密钥 Client Secret
TDX_REQUESTS_PER_SECOND5客户端速率限制;请设为与 TDX 套餐一致(0 表示关闭)
TDX_MAX_ITEMS200任意工具返回的最大条目数

也会读取工作目录中的 .env 文件;已设置的变量优先。

工具

YouBike 和公交车
工具可回答的问题
youbike_nearby查找坐标附近当前有车(或有空桩)的最近 YouBike/Moovo 站点
youbike_station按名称或地址查找 YouBike 站点,并显示实时单车、电动自行车和空桩数量
bus_stops_nearby查找坐标附近的公交站,并显示站点朝向以及经过的市区和公路客运路线
bus_stop_arrivals查询某个站点所有路线即将到站的公交车,按到站时间从近到远排列
bus_route_search按名称或终点站查找公交路线,并显示起讫点、运营商和票价
bus_route_stops按方向和子路线,依次列出某条路线的站点
bus_eta查询路线各站的实时到站预估,可选择指定站点
bus_timetable查询某条路线某日的计划发车时间,或发车频率
bus_alerts查询当前和即将实施的绕行、停驶和站点迁移信息,以及最新消息
bus_positions查询某条路线上的公交车当前位置、速度和状态

公交工具接受城市名称(Taipei、NewTaipei 等),或使用 InterCity 查询公路客運/國道客運 客车。

铁路
工具可查询的信息
thsr_timetable某日两站之间的高铁列车
thsr_seats这些列车的标准座和商务座余票
thsr_fare高铁各车厢及乘客类型的票价
thsr_train一趟高铁列车的所有停靠站
tra_timetable两站之间的台铁列车及列车类型
tra_live_board即将到达或离开台铁车站的列车及延误情况
tra_train今日的一趟台铁列车:停靠站、当前位置及延误情况
tra_fare台铁各列车类型及乘客类型的票价
metro_live_board下一班捷运列车的到站时间(高雄、桃园;台北仅显示到站信息)
metro_fare两站之间的捷运票价
metro_first_last_train捷运车站的首班车和末班车
afr_timetable阿里山林业铁路的常规时刻表
rail_station_search按名称或距坐标最近的位置搜索任意铁路系统的车站
rail_alerts高铁、台铁或捷运的服务状态及运行中断信息

铁路工具接受中文或英文车站名称(台北、Taipei、台北車站)或车站 ID。查询今日时,时刻表从台湾当地当前时间开始。

航班
工具可查询的信息
flight_status航班的时间、延误、登机口及状态(CI100)
flight_board台湾机场的出发或到达航班信息,以及当前天气
flight_schedule某日台湾两座机场之间的国内航班(华信、立荣、德安)及票价

机场可使用 IATA 代码或名称(TSA、松山、Kinmen)。

渡轮
工具可查询的信息
ferry_timetable某日两港之间的航班、实时状态及今日警报(台风)
ferry_live_board港口今日的出发和到达航班、延误及取消情况
ferry_fare两港之间按票种、舱位及乘客类型划分的票价
ferry_alerts当前渡轮服务的停航及变更信息

港口可使用名称(富岡、綠島、小琉球)或港口 ID。由县市运营的航线(澎湖 离岛船、旗津、淡水)需要提供 city,例如 PenghuCounty。

道路
工具可查询内容
traffic_live各路段的实时车速和拥堵情况,按最严重程度排序,并统计各级别数量
traffic_travel_time根据实时 eTag 数据,查询当前两处高速公路交流道之间的汽车行程时间,细分至各路段
traffic_events事故、道路施工、封闭和已公告的活动(游行)及其地点

道路工具需要指定路网:freeway(國道)、highway(省道)或城市;traffic_travel_time 需要使用中文填写高速公路交流道名称(林口、新竹)。高速公路路段以交流道命名,因此 可按关键词搜索(林口)。

停车和电动汽车充电
工具可查询内容
parking_nearby最近的停车场和路边停车位,以及当前空余的汽车或机车车位
parking_search按名称、地址或道路查询停车场和路边停车位,以及空余车位
ev_charger_nearby最近的电动汽车充电桩,包含空闲充电接口(CCS2、Tesla 等)、交流或直流充电及价格

各城市的数据覆盖范围不同:NewTaipei 仅提供路边停车位,且并非每个停车场都会发布实时空位 (这类停车场会显示“无实时数据”)。ev_charger_nearby 的 freeway 参数用于查询 高速公路服务区。

其他
工具可查询内容
tdx_get任意 TDX API 路径,支持 OData filter、select、orderBy、top、skip

MCP 注册表

该服务已列入 MCP 注册表,名称为 io.github.amangeldievkuu/tdx-taiwan-mcp,因此可浏览注册表的客户端能够使用上文提到的两个 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 会根据套餐限制每秒请求数,并按调用次数和响应大小计费。服务会缓存静态列表(车站、路线) 一小时,实时数据缓存 15 秒,并按照 TDX_REQUESTS_PER_SECOND 间隔发送请求。如果 TDX 仍返回 429(基础套餐也会限制每分钟的调用次数),服务会按照 TDX 的要求等待并重试,因此问题集中 出现时,一次工具调用可能需要一分钟。

数据来源

資料來源:交通部 TDX 運輸資料流通服務平臺 (MOTC Transport Data eXchange). TDX 数据受 TDX 資料授權利用條款约束。本项目与 MOTC 或 TDX 无关联。

许可证

MIT

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。