tfl MCP 服务器使用说明
项目简介
tfl MCP 服务器是一个基于 Model Context Protocol (MCP) 的后端实现,旨在为大型语言模型 (LLM) 客户端提供访问伦敦交通 (Transport for London, TfL) 数据的能力。通过此服务器,LLM 可以查询实时的 TfL 交通信息,例如地铁线路状态、车站到达预测、自行车租赁点信息等,从而增强 LLM 在交通出行领域的应用能力。
主要功能点
- 资源 (Resources): 提供对静态 TfL 数据的访问,例如:
- TfL 线路列表 (tfl://lines)
- TfL 车站列表 (tfl://stations)
- TfL 交通模式列表 (tfl://modes)
- 工具 (Tools): 提供执行操作和获取动态 TfL 数据的能力,包括:
- 'get-line-status': 获取指定伦敦交通线路的当前状态。
- 'get-arrivals': 获取特定车站的到达预测信息。
- 'search-bike-points': 搜索伦敦某位置附近的自行车租赁点。
- 'get-station-info': 获取关于特定车站的详细信息,包括设施、线路和无障碍设施等。
- 'find-stops-by-radius': 查找指定位置半径范围内的交通站点。
安装步骤
由于这是一个 MCP 服务器,通常不需要用户手动安装服务器端程序。你只需要配置 MCP 客户端(例如 Claude)来连接到这个服务器。对于开发者,如果你想要本地运行和调试此服务器,可以参考仓库 README.md 中的开发指南进行构建和运行。
服务器配置 (MCP 客户端配置)
要将 tfl MCP 服务器配置到 MCP 客户端(例如 Claude Desktop),你需要编辑客户端的配置文件。以下是针对 Claude Desktop 的配置示例,你需要根据你的实际 MCP 客户端进行相应配置。
Claude Desktop 配置 (以 'claude_desktop_config.json' 为例):
根据你希望如何运行服务器,选择 "开发/未发布服务器配置" 或 "已发布服务器配置" 添加到 'claude_desktop_config.json' 文件中的 '"mcpServers"' 部分。
开发/未发布服务器配置 (适用于本地开发和调试):
"mcpServers": { "tfl": { "command": "uv", "args": [ "--directory", "/path/to/tfl/project", // 请替换为 tfl 项目在您本地文件系统中的实际路径 "run", "tfl" ] } }
- 'server name': 'tfl' (服务器名称,用于在客户端中标识和引用)
- 'command': 'uv' (运行服务器的命令,这里假设你已安装 'uv' 并将其添加到系统 PATH 环境变量中。 'uv' 是一个 Python 包管理和运行工具)
- 'args': 命令参数列表
- '--directory': '/path/to/tfl/project' ( 重要: 请将 '/path/to/tfl/project' 替换为你克隆或下载的 'tfl' 项目的根目录的实际绝对路径。例如: '/Users/yourusername/Projects/tfl' )
- 'run': 'uv run' 命令的一部分,用于运行指定的 Python 包或模块
- 'tfl': 指定要运行的 Python 包或模块的名称 (这里指 'tfl' 包)
已发布服务器配置 (可能适用于已打包和发布的服务器):
"mcpServers": { "tfl": { "command": "uvx", "args": [ "tfl" ] } }
- 'server name': 'tfl'
- 'command': 'uvx' (可能用于运行已安装的 Python 包)
- 'args': 'tfl' (要运行的包名称)
配置注意事项:
- 路径替换: 请务必将配置示例中的 '/path/to/tfl/project' 替换为你本地 'tfl' 项目的实际绝对路径。
- uv 安装: 确保你的系统中已安装 'uv' 工具,并且 'uv' 命令可以在终端中直接运行。你可以使用 'pip install uv' 或参考 'uv' 的官方文档进行安装。
- 环境变量: 如果服务器代码依赖于环境变量 (例如 'TFL_APP_KEY' 和 'TFL_APP_ID'),请确保在运行服务器的环境中正确设置这些环境变量,通常可以通过 '.env' 文件或系统环境变量进行配置。
基本使用方法
配置完成后,你的 MCP 客户端 (如 Claude) 应该能够连接到 tfl MCP 服务器。你可以通过自然语言指令指示 Claude 使用服务器提供的工具和资源来查询伦敦交通信息。
例如,你可以向 Claude 提出以下问题:
- "维多利亚线的状态如何?" (Claude 可能会调用 'get-line-status' 工具)
- "国王十字车站的下一班火车什么时候到达?" (Claude 可能会调用 'get-arrivals' 工具)
- "在滑铁卢车站附近有哪些自行车租赁点?" (Claude 可能会调用 'search-bike-points' 工具)
- "告诉我关于牛津 सर्कस 车站的信息。" (Claude 可能会调用 'get-station-info' 工具)
- "在纬度 51.5,经度 -0.1 附近 500 米范围内有哪些地铁站?" (Claude 可能会调用 'find-stops-by-radius' 工具)
- "列出所有的 TfL 线路。" (Claude 可能会访问 'tfl://lines' 资源)
请注意,具体的交互方式取决于你的 MCP 客户端的实现和用户界面。
信息
分类
网页与API