TfL MCP Server
TfL MCP 服务器
免责声明: 这是一个社区构建的项目。它与伦敦交通局(TfL)无关联、未经其认可,也不受其支持。本项目使用公开可用的 TfL Unified API。
一个 MCP 服务器,将 TfL(伦敦交通局)Unified API 以工具的形式暴露出来,使 Claude 等 AI 助手能够查询伦敦实时交通数据。
版本 2 是使用 MCP 2026-07-28 协议修订版的单一 Node.js 22 实现。它支持用于本地主机的 stdio、npm 和 MCPB,以及用于远程部署的 /mcp 路径上的无状态 Streamable HTTP。
协议兼容性: Streamable HTTP 仅支持现代 MCP
2026-07-28。stdio 入口点也接受 2025 时代的初始化,以支持 Codex 等桌面主机,而现代 stdio 客户端则继续协商2026-07-28。不支持旧版 HTTP/SSE。
快速开始
第 1 步 — 添加到 Claude Desktop
打开您的 Claude Desktop 配置文件:
macOS:
~/Library/Application Support/Claude/claude_desktop_config.jsonWindows:
%APPDATA%\Claude\claude_desktop_config.jsonLinux:
~/.config/Claude/claude_desktop_config.json
选项 A:Node.js MCPB(推荐)
从 GitHub Releases 下载 tfl-mcp-server.mcpb 并在 Claude Desktop 中安装。
选项 B:npm
安装 Node.js 22 或更高版本后,将 Claude Desktop 指向已发布的包:
{
"mcpServers": {
"tfl-mcp-server": {
"command": "npx",
"args": ["-y", "@oneill9/tfl-mcp-server@2.0.0"],
"env": { "TFL_APP_KEY": "your_key_here" }
}
}
}选项 C:Docker
{
"mcpServers": {
"tfl-mcp-server": {
"command": "docker",
"args": ["run", "-i", "--rm", "-e", "TFL_APP_KEY", "ghcr.io/oneill9/tfl-mcp-server:latest"]
}
}
}第 2 步 — 添加 TfL API 密钥(推荐)
没有密钥时,TfL 会应用严格的速率限制,这将影响大多数实际使用场景。注册一个免费密钥 并通过 TFL_APP_KEY 环境变量传递。Docker 示例中的 -e TFL_APP_KEY 会将该值转发到容器中:
"env": { "TFL_APP_KEY": "your_key_here" }第 3 步 — 重启 Claude Desktop 并开始提问
示例:"Central 线运行正常吗?"、"从 Oxford Circus 出发的下一班公交车是什么时候?"
有关源码、Docker 和 Streamable HTTP 选项,请参阅 docs/installation.md。
Related MCP server: MBTA MCP Server
工具
工具 | 描述 | TfL 端点 |
| 按交通方式查看当前状态和中断情况 |
|
| 按站点名称查看实时到站信息 |
|
| 规划两点之间的行程 |
|
| 列出 Santander Cycles 自行车租赁站 |
|
| 按站点名称查看实时拥挤程度 |
|
| 两个命名站点之间的票价信息 |
|
注意: 服务器在内部使用
/StopPoint/Search/{query}端点,自动将站点名称解析为 NaPTAN ID,用于arrivals、crowding和fares工具。
MCP Apps 界面
service_status 工具包含 MCP Apps 支持,作为渐进增强功能。支持界面的主机(例如 Claude Desktop)可以在文本响应旁边渲染交互式服务状态面板。不支持界面的主机继续接收标准文本输出。
界面是自包含的(内联 HTML/CSS,无外部资源)
结构化 JSON 数据与文本回退一起返回
无需额外设置 — 主机支持会自动检测
完整详情请参阅 docs/tools.md。
身份验证
MCPB 和默认容器模式使用 stdio 传输。可选的 Streamable HTTP 模式不实现 OAuth 或任何其他服务器端身份验证;请仅在适当的可信访问层之后部署。
TfL API 使用简单的 API 密钥(TFL_APP_KEY),您可以通过环境变量提供。强烈建议使用密钥 — 没有密钥时,TfL 会应用严格的速率限制,这将影响大多数实际使用场景。注册是免费的。使用此 MCP 服务器不需要 OAuth 流程、登录或 TfL 门户以外的账户。
配置
环境变量 | 默认值 | 描述 |
| (无) | TfL API 密钥 — 在 api-portal.tfl.gov.uk 注册 |
| (无) | TfL App ID — 仅对同时发放 ID 和密钥的旧版 API 注册需要 |
|
| Streamable HTTP 接受的最大 JSON 请求体大小 |
|
| Streamable HTTP 请求超时时间(毫秒) |
|
| Streamable HTTP 标头超时时间(毫秒);不得超过请求超时时间 |
强烈建议使用 API 密钥 — 没有密钥时,TfL 严格的速率限制将影响大多数实际使用场景。在 api-portal.tfl.gov.uk 注册是免费的。
从源码运行
需要 Node.js 22 或更高版本。在启动服务器之前,请从 lockfile 安装依赖并构建。
cd node
npm ci
npm run build
node dist/index.js这将启动 stdio 传输。对于无状态 Streamable HTTP:
cd node
HOST=127.0.0.1 PORT=8080 node dist/index.js --http将 MCP 2026-07-28 客户端连接到 http://127.0.0.1:8080/mcp。在其他主机名下提供服务时,请将 MCP_ALLOWED_HOSTS 设置为逗号分隔的主机名白名单。
有关 Claude Desktop 的使用,请参阅 docs/installation.md。
测试
单元测试使用模拟 HTTP 服务器 — 无需网络访问或 API 密钥:
cd node && npm testStreamable HTTP 验收测试包含在 npm test 中。单独运行官方的冻结 MCP 2026-07-28 需求集(该集合之外的可选扩展探测不计分):
cd node && npm run test:conformance一致性测试夹具通过共享的仅现代 HTTP 适配器注册真实的生产 TfL 工具和资源。它还添加了裁判硬编码探测所需的仅测试诊断工具、资源、提示和流程;这些诊断不会在生产入口点中暴露。
契约测试调用实时 TfL API:
cd node && TFL_APP_KEY=your_key_here npm run contractTest使用 bash scripts/test-distributions.sh 构建并冒烟测试打包的 npm CLI、MCPB 和容器发行版。当 Docker 不可用时,该脚本会跳过容器检查。
支持
如有问题、错误报告或功能请求,请在 GitHub Issues 上提交 issue。
隐私政策
此 MCP 服务器充当您的 AI 助手与 TfL Unified API 之间的本地代理。除转发您的查询到 TfL 所需的数据外,它不收集、存储或传输任何个人数据。
数据收集: 不收集任何分析或遥测数据。有限的操作诊断信息会写入标准错误,但服务器不会持久化;主机可能会根据其自身的日志记录策略保留这些信息。
使用和存储: 查询会实时转发到 TfL,响应会立即返回。不持久化任何查询历史或结果。
第三方共享: 请求会转发到 TfL Unified API(
api.tfl.gov.uk)。有关 TfL 如何处理 API 使用数据,请参阅 TfL 的隐私政策。数据保留: 服务器不保留任何数据,在请求之间不保持任何状态。主机管理的标准错误保留不在服务器的控制范围内。
联系方式: 如有隐私问题,请在 https://github.com/oneill9/tfl-mcp-server/issues 提交 issue。
完整隐私政策可在 PRIVACY.md 查看。
合规性
此服务器已根据 Anthropic 软件目录条款 和 Anthropic 软件目录政策 进行了合规性审查。完整的合规声明和维护者承诺请参阅 COMPLIANCE.md。
TfL API 参考
Unified API:https://api.tfl.gov.uk/
API 门户 / 密钥注册:https://api-portal.tfl.gov.uk/
Swagger UI:https://api.tfl.gov.uk/swagger/ui/index.html
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseCqualityDmaintenanceProvides real-time access to Transport for London data, enabling users to check tube line statuses, get disruption details, and plan journeys between London locations. Uses the official TfL Unified API to deliver live transport information through AI assistants.330MIT
- AlicenseBqualityFmaintenanceEnables AI clients to access Boston's MBTA public transit data, including real-time predictions, schedules, route planning, and service alerts.321Apache 2.0
- FlicenseNot gradedqualityDmaintenanceEnables AI assistants to access real-time Transport for London data, including tube/bus arrivals, line status, journey planning, and disruptions.1
- AlicenseBqualityDmaintenanceProvides real-time Transport for London journey data, including routes, alerts, and disruptions, allowing AI assistants to search journeys and get station information.1234ISC
Related MCP Connectors
UK refunds inside your AI assistant: train delays, flights, TfL, parking. Made in London.
Read and update your Everway trips and itineraries from any MCP-compatible AI assistant.
Real-time transit stops, routes, arrivals, vehicle positions, and schedules via OneBusAway APIs.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/oneill9/tfl-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server