关于 rozklad-mcp
rozklad-mcp 是面向波兰出行者及 AI 客户端的公共交通时刻查询 MCP 服务,覆盖火车、巴士和约 25 个城市的公交。它可查询换乘路线、实时延误、铁路中断、天气预警和部分铁路票价。
主要功能
- 01搜索火车与巴士换乘路线
- 02查询站点发车及到达信息
- 03查看列车沿线延误与中断
- 04查找附近车站和站点
- 05提供天气预警及部分票价
- 06通过 CLI 查询行程和数据源
适用场景
- 01规划波兰城市间的火车与巴士行程
- 02查看站点当前发车及站台信息
- 03检查列车沿线延误、取消和绕行
- 04估算符合条件的铁路票价
MCP 相关
该 MCP 服务向客户端提供行程规划、发车信息、列车详情、站点查询、铁路中断、天气预警和数据源等工具。可通过公共 Streamable HTTP 端点或本地安装连接。
配置
远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。
https://rozklad.compabase.com/mcpclaude mcp add --transport http contentwriterco-rozklad https://rozklad.compabase.com/mcp{"mcpServers":{"contentwriterco-rozklad":{"type":"http","url":"https://rozklad.compabase.com/mcp"}}}在 Cursor 中打开{"servers":{"contentwriterco-rozklad":{"type":"http","url":"https://rozklad.compabase.com/mcp"}}}在 VS Code 中打开{"mcpServers":{"contentwriterco-rozklad":{"type":"http","url":"https://rozklad.compabase.com/mcp"}}}{"mcpServers":{"contentwriterco-rozklad":{"serverUrl":"https://rozklad.compabase.com/mcp"}}}命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。
工具
详细介绍
rozkład-mcp 🚆🚌
为你的 AI 助手提供 PKP、PKS 和城市公共交通时刻表。
MCP 服务:查询换乘路线、发车信息、实时延误和票价,可在 Claude、ChatGPT、Cursor、VS Code 及所有 MCP 客户端中使用。
30 秒内完成连接 · 问题示例 · 本地安装 · English
波兰境内所有列车(PKP Intercity、Polregio、Koleje Mazowieckie、SKM、Koleje Śląskie、Dolnośląskie、Wielkopolskie、Małopolskie、ŁKA、Arriva……)、PKS 巴士、FlixBus,以及约 25 个城市的公共交通,都可通过同一个路线查询工具查询。无需 API 密钥、无需注册、免费——仅使用承运商和交通管理机构的开放数据。
问题示例
- “明天从 Wrocław 到 Zakopane,怎么才能 9:00 到?”
- “从 Gdynia Orłowo 到 Gdańsk 理工大学,怎么走最快?”
- “周五 16:00 之后从 Poznań 到 Warszawa 的 IC 票价是多少?”
- “现在 Kraków Rondo Mogilskie 站有哪些车发车?”
- “Podhalanin 经过哪些站,晚点多久?”
- “我有一班 18:36 从 Poznań Główny 发车的列车——从 Niepruszewo 出发的巴士要几点坐才能赶上?”
功能
| 工具 | 用途 |
|---|---|
plan_journey | 查询 A → B 的路线,可换乘列车 ↔ 巴士;可设置“最早出发时间”或“最晚到达时间”、换乘次数上限和交通方式。地点可以是车站、整个城市(“Kraków”)或坐标。 |
departures | 查询带站台和延误信息的发车/到达时刻表;支持“仅显示前往 Poznań 方向”的筛选。 |
trip_details | 查询列车全程信息(按车次编号:3510、IC 3510,按名称:Podhalanin,或按 ref),包括各站延误、取消和绕行信息。 |
find_stops / nearby_stops | 搜索车站(支持拼写错误和省略波兰语变音符号)及地点附近的站点。 |
rail_disruptions | 查询 PKP PLK 铁路运行受阻信息:轨道封闭、替代交通(ZKA)、取消、故障、限速——均为 PKP PLK 官方公告。受影响的列车也会在 plan_journey、departures 和 trip_details 中标记 ⚠。公共服务已启用;本地使用需要免费的 PLK 密钥。 |
weather_warnings | 查询该地点所在县的 IMGW 天气预警(雷暴、大风、结冰、高温、降雪)和洪水预警;plan_journey 会自动添加出发地和目的地的预警。 |
data_sources | 查看已加载的数据、有效期限、许可证和必需的署名信息。 |
覆盖范围(默认): 所有由 PKP PLK 协调的铁路运营商——PKP Intercity、Polregio、Koleje Mazowieckie、SKM Trójmiasto、SKM Warszawa、Koleje Śląskie、Dolnośląskie、Wielkopolskie、Małopolskie、ŁKA、Arriva、RegioJet、Leo Express——以及 WKD、PKS Poznań、PKS Kalisz 和卡利什地区的运营商、Sindbad、Kombus、FlixBus/FlixTrain(往返波兰的线路)。约 25 个城市的公共交通(华沙、克拉科夫、罗兹、波兹南、三城、GZM、什切青、卢布林、比亚韦斯托克、比得哥什、莱格尼察……)——公共服务器默认启用,本地使用时可选。搜索城市站点时,请加上城市名称,例如:“Kraków Rondo Mogilskie”、“Warszawa Politechnika”。完整列表:feeds/feeds.json。 |
实时延误:所有列车(PKP PLK 数据)以及克拉科夫、波兹南、格但斯克和什切青的公共交通(GTFS-Realtime)。铁路运营中断(故障、轨道封闭、替代交通、取消)数据直接来自PKP PLK 开放铁路数据——公共服务器开箱即用;本地使用时,设置免费密钥 ROZKLAD_PLK_API_KEY 即可。
票价: plan_journey 会提供官方运营商价目表中的票价:PKP Intercity(TLK/IC 按轨道距离计价,EIC/EIP 按车站组合计价),以及 Polregio、Koleje Mazowieckie、Śląskie、Dolnośląskie、Małopolskie、ŁKA 和 Arriva(普通票、二等座、按距离计价)。如果距离接近价目表区间的边界,我们会给出价格范围,例如 68–69 zł——数据中的轨道里程与计价距离可能相差几公里。这是普通票的最高票价(不含优惠和促销);实际售票时通常更便宜——例如 PKP IC 折扣、地区票价(如 Taryfa Pomorska、Małopolska)和运营商优惠。价目表属于公共信息,我们依据《开放数据法》第 5 条使用。更新方法:npm run build-fares -- <cennik.pdf> <url> <obowiązuje-od>(PKP IC)和 python3 scripts/build-regional-fares.py(地区运营商)。准确票价和购票: 对于每条铁路线路,plan_journey 都会提供 Koleo 搜索链接(销售所有铁路运营商的车票),链接中包含相同的路线和时间——你可以在那里查看含促销优惠的当前票价并购票。服务不会从运营商的商店获取票价(没有可用于此目的的开放 API,自动查询商店会违反其使用条款)。不过,配备浏览器的 Agent(例如 Claude in Chrome 或 Playwright MCP)可以根据你的要求打开该链接并读取票价,就像你自己操作一样。以下交通方式不提供票价:公共交通、巴士、SKM、Koleje Wielkopolskie(未找到最新价目表)——欢迎提交 PR。
最快方式:公共服务器(无需安装)
MCP 地址:https://rozklad.compabase.com/mcp(Streamable HTTP,无需登录,单个 IP 每分钟限 60 次请求)。
- Claude(网页/桌面): 设置 → Connectors → Add custom connector → 粘贴地址。
- ChatGPT: Settings → Connectors(开发者模式)→ 使用此地址添加 MCP 服务。
- Claude Code:
claude mcp add --transport http rozklad https://rozklad.compabase.com/mcp - Cursor / VS Code:
{"mcpServers": {"rozklad": {"url": "https://rozklad.compabase.com/mcp"}}}
该服务由 Compabase 免费托管,包含所有数据源(列车、PKS、FlixBus、公共交通)。如果使用频繁,请在本地运行(见下文)。
隐私:公共服务器只统计每日汇总数据——每种工具的使用次数及结果(例如“未找到地点”)、MCP 客户端名称和唯一用户数(盐值每天更换,仅保存在内存中)。我们不会记录 IP 地址、坐标或路线。查看统计:/stats。
本地安装
需要 Node.js ≥ 20。npm 上架该软件包之前,请在下方命令中使用 github:ContentWriterco/rozklad-mcp 替代 rozklad-mcp(例如 npx -y github:ContentWriterco/rozklad-mcp)。首次运行会下载约 40 MB 的时刻表(之后会缓存,并每 12 小时自动刷新)。
Claude Desktop
在 Settings → Developer → Edit Config 中添加:
{
"mcpServers": {
"rozklad": {
"command": "npx",
"args": ["-y", "rozklad-mcp"]
}
}
}
Claude Code
claude mcp add rozklad --scope user -- npx -y rozklad-mcp
Cursor / Windsurf
~/.cursor/mcp.json(Windsurf:~/.codeium/windsurf/mcp_config.json)——使用与 Claude Desktop 相同的 JSON。
VS Code(Copilot)
.vscode/mcp.json:
{ "servers": { "rozklad": { "type": "stdio", "command": "npx", "args": ["-y", "rozklad-mcp"] } } }
OpenAI Codex CLI
~/.codex/config.toml:
[mcp_servers.rozklad]
command = "npx"
args = ["-y", "rozklad-mcp"]
tool_timeout_sec = 120
远程(HTTP)——ChatGPT、云端 Agent、n8n
npx -y rozklad-mcp --http --port 3000 --host 0.0.0.0
# endpoint: http://twoj-serwer:3000/mcp (Streamable HTTP, bezstanowy) health: /health
或使用 Docker:
docker build -t rozklad-mcp .
docker run -p 3000:3000 -v rozklad-cache:/data rozklad-mcp
从源代码运行
git clone https://github.com/ContentWriterco/rozklad-mcp && cd rozklad-mcp
npm install && npm run build
node dist/index.js plan "Zbąszyń" "Kraków" --date jutro --time 7:00
配置
环境变量(在客户端的 JSON 中:"env": { "ROZKLAD_FEEDS": "trains,regional,city:Poznań" }):
| 变量 | 默认值 | 说明 |
|---|---|---|
ROZKLAD_FEEDS | trains,regional | 分组(trains、regional/pks、city)、单个数据源(warszawa)、城市(city:Kraków)、地区(region:wielkopolskie)、all、排除项(-sindbad)。 |
ROZKLAD_EXTRA_FEEDS | – | 自定义 GTFS 文件:moj-pks=https://…/gtfs.zip;inny=https://… |
ROZKLAD_FEEDS_FILE | – | 自定义数据源注册表(例如,在仅包含一个地区的分支中使用)。 |
ROZKLAD_MIN_TRANSFER | 4 | 最短换乘时间(分钟)。 |
ROZKLAD_MAX_WALK_M | 500 | 换乘时站点之间允许的最远步行距离。 |
ROZKLAD_REFRESH_HOURS | 12 | 检查时刻表更新的频率。 |
ROZKLAD_LIVE | 1 | 0 表示关闭实时延误信息。 |
ROZKLAD_CACHE_DIR | 系统缓存目录 | 下载的时刻表存放位置。 |
ROZKLAD_PLK_API_KEY | – | PKP PLK 开放铁路数据的密钥——启用运行受阻信息和替代交通服务信息。 |
ROZKLAD_CONN_CACHE_MB | 400 | 为后续日期的列车连接数据表预留的内存预算。 |
ROZKLAD_STATS | – | HTTP 模式:1 = 在 /stats 下提供匿名每日使用计数。 |
**内存:**默认数据集(火车 + PKS)约需 300–500 MB RAM,启动约需 10 秒。大城市的公共交通数据占用更多资源(华沙约增加 250 MB,所有城市合计约需 1.2 GB,启动约需 70 秒),因此本地启用时请慎重考虑,例如使用 trains,regional,city:Warszawa。
CLI(无需 Agent)
rozklad-mcp plan "Warszawa" "Gdańsk" --date piątek --time 16:00
rozklad-mcp plan "Zbąszyń" "Gdańsk Główny" --time 9:00 --arrive-by
rozklad-mcp departures "Poznań Główny" --direction Wrocław --duration 180
rozklad-mcp trip "IC 3510" --date jutro
rozklad-mcp stops "szklarska"
rozklad-mcp sources
数据来源是什么?(以及为什么无需密钥)
所有数据均来自运输公司和交通管理机构发布的开放数据(公共部门信息的再利用,MMTIS 国家接入点):
- 火车:PKP PLK 开放铁路数据采用由 Mikołaj Kuranowski 准备的 GTFS 格式(PolishTrainsGTFS)——因此无需自备 API 密钥。
- 公交车和城市交通:运输公司及交通管理机构的 GTFS 文件(链接和许可见
feeds/feeds.json)。
该服务不会抓取运输公司的网站。响应中会包含规定的来源归属信息。数据可能不完整(例如,临时变更、公交替代交通服务);重要出行前请向运输公司核实。
你所在的 PKS 或城市尚未收录?🙋
这是最简单、也最有价值的帮助方式。大多数 PKS 还没有发布数据,但越来越多的 PKS 必须发布数据(欧盟条例 2017/1926)。如果你知道 GTFS 文件的链接:
- 在
feeds/feeds.json中添加条目(模板见 CONTRIBUTING.md), - 运行
npm run check-feeds,检查链接是否有效, - 创建 Pull Request。
不会编程?请通过 “添加运营商”问题模板提交链接或公司名称,或者联系运营商,请他们在 KPD 上发布 GTFS。
**我们正在寻求帮助:**弗罗茨瓦夫(阻止自动下载)、绿山城和莱什诺(KPD 链接无效)、奥尔什丁、琴斯托霍瓦、波兰各地的 PKS、更多城市的 GTFS-Realtime 数据、最新的 Koleje Wielkopolskie 票价表。
工作原理
- 将 GTFS(火车 + 公交车 + 城市)合并为一个内存中的网络;同一车站的站点会归为一组,彼此相距 500 m 以内的站点会通过步行通道连接——因此可以在车站换乘火车 ↔ PKS。
- 搜索:Connection Scan Algorithm 的多目标变体(到达时间 × 换乘次数)——针对整个波兰,每次查询只需几十毫秒。
- 延误:使用 PKP PLK 的 JSON 数据(火车)和各城市的 GTFS-Realtime 数据(自定义 protobuf 解码器,无依赖),缓存时间为 60–90 秒。
- 不依赖原生组件(可在 macOS/Windows/Linux/ARM 上运行),约 3,000 行 TypeScript 代码——易于理解和扩展。
开发
npm install
npm test # build + testy (bez internetu, na syntetycznej sieci)
npm run check-feeds # czy wszystkie linki w rejestrze działają
ROZKLAD_LOG=debug node dist/index.js plan "A" "B"
开发方向建议:省级票价体系(波美拉尼亚、小波兰、库亚维-波美拉尼亚)和城市公交票价、在路线搜索中显示实时延误、路线地图(shapes)、持久化索引以加快启动速度。
许可证
代码:MIT。数据:遵循数据来源的许可证——请参阅 data_sources 和 feeds/feeds.json。本项目独立运营,与 PKP 集团或各运营商无关。
English
rozklad-mcp 是一个 MCP 服务,可为 AI 助手和 Agent 提供波兰公共交通时刻表:波兰境内的所有列车(由 PKP PLK 调度的所有运营商——PKP Intercity、Polregio、Koleje Mazowieckie、SKM、区域铁路),发布开放数据的 PKS/区域巴士,往返波兰的 FlixBus/FlixTrain 服务,以及约 25 个城市的城市公共交通(华沙、克拉科夫、罗兹、波兹南、格但斯克/格丁尼亚、西里西亚 GZM、什切青、卢布林、比亚韦斯托克……)。
plan_journey– 多条件路线查询,支持列车 ↔ 巴士 ↔ 电车换乘、指定出发时间或到达时间、使用坐标作为起终点、PKP Intercity 和区域铁路运营商公布的票价,以及提供显示当前准确票价和车票的 Koleo 链接departures– 实时出发信息,包括站台和延误情况trip_details– 列车或巴士的完整路线,包括实时延误和取消信息(列车;克拉科夫、波兹南、格但斯克、什切琴的城市公共交通)rail_disruptions– PKP PLK 官方铁路中断信息:故障、轨道封闭、接驳巴士、取消(受影响的列车会在所有回答中标记 ⚠)weather_warnings– 地点所在县的 IMGW-PIB 官方天气和洪水预警(也会自动添加到行程信息中)find_stops、nearby_stops、data_sources
**30 秒即可试用:**在 Claude 或 ChatGPT 中添加 https://rozklad.compabase.com/mcp 作为自定义连接器,或运行 claude mcp add --transport http rozklad https://rozklad.compabase.com/mcp。本地使用:在任意 MCP 客户端中运行 npx -y rozklad-mcp(stdio),或使用 --http 启动 Streamable HTTP 端点。无需 API 密钥——使用开放的 GTFS 数据(PKP PLK 数据来自 mkuran.pl,以及运营商和城市自己的数据源)。车站名称可使用或不使用波兰变音符号;只提供城镇名称时,将查询该城镇的所有站点。
示例提示词:“明天早上 9 点前,如何从 Wrocław 前往 Zakopane?”、“现在有哪些车从 Kraków Rondo Mogilskie 出发?”、“周五晚上从 Poznań 到 Warsaw 的 IC 票价是多少?”
非常欢迎贡献新的数据源——请参阅 CONTRIBUTING.md。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。