伦敦交通数据服务

一个提供实时伦敦交通数据的MCP服务器,包括线路状态、行程规划和中断信息,适用于需要实时交通数据的应用程序和开发者。

  • by anoopt
  • TypeScript
  • 本地部署
  • 更新于
在 GitHub 查看 anoopt/tfl-mcp-server

使用说明

伦敦MCP服务器交通

⚠️ 重要免责声明:这不是伦敦交通局(TfL)的官方MCP服务器。这是一个独立的项目,使用公共可用的伦敦交通局统一API来提供传输数据。它不隶属于伦敦交通局,也没有得到伦敦交通局的认可或官方支持。

模型上下文协议(MCP)服务器,提供伦敦实时交通数据,包括线路状态、行程规划和中断信息。此服务器部署在Cloudflare Workers上,可以与任何兼容MCP的客户端(如Claude Desktop)一起使用。

演示

支持MCP-UI

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

无MCP-UI

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

特性

此MCP服务器提供以下工具:

🎯 show_line_status_selector 新

显示一个带有所有伦敦交通局线路按钮的交互式选择器。这使用MCP-UI的externalUrl功能在MCP客户端中加载交互式HTML界面。

  • 参数: 无
  • 输出:
    • 一个交互式用户界面,带有可点击的按钮,适用于所有可用的伦敦交通局线路(维多利亚、中央、北部、皮卡迪利、朱比利、贝克鲁、Circle、District、Hammersmith&City、大都会、滑铁卢&City、伊丽莎白、DLR、地上和有轨电车)
    • 每个按钮都采用官方线条颜色
    • 点击按钮会自动调用 get_line_status 对于那条线
    • 非常适合跨多行快速检查状态

用例示例: 询问“显示线路状态选择器”或“显示状态”以获得所有线路的交互式视图。单击任何行按钮可立即检查其当前状态。

🚇 get_line_status

使用美观的视觉卡(MCP-UI支持)获取特定伦敦交通局运输线路的当前状态。

  • 参数:
    • lineId:要查询的线路ID(例如,“中央”、“皮卡迪利”、“北部”、“维多利亚”)
  • 输出: 返回JSON数据和带有TfL品牌、线条颜色和状态徽章的可视化UI卡

MCP-UI视觉响应

当与MCP-UI兼容的客户端(如支持MCP-UI的Claude Desktop)一起使用时,服务器会返回漂亮的视觉卡:

良好的服务:

严重延误:

轻微延误:

视觉卡的特点是:

  • 伦敦交通局官方圆形标志,采用动感线条颜色
  • 状态徽章(绿色表示服务良好,红色表示严重延误,琥珀色表示轻微延误)
  • 干净、专业的设计,带有TfL品牌
  • 完全向后兼容-非MCP UI客户端接收JSON数据

🗺️ 计划_焦尼

计划伦敦两个地点之间的旅行。

  • 参数:
    • from:起始位置(邮政编码、地址或车站名称)
    • to:目的地位置(邮政编码、地址或车站名称)
    • modes (可选):要使用的交通方式(例如,“地铁、公共汽车、步行”)
    • time (可选):HH:MM格式的行程时间或“现在”
    • timeIs (可选):“出发”或“到达”
    • date (可选):YYYYMMDD格式的行程日期
    • walkingSpeed (可选):“慢”、“一般”或“快”
    • cyclePreference (可选):自行车偏好选项
    • optimize (可选):“时间”、“最少换乘”或“最少步行”
    • maxTransferMinutes (可选):最长传输时间(分钟)
    • maxWalkingMinutes (可选):最长步行时间(分钟)

入门指南

立即试用(无需部署)

想在部署自己的服务器之前测试服务器吗?您可以使用公共演示实例!

对于Claude Desktop:

  1. 打开克劳德桌面设置>开发人员>编辑配置
  2. 添加此配置:
{
  "mcpServers": {
    "tfl": {
      "command": "npx",
      "args": [
        "mcp-remote",
        "https://london-transport-mcp.anoopt.workers.dev/mcp"
      ]
    }
  }
}
  1. 重新启动克劳德桌面
  2. 开始询问有关伦敦交通的问题!

对于VS代码(GitHub Copilot):

  1. 打开VS代码设置>扩展>GitHub Copilot>MCP服务器
  2. 添加此配置:
{
  "servers": {
    "tfl": {
      "type": "http",
      "url": "https://london-transport-mcp.anoopt.workers.dev/mcp"
    }
  }
}
  1. 启动MCP服务器
  2. 开始在Copilot聊天中使用TfL工具!

快速部署

单击上面的按钮,只需单击一下即可将此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密钥: 服务器将使用伦敦交通局的公共API限制(受速率限制)。

使用API密钥(推荐):

  1. 从获取免费的API密钥 伦敦交通局API门户网站
  2. 在中传递API密钥 X-API-Key 连接到服务器时的标头

连接到克劳德桌面

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

  1. 转到克劳德桌面设置>开发人员>编辑配置
  2. 添加以下配置之一:

使用mcp远程

使用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游乐场

您还可以从Cloudflare AI Playground连接到MCP服务器:

  1. 首选https://playground.ai.cloudflare.com/
  2. 使用以下命令输入您部署的MCP服务器URL /mcp 端点
  3. 添加 X-API-Key 带有TfL API密钥的标头
  4. 直接从操场开始使用TfL工具!

本地开发

对于当地发展:

npm run dev

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

API密钥(可选)

对于更高的速率限制,此服务器支持可选的TfL API密钥身份验证。API密钥是 不需要 但建议用于生产。

要在没有API密钥的情况下使用: 只需省略 X-API-Key 连接时使用接头。伦敦交通局API将采用标准费率限制。

与API密钥一起使用:

  1. 访问 伦敦交通局API门户网站
  2. 注册一个免费账户
  3. 创建一个新应用程序以获取API密钥
  4. 把钥匙交给 X-API-Key 连接时的接头

例子

连接后,您可以问Claude以下问题:

  • “显示线路状态选择器”或“显示状态”-显示包含所有TfL线路的交互式UI
  • “北线运行正常吗?”
  • “维多利亚线的现状如何?”
  • “计划从国王十字车站到希思罗机场的旅程”
  • “从牛津广场到金丝雀码头怎么走?”
  • “从温布尔登到利物浦街最快的路线是什么?”

技术栈

  • 运行时:Cloudflare员工
  • 框架名称:Hono.js
  • MCP-SDK:@modelcontextprotocol/sdk
  • 语言:TypeScript
  • API:伦敦交通局统一API

贡献

欢迎投稿!请随时提交拉取请求。

许可证

这个项目是开源的,可以在MIT许可证下使用。