关于 London Transport MCP Server
London Transport MCP Server 通过三种工具,让 AI 助手访问伦敦交通局的实时线路状态和行程规划数据。它使用公开的 TfL Unified API,是独立的非官方项目。
主要功能
- 01查询 TfL 线路实时状态
- 02查看详细服务中断信息
- 03规划地点之间的行程
- 04支持 stdio、SSE 和 Streamable HTTP
适用场景
- 01通勤前查看线路运行状态
- 02了解线路服务中断详情
- 03规划伦敦市内路线
MCP 相关
它将 TfL 线路状态、中断详情和行程规划作为工具提供给 MCP 客户端,支持 stdio、SSE 和 Streamable HTTP 传输方式。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
3收录的工具列表 · 更新于 3 周前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| lineId | string | 是 | 要查询的线路标识符(例如:victoria、central)。 |
| app_key | string | 否 | 可选的 API 应用密钥。 |
详细介绍
TfL(伦敦交通局)状态与行程规划 MCP 服务
此 模型上下文协议(MCP) 服务通过一组自动化工具,为 AI 助手提供实时伦敦交通局数据。
⚠️ 重要免责声明: 这不是伦敦交通局(TfL)的官方 MCP 服务。这是一个独立项目,使用公开的 TfL Unified API 提供交通数据。该项目与伦敦交通局无关联,未获其认可,也不受其官方支持。
演示视频

🚇 此 MCP 服务的功能
此服务提供三项主要功能,使 AI 助手(例如 Claude Desktop 和 VS Code GitHub Copilot)能够访问 TfL 实时数据:
🔧 可用工具
get_line_status- 获取任意 TfL 线路的当前状态(例如 Central、Victoria、Piccadilly)get_line_status_detail- 获取 TfL 线路的详细状态信息,包括服务中断详情plan_journey- 使用 TfL 行程规划器规划两个地点之间的行程
🎯 使用场景
连接此 MCP 服务后,AI 助手可以帮助用户:
- 通勤前查看地铁线路是否正常运营
- 获取服务中断的详细信息
- 规划伦敦地点之间的最佳路线
- 提供伦敦出行的实时交通建议
交互示例:
- “Central 线运行正常吗?”
- “规划一条从 King's Cross 到 Heathrow Airport 的路线”
- “今天 Northern 线延误的原因是什么?”
现在开始设置吧!
🚦 入门指南
请选择你偏好的安装方式:
📦 选项 1:通过 npm 快速安装(推荐)
使用此 MCP 服务最简单的方式是通过 npm:
安装
npm install -g london-transport-mcp
🔐 设置 TfL API 密钥
你可以从 TfL API Portal 免费获取 API 密钥。
方式 1:环境变量(推荐) 在系统中设置环境变量:
# Windows (PowerShell)
$env:TFL_API_KEY="your_actual_tfl_api_key_here"
# macOS/Linux
export TFL_API_KEY="your_actual_tfl_api_key_here"
方式 2:MCP 配置 将 API 密钥直接添加到 MCP 配置中(参见下方示例)。
AI 助手配置
针对 Claude Desktop(设置 → 开发者 → 编辑配置):
{
"mcpServers": {
"london-transport": {
"command": "npx",
"args": ["london-transport-mcp"],
"env": {
"TFL_API_KEY": "your_actual_tfl_api_key_here"
}
}
}
}
针对 VS Code GitHub Copilot(设置 → GitHub Copilot › MCP:服务器):
{
"london-transport": {
"command": "npx",
"args": ["london-transport-mcp"],
"env": {
"TFL_API_KEY": "your_actual_tfl_api_key_here"
}
}
}
完成!无需手动安装或配置路径。
🛠️ 选项 2:本地开发环境设置
适用于希望修改代码或参与贡献的开发者:
⚙️ 前置条件
开始之前,请确保已安装:
- Node.js(需要 v18+,推荐 v20+)
- npm(随 Node 一同安装)
警告:如果使用较低版本的 Node,fetch 将不可用。工具使用 fetch 发起 HTTP 调用。要解决此问题,可以修改工具,改用 node-fetch。请确保已将 node-fetch 安装为依赖项,然后在每个工具文件中将其导入为 fetch。
📥 安装与设置
1. 克隆仓库
git clone https://github.com/anoopt/london-tfl-journey-status-mcp-server.git
cd london-tfl-journey-status-mcp-server
2. 安装依赖项
npm install
🔐 设置 TfL API 密钥
3. 配置 TfL API 密钥
在项目根目录中创建 .env 文件,并填入 TfL API 密钥:
TFL_API_KEY=your_actual_tfl_api_key_here
你可以从 TfL API Portal 免费获取 API 密钥。
🧪 使用 Postman 测试 MCP 服务
我们强烈建议先使用 Postman 测试 MCP 服务,再将其连接到 AI 助手。 Postman 桌面应用是运行和测试 MCP 服务最简单的方式。
第 1 步:下载 Postman 桌面应用
从 postman.com/downloads 下载最新版 Postman 桌面应用。
第 2 步:创建 MCP 请求
- 打开 Postman Desktop
- 新建 MCP Request(详细步骤请参阅文档)
- 将类型设为 STDIO
- 将命令设为 node 可执行文件的完整路径,后面接
mcpServer.js的完整路径
要获取所需路径,请在终端中运行以下命令:
# Get the full path to node
which node
# Get the full path to mcpServer.js
realpath mcpServer.js
# Check your node version (should be 18+)
node --version
命令格式示例:
/usr/local/bin/node /full/path/to/TfL-Status-MCP-Server/mcpServer.js
第 3 步:测试工具
- 在 Postman MCP Request 中点击 Connect
- 你应该能看到列出的 3 个 TfL 工具
- 测试每个工具:
- 使用
lineId: "central"调用get_line_status - 使用
fromLocation: "King's Cross"和toLocation: "Westminster"调用plan_journey - 使用
lineId: "piccadilly"调用get_line_status_detail
- 使用
如果所有工具在 Postman 中都能正常工作,就可以连接到 AI 助手了!
🤖 连接到 AI 助手
在 Postman 中测试完成后,你可以将 MCP 服务连接到 AI 助手:
本地开发设置(选项 2)
如果你使用本地开发设置,则需要指定完整路径:
Claude Desktop
第 1 步:使用 Postman 测试步骤中的相同 node 和 mcpServer.js 路径。
第 2 步:打开 Claude Desktop → Settings → Developers → Edit Config 并添加:
{
"mcpServers": {
"london-transport": {
"command": "node",
"args": ["/full/path/to/mcpServer.js"]
}
}
}
第 3 步:重启 Claude Desktop,并确认 MCP 服务旁显示绿色圆圈。
VS Code GitHub Copilot
第 1 步:如果尚未安装,请在 VS Code 中安装 GitHub Copilot 扩展。
第 2 步:打开 VS Code → Settings(Ctrl+,)→ 搜索“MCP” → GitHub Copilot › MCP: Servers
第 3 步:添加你的 TfL MCP 服务配置:
{
"london-transport": {
"command": "node",
"args": ["/full/path/to/mcpServer.js"]
}
}
第 4 步:重启 VS Code,GitHub Copilot 即可使用 MCP 服务。
现在,你可以向 AI 助手提出以下问题:
- “查看 Central 线的状态”
- “规划从 London Bridge 到 Camden Town 的行程”
其他选项
🛠️ 列出可用工具
查看所有可用工具及其参数:
npm run list-tools
🚀 快速集成 Postman
自动使用正确的 MCP 配置打开 Postman:
npm run postman
🐳 Docker 部署(生产环境)
生产环境部署时,可以使用 Docker:
1. 构建 Docker 镜像
docker build -t <your_server_name> .
2. 集成 AI 助手
将 Docker 服务配置添加到 AI 助手:
Claude Desktop(Settings → Developers → Edit Config):
{
"mcpServers": {
"tfl-status": {
"command": "docker",
"args": ["run", "-i", "--rm", "--env-file=.env", "tfl-mcp-server"]
}
}
}
VS Code GitHub Copilot(Settings → GitHub Copilot › MCP: Servers):
{
"tfl-status": {
"command": "docker",
"args": ["run", "-i", "--rm", "--env-file=.env", "tfl-mcp-server"]
}
}
在
.env文件中添加环境变量(API 密钥等)。
项目附带以下最简 Docker 设置:
FROM node:22.12-alpine AS builder
WORKDIR /app
COPY package.json package-lock.json ./
RUN npm install
COPY . .
ENTRYPOINT ["node", "mcpServer.js"]
🌐 可流式 HTTP
要启用可流式 HTTP 支持来运行服务,请使用 --streamable-http 标志。此操作会启动服务并启用 /mcp 端点:
node mcpServer.js --streamable-http
🌐 服务器发送事件(SSE)
要启用服务器发送事件(SSE)支持来运行服务,请使用 --sse 标志。此操作会启动服务并启用 /sse 和 /messages 端点:
node mcpServer.js --sse
🖥️ Stdio(标准输入/输出)
要使用标准输入/输出(stdio)运行服务,只需在不添加任何标志的情况下运行脚本。此模式非常适合 CLI 工具,或通过 stdin 和 stdout 进行程序化集成。
node mcpServer.js
🛠️ 扩展服务
要添加更多 TfL API 端点或其他交通 API:
- 在
tools/tfl/目录中创建新的工具文件 - 参考现有工具(例如
tools/tfl/status.js)的模式 - 将新工具文件添加到
tools/paths.js - 部署前使用 Postman 测试
📚 API 参考
此服务使用 Transport for London Unified API。所有工具都会自动从 .env 文件中读取你的 API 密钥。
➕ 添加新工具
轻松为你的 MCP 服务扩展更多工具:
- 访问 Postman MCP Generator。
- 选择新的 API 请求,生成新的 MCP 服务并下载。
- 将新生成的工具复制到现有项目的
tools/文件夹中。 - 更新
tools/paths.js文件,添加新工具的引用。
💬 问题与支持
访问 Postman MCP Generator 页面,了解最新动态和新功能。
加入 Postman Discord 中的 #mcp-lab 频道,分享你的成果并获取帮助。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。