伦敦交通统一API服务

提供伦敦交通线路、行程、站点、到达时间、自行车点、占用率、道路中断等数据的服务器。

  • by daanrongen
  • TypeScript
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 daanrongen/tfl-mcp

使用说明

tfl mcp

MCP服务器 伦敦交通局统一API --stdio上的线路、行程、停靠点、到达点、自行车点、占用率、道路中断等。

安装

bunx @daanrongen/tfl-mcp

工具(共80件)

域 工具 覆盖范围
事故状态 accident_stats 按年份分列的道路交通事故
空气质量 air_quality 实时污染预测(NO2、O3、PM10、PM2.5、SO2)
BikePoint bike_points_all, bike_point_search, bike_point_by_id 桑坦德自行车可用性
驾驶室 cabwise_search 附近有执照的出租车和小型出租车
旅程 journey_plan, journey_modes 全行程计划器(所有模式)
线路 14个工具 状态、路线、中断、到达、时间表、停车顺序
模式 mode_active_service_types, mode_arrivals 跨模式服务信息
占用率 5个工具 停车场、自行车停放处、电动汽车充电连接器
地方 7个工具 搜索、地理查找、邮政编码街道、地点类型
道路 8个工具 TLRN状态、中断、关闭、道路施工
搜索 5个工具 全文TfL网站/数据搜索
停止点 17个工具 搜索、到达、中断、拥挤、路线、出租车招呼站、停车场
车辆 3个工具 ULEZ合规性、排放附加费、车辆到达跟踪

配置

API密钥(可选但推荐)

在以下网址注册免费密钥 https://api-portal.tfl.gov.uk/。如果没有,请求的速率限制在~500/天。

设置

克劳德桌面版

编辑 ~/Library/Application Support/Claude/claude_desktop_config.json:

{
  "mcpServers": {
    "tfl": {
      "type": "stdio",
      "command": "bunx",
      "args": ["@daanrongen/tfl-mcp"],
      "env": {
        "TFL_API_KEY": "your-key-here"
      }
    }
  }
}

克劳德代码CLI

claude mcp add tfl bunx -- @daanrongen/tfl-mcp -e TFL_API_KEY=your-key-here

发展

bun install
bun run dev        # run with --watch
bun test           # run test suite
bun run build      # bundle to dist/main.js
bun run inspect    # open MCP Inspector in browser

就地检查

bun run inspect 启动 MCP检查员 反对当地建筑:

bun run build && bun run inspect

这将在浏览器中打开检查器UI,您可以在其中交互式调用任何工具并检查请求/响应形状。

行程规划器——位置ID

最常见的故障模式是将自由文本名称传递给 journey_plan,这导致TfL返回300消歧响应。该工具优雅地处理了这一点,并返回了建议值 parameterValue 要重试的ID。

首选ID格式(从最可靠到最不可靠):

格式 示例 注释
ICS代码 1000129 最可靠--使用以下输出 stoppoint_search
确认ID。 940GZZLUVIC 适用于地铁/火车站
邮政编码 N1C4TB 始终明确解决
坐标 51.5308,-0.1238 始终明确无误
自由文本 King's Cross 可能引发歧义

公用站ICS代码:

车站 ICS代码
圣潘克拉斯国王十字教堂 1000129
维多利亚 1000248
滑铁卢 1000254
伦敦桥 1000135
帕丁顿 1000184
利物浦街 1000134
尤斯顿 1000078
金丝雀码头 1001006
布里克斯顿 1000023
斯特拉特福德 1000222

建筑

src/
├── config.ts           # Effect Config — TFL_API_KEY
├── main.ts             # Entry point — ManagedRuntime + StdioServerTransport
├── domain/
│   ├── TflClient.ts    # Context.Tag service interface
│   └── errors.ts       # TflError, TflDisambiguationError
├── infra/
│   ├── TflClientLive.ts  # Layer.effect — HTTP client with disambiguation handling
│   └── TflClientTest.ts  # In-memory test adapter
└── mcp/
    ├── server.ts       # McpServer wired to ManagedRuntime
    ├── utils.ts        # formatSuccess, formatError, formatDisambiguation
    └── tools/          # One module per TfL domain (13 files)

许可证

麻省理工学院