快速结论
Lviv Timetable MCP 是 timetable-api-node 1.3.4 提供的利沃夫公共交通只读服务。它同时暴露 REST API 和 Streamable HTTP MCP,生产 MCP 端点为 https://api.lad.lviv.ua/mcp。工具以确定性数据查询为主,可读取站点实时到站、线路静态信息、线路车辆、附近站点与车辆、单车信息,并按静态线路图规划直达或一次换乘行程。公开端点无需 API Key,不提供写操作,按客户端 IP 实施每分钟 60 次的内存限流。
它适合 MCP 学习、利沃夫交通查询原型和低风险个人出行辅助,但不应被当成交通运营方的保证。答案依赖本地时刻表、GTFS 数据库和 GTFS-RT 等上游源;缓存、抓取失败、车辆设备、路线变更或服务重启都会影响新鲜度。仓库的 WTFPL 许可证覆盖项目代码,不会自动授予 GTFS/GTFS-RT 数据、站名、线路、地图、运营商品牌或车辆信息的再利用权。涉及马上出发、无障碍、票价、停运或安全的决定,应回到运营方渠道确认。
核心功能
- 确定性只读 MCP:公开 Streamable HTTP 端点只暴露查询工具,不允许创建或修改交通记录。
- 八个交通工具:覆盖站点实时到站、线路静态与实时状态、站点几何、附近站点、附近车辆、车辆详情和行程规划。
- 结构化输出:除自然语言摘要外返回
structuredContent,并可包含地图与到站列表所需的ui_blocks。 - GTFS 与 GTFS-RT 组合:静态线路、站点和班次来自本地数据,车辆位置和预计到站依赖实时上游。
- 公开 REST API:站点、线路、车辆、附近查询和行程规划也可通过 JSON 端点调用。
- 无认证与限流:生产
/mcp不要求账号或密钥,每 IP 每分钟 60 次;限流在内存中,服务重启后重置。 - WTFPL 代码:仓库代码可按该许可检查和修改,数据与第三方素材不随代码获得同一许可。
适合人群
- 想学习如何把实时与静态交通数据包装成 MCP 工具的开发者。
- 需要在 Claude、Cursor 或自建客户端中做利沃夫站点和线路查询原型的团队。
- 能处理来源标注、缓存时间、限流、空结果和上游故障的工程人员。
- 不适合要求官方 SLA、全球覆盖、保证到站、精确票价或关键调度决策的生产系统。
使用场景
个人出行助手可以先用坐标查找附近站点,再查询某站实时到站;线路页面可组合静态站序与在线车辆位置。每次展示都应带上查询时间、站点或线路编号和来源,并提示用户临行前核对官方公告。plan_trip 使用静态线路图,最多给出直达和一次换乘选择,但不考虑实时中断,因此不能把“存在路线”解释为“此刻一定可乘”。
工程测试应覆盖不存在的站点、重复线路名、空车辆列表、GTFS-RT 延迟、上游超时、429 和服务重启。附近查询会处理经纬度,车辆详情还可能出现车牌等可识别运营信息。若把服务接入 n8n-MCP 或自建 Agent,不应把精确住址、持续位置或完整 IP 日志长期保存,也不应让模型把估算到站改写成确定承诺。
价格与版本
1.3.4 的仓库与公开服务没有项目订阅费,目录因此标为免费。免费不等于无限容量或生产 SLA;自托管仍会产生计算、存储、GTFS 导入、监控、日志、域名和维护成本。
| 形态 | 费用 | 关键边界 |
|---|---|---|
公共 MCP /mcp | 免费,无认证 | 每 IP 60 请求/分钟,内存限流,无服务保证 |
| 公共 REST API | 免费公开访问 | 端点缓存和上游新鲜度不同,需控制调用频率 |
| 自托管 1.3.4 | 代码免费 | 需 Node.js 24、自备运行资源、数据更新与安全控制 |
| 上游交通数据 | 不由 WTFPL 决定 | 核对许可、署名、缓存、再分发及商业使用规则 |
版本应固定为 1.3.4 并做契约测试。公共服务后续升级、数据格式或工具参数变化,不应在没有测试的情况下自动进入生产。
国内访问与使用体验
本站将 needsVPN 标为 true,主要因为 canonical 仓库位于 GitHub,中国大陆网络下代码、Issue 和依赖下载的直接可用性可能波动。api.lad.lviv.ua 的实际连通性也应从部署地测试;本文不提供网络线路建议。响应内容以乌克兰语站名和利沃夫本地编号为主,中文客户端应保留原名和编号,避免翻译后无法与现场标识对应。
公开无认证端点会看到请求 IP,MCP 工具还可能接收用户位置、站点和车辆查询。项目文档没有因此自动形成适合所有组织的保留与隐私承诺。生产接入应通过自有网关最小化日志、截断或哈希 IP、限制位置精度、设置短保留期,并检查 Cloud Run、代理、监控和模型供应商的完整日志链。
优点
- 1.3.4 提供范围清楚的只读工具,结果来自结构化交通数据而非模型猜测。
- 公共端点无认证,便于快速验证 MCP 客户端和地图 UI。
- 静态 GTFS、实时数据、车辆和行程规划可在同一服务中组合。
structuredContent和ui_blocks便于宿主保留来源数据并渲染地图。- 代码仓库公开,WTFPL 允许检查和修改服务实现。
不足
- 只覆盖利沃夫,不能外推到乌克兰其他城市或全球交通。
- 公共服务无 SLA,60 次/分钟也不适合未经缓存的大规模调用。
- GTFS/GTFS-RT 新鲜度受运营方、车辆设备、抓取和缓存共同影响。
- 静态行程规划不理解实时停运、拥堵、票价或完整无障碍条件。
- IP、坐标、站点和车辆查询会形成位置相关日志风险。
- WTFPL 仅解决代码许可,上游数据、地图、名称和品牌权利仍需审核。
替代品对比
| 工具 | 更适合谁 | 主要优势 | 关键不足 |
|---|---|---|---|
| mirodn Public Transport MCP | 需要多个欧洲地区原型的人 | 聚合六个地区与多家提供方 | pre-alpha 且不同地区字段不一致 |
| Public Transport MCP | 想比较另一套交通 MCP 的开发者 | 可用于交通工具设计对照 | 覆盖、维护和上游条款需独立核验 |
| mcp-use | 自己开发 MCP 客户端与服务的人 | 通用 SDK 和 Agent 框架 | 不自带利沃夫交通数据 |
| Open-WebSearch MCP | 查找公开停运公告的人 | 可搜索网页信息 | 不如结构化站点和车辆查询确定 |
常见问题 FAQ
Lviv Timetable MCP 是官方交通服务吗?
不是。它是公开源码项目和服务,聚合利沃夫交通数据。运营方公告、站牌和现场信息仍是临行决策的权威来源。
公共 MCP 需要 API Key 吗?
不需要。1.3.4 的生产 /mcp 是公开只读端点,但每个 IP 每分钟最多 60 次请求,超过会返回 429。
它会修改交通数据或执行购票吗?
不会。暴露的工具是只读查询,不提供购票、账号、调度或数据写入能力。
实时到站一定准确吗?
不一定。结果受 GTFS-RT 上游、车辆定位设备、缓存、抓取与服务状态影响。必须展示更新时间,并让用户核对官方信息。
WTFPL 是否允许商业使用所有返回数据?
WTFPL 适用于仓库代码,不能自动覆盖上游 GTFS/GTFS-RT、地图、站名、线路、车牌或品牌。商业使用前需单独审核数据权利和署名要求。
公开端点有隐私风险吗?
有。服务器和基础设施可能记录 IP、坐标、站点及车辆查询。应用应减少坐标精度和保留时间,并避免把家庭或持续位置发送给不必要的模型和日志系统。
总结
Lviv Timetable MCP 1.3.4 是一个边界清楚、确定性强的利沃夫交通只读服务。无认证公共端点和结构化输出使它很适合原型,但 60 次/分钟、单城市范围、上游实时性和无 SLA 决定了它不能直接承担关键出行保证。上线前应固定版本、记录数据来源与时间、压测限流和失败场景、最小化 IP 与位置日志,并把 WTFPL 代码许可和交通数据权利当成两项独立审查。