mcpField
R
rozklad-mcp

rozklad-mcp

远程服务
github.com/ContentWriterco地图与出行345 天前更新
代码仓库

关于 rozklad-mcp

rozklad-mcp 是面向波兰出行者及 AI 客户端的公共交通时刻查询 MCP 服务,覆盖火车、巴士和约 25 个城市的公交。它可查询换乘路线、实时延误、铁路中断、天气预警和部分铁路票价。

主要功能

  1. 01搜索火车与巴士换乘路线
  2. 02查询站点发车及到达信息
  3. 03查看列车沿线延误与中断
  4. 04查找附近车站和站点
  5. 05提供天气预警及部分票价
  6. 06通过 CLI 查询行程和数据源

适用场景

  1. 01规划波兰城市间的火车与巴士行程
  2. 02查看站点当前发车及站台信息
  3. 03检查列车沿线延误、取消和绕行
  4. 04估算符合条件的铁路票价

MCP 相关

该 MCP 服务向客户端提供行程规划、发车信息、列车详情、站点查询、铁路中断、天气预警和数据源等工具。可通过公共 Streamable HTTP 端点或本地安装连接。

配置

远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。

服务地址https://rozklad.compabase.com/mcp
一键复制安装命令
Claude CodeTerminal
Cursor.cursor/mcp.json
VS Code.vscode/mcp.json
Claude Desktopclaude_desktop_config.json
Windsurf~/.codeium/windsurf/mcp_config.json

命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。

安装包
npmrozklad-mcp0.4.1

工具

详细介绍

rozkład-mcp 🚆🚌

为你的 AI 助手提供 PKP、PKS 和城市公共交通时刻表。
MCP 服务:查询换乘路线、发车信息、实时延误和票价,可在 Claude、ChatGPT、Cursor、VS Code 及所有 MCP 客户端中使用。

npm MCP 注册表 CI MIT 许可证 无需 API 密钥

动画:用户询问 AI 助手如何从 Zbąszyń 前往 Kórnik;助手使用 rozklad-mcp,提供 IC 列车、步行前往巴士站以及 PKS 巴士的班次时间和票价

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_FEEDStrains,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_TRANSFER4最短换乘时间(分钟)。
ROZKLAD_MAX_WALK_M500换乘时站点之间允许的最远步行距离。
ROZKLAD_REFRESH_HOURS12检查时刻表更新的频率。
ROZKLAD_LIVE10 表示关闭实时延误信息。
ROZKLAD_CACHE_DIR系统缓存目录下载的时刻表存放位置。
ROZKLAD_PLK_API_KEY–PKP PLK 开放铁路数据的密钥——启用运行受阻信息和替代交通服务信息。
ROZKLAD_CONN_CACHE_MB400为后续日期的列车连接数据表预留的内存预算。
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 国家接入点):

该服务不会抓取运输公司的网站。响应中会包含规定的来源归属信息。数据可能不完整(例如,临时变更、公交替代交通服务);重要出行前请向运输公司核实。

你所在的 PKS 或城市尚未收录?🙋

这是最简单、也最有价值的帮助方式。大多数 PKS 还没有发布数据,但越来越多的 PKS 必须发布数据(欧盟条例 2017/1926)。如果你知道 GTFS 文件的链接:

  1. 在 feeds/feeds.json 中添加条目(模板见 CONTRIBUTING.md),
  2. 运行 npm run check-feeds,检查链接是否有效,
  3. 创建 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

动画:用户询问 AI 助手如何从 Zbąszyń 前往 Kórnik;助手使用 rozklad-mcp,回答可乘坐 IC 列车、步行一小段路,再换乘 PKS 巴士,并提供时间和票价

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。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。