mcpField
L
London Transport Mcp Server

London Transport Mcp Server

本地服务
github.com/anoopt地图与出行044 周前更新

关于 London Transport Mcp Server

这是一个基于 TfL Unified API 的独立 MCP 服务,为伦敦出行用户提供实时交通线路状态、行程规划和中断信息。它还支持交互式线路选择界面,并可向非 MCP-UI 客户端返回 JSON。

主要功能

  1. 01查询线路实时状态
  2. 02规划伦敦行程
  3. 03获取交通中断信息
  4. 04交互式线路状态选择器
  5. 05支持 JSON 和可视化响应

适用场景

  1. 01出发前查看地铁线路状态
  2. 02规划伦敦两地间的公共交通路线
  3. 03通过交互式界面筛选线路

MCP 相关

服务向 MCP 客户端提供线路状态、行程规划和交互式线路选择工具。支持 MCP-UI 的客户端可显示交互界面,其他客户端接收 JSON 数据。

配置

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

mcp.json · 通用配置
{
"mcpServers": {
"tfl": {
"command": "npx",
"args": [
"-y",
"mcp-remote"
]
}
}
}
启动命令npx -y mcp-remote

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npmmcp-remote

工具

3

收录的工具列表 · 更新于 3 周前

参数类型必填说明
lineIdstring是要查询的线路标识符(例如 victoria、central、northern、piccadilly、liberty、lioness、mildmay、suffragette、weaver、windrush)。

详细介绍

Transport for London MCP 服务

⚠️ 重要免责声明:这不是 Transport for London(TfL)的官方 MCP 服务。这是一个独立项目,使用公开的 TfL Unified API 提供交通数据。本项目与 Transport for London 无关联,也未获得其认可或官方支持。

这是一个 Model Context Protocol(MCP)服务,提供 Transport for London 的实时数据,包括线路状态、行程规划和服务中断信息。此服务部署在 Cloudflare Workers 上,可与任何兼容 MCP 的客户端搭配使用,例如 Claude Desktop。

演示

支持 MCP-UI

使用兼容 MCP-UI 的客户端体验交互式可视化卡片和 UI 组件(此处使用 nanobot.ai 展示):

支持 MCP-UI 的演示

不支持 MCP-UI

对于不支持 MCP-UI 的客户端,服务会返回 JSON 数据:

不支持 MCP-UI 的演示

功能

此 MCP 服务提供以下工具:

🎯 show_line_status_selector(新功能!)

显示一个交互式选择器,其中包含所有 TfL 线路的按钮。此功能使用 MCP-UI 的 externalUrl 功能,在你的 MCP 客户端中加载交互式 HTML 界面。

  • 参数: 无
  • 输出:
    • 一个交互式 UI,包含所有可用 TfL 线路的可点击按钮(Victoria、Central、Northern、Piccadilly、Jubilee、Bakerloo、Circle、District、Hammersmith & City、Metropolitan、Waterloo & City、Elizabeth、DLR、Overground 和 Tram)
    • 每个按钮都采用对应线路的官方颜色
    • 点击按钮会自动为该线路调用 get_line_status
    • 非常适合快速查看多条线路的状态

使用场景示例: 询问“显示线路状态选择器”或“显示状态”,即可查看所有线路的交互式界面。点击任意线路按钮,即可立即查看其当前状态。

🚇 get_line_status

获取指定 TfL 交通线路的当前状态,并显示精美的可视化卡片(支持 MCP-UI)。

  • 参数:
    • lineId:要查询的线路 ID(例如 'central'、'piccadilly'、'northern'、'victoria')
  • **输出:**同时返回 JSON 数据和可视化 UI 卡片,其中包含 TfL 品牌元素、线路颜色和状态徽标
MCP-UI 可视化响应

搭配兼容 MCP-UI 的客户端使用时(例如支持 MCP-UI 的 Claude Desktop),服务会返回精美的可视化卡片:

运行正常:

Victoria Line - 运行正常

严重延误:

Central Line - 严重延误

轻微延误:

Northern Line - 轻微延误

可视化卡片具有以下特点:

  • 官方 TfL 圆形标志,并根据线路动态显示颜色
  • 状态徽标(运行正常时为绿色,严重延误时为红色,轻微延误时为琥珀色)
  • 简洁、专业的 TfL 品牌设计
  • 完全向后兼容——不支持 MCP-UI 的客户端会收到 JSON 数据
🗺️ plan_journey

规划伦敦两个地点之间的行程。

  • 参数:
    • from:出发地点(邮政编码、地址或车站名称)
    • to:目的地(邮政编码、地址或车站名称)
    • modes(可选):要使用的交通方式(例如 'tube,bus,walking')
    • time(可选):HH:MM 格式的行程时间,或 'now'
    • timeIs(可选):'Departing' 或 'Arriving'
    • date(可选):YYYYMMDD 格式的行程日期
    • walkingSpeed(可选):'Slow'、'Average' 或 'Fast'
    • cyclePreference(可选):骑行偏好选项
    • optimize(可选):'Time'、'LeastInterchange' 或 'LeastWalking'
    • maxTransferMinutes(可选):最长换乘时间(分钟)
    • maxWalkingMinutes(可选):最长步行时间(分钟)

入门

立即试用(无需部署)

想在部署自己的服务之前先测试一下吗?你可以使用公开的演示实例!

对于 Claude Desktop:
  1. 打开 Claude Desktop 设置 > Developer > Edit Config
  2. 添加以下配置:
{
  "mcpServers": {
    "tfl": {
      "command": "npx",
      "args": [
        "mcp-remote",
        "https://london-transport-mcp.anoopt.workers.dev/mcp"
      ]
    }
  }
}
  1. 重启 Claude Desktop
  2. 开始询问有关伦敦交通的问题!
对于 VS Code(GitHub Copilot):
  1. 打开 VS Code 设置 > Extensions > GitHub Copilot > MCP Servers
  2. 添加以下配置:
{
  "servers": {
    "tfl": {
      "type": "http",
      "url": "https://london-transport-mcp.anoopt.workers.dev/mcp"
    }
  }
}
  1. 启动 MCP 服务
  2. 开始在 Copilot Chat 中使用 TfL 工具!
快速部署

部署到 Cloudflare Workers

点击上方按钮,即可一键将此 MCP 服务部署到你的 Cloudflare Workers 账户!

手动部署
  1. 克隆此仓库
  2. 安装依赖项:
    npm install
    
  3. 部署到 Cloudflare Workers:
    npm run deploy
    

你的 MCP 服务将部署到类似以下格式的 URL:london-transport-mcp.<your-account>.workers.dev

身份验证(可选)

此服务支持可选的 TfL API 密钥身份验证。TfL API 无需身份验证即可使用,但使用 API 密钥可提高速率限制并改善性能。

不使用 API 密钥: 服务将遵循 TfL 公共 API 的速率限制(可能受到速率限制)。

使用 API 密钥(推荐):

  1. 从 TfL API Portal 获取免费 API 密钥
  2. 连接到服务时,在 X-API-Key 标头中传入 API 密钥

连接到 Claude Desktop

要从 Claude Desktop 连接到你的 MCP 服务,请更新 Claude Desktop 配置:

  1. 前往 Claude Desktop 设置 > Developer > Edit Config
  2. 添加以下其中一种配置:
使用 mcp-remote

使用 API 密钥:

{
  "mcpServers": {
    "tfl": {
      "command": "npx",
      "args": [
        "mcp-remote",
        "https://london-transport-mcp.<your-account>.workers.dev/mcp",
        "--header",
        "X-API-Key: YOUR_TFL_API_KEY"
      ]
    }
  }
}

不使用 API 密钥:

{
  "mcpServers": {
    "tfl": {
      "command": "npx",
      "args": [
        "mcp-remote",
        "https://london-transport-mcp.<your-account>.workers.dev/mcp"
      ]
    }
  }
}

**注意:**进行本地开发时,将 URL 替换为 http://localhost:8787/mcp

连接到 Cloudflare AI Playground

你也可以从 Cloudflare AI Playground 连接到 MCP 服务:

  1. 前往 https://playground.ai.cloudflare.com/
  2. 输入已部署 MCP 服务的 URL,并附上 /mcp 端点
  3. 添加 X-API-Key 标头并填入你的 TfL API 密钥
  4. 直接在 Playground 中开始使用 TfL 工具!

本地开发

进行本地开发:

npm run dev

这将在本地 http://localhost:8787 启动服务

API 密钥(可选)

此服务支持可选的 TfL API 密钥身份验证,以提高速率限制。不要求使用 API 密钥,但建议在生产环境中使用。

不使用 API 密钥: 连接时省略 X-API-Key 标头即可。TfL API 将应用标准速率限制。

使用 API 密钥:

  1. 访问 TfL API Portal
  2. 注册免费账户
  3. 创建新应用以获取 API 密钥
  4. 连接时,在 X-API-Key 标头中传入密钥

示例

连接后,你可以向 Claude 提出以下问题:

  • “显示线路状态选择器”或“显示状态”——显示包含所有 TfL 线路的交互式界面
  • “Northern 线运行正常吗?”
  • “Victoria 线的状态如何?”
  • “规划一条从 King's Cross 到 Heathrow Airport 的路线”
  • “如何从 Oxford Circus 前往 Canary Wharf?”
  • “从 Wimbledon 到 Liverpool Street 的最快路线是什么?”

技术栈

  • 运行时:Cloudflare Workers
  • 框架:Hono.js
  • MCP SDK:@modelcontextprotocol/sdk
  • 语言:TypeScript
  • API:Transport for London Unified API

贡献

欢迎贡献!请随时提交 Pull Request。

许可证

此项目为开源项目,采用 MIT License。

评论

支持 Markdown

第一次接触 MCP?

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

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