mcpField
R
RZD Tickets MCP

RZD Tickets MCP

本地服务
github.com/ex3lite地图与出行217 周前更新

关于 RZD Tickets MCP

RZD Tickets MCP 是只读的俄罗斯铁路票务查询 MCP 服务,供 Agent 检索列车、车厢和座位信息。它支持按座位条件筛选并生成官方手动购票链接,但不处理预订或付款。

主要功能

  1. 01查询站点代码与列车
  2. 02查看票价、车厢和座位
  3. 03筛选上下铺及相邻座位
  4. 04获取车厢照片(如有)
  5. 05生成官方购票链接

适用场景

  1. 01按日期和路线查找列车
  2. 02筛选指定车厢类型和座位
  3. 03寻找同一隔间的上下铺组合

MCP 相关

通过 MCP stdio 服务向客户端提供只读的 RZD 查询工具;也可用 CLI 进行快速检查。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"ex3lite-mcp-rzd-tickets": {
"command": "npx",
"args": [
"-y",
"mcp-rzd-tickets"
],
"env": {
"RZD_TIMEOUT_MS": "<RZD_TIMEOUT_MS>",
"RZD_PROXY_URL": "<RZD_PROXY_URL>"
}
}
}
}
启动命令npx -y mcp-rzd-tickets
需要配置的环境变量
RZD_TIMEOUT_MSRequest timeout in milliseconds. Defaults to 20000.
RZD_PROXY_URL密钥Optional http, https, socks4 or socks5 proxy URL. Leave empty for direct requests.

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npmmcp-rzd-tickets0.1.2

工具

7

收录的工具列表 · 更新于 2 周前

参数类型必填说明
querystring是车站名称片段,例如 Красноярск 或 Анзеби。

详细介绍

RZD Tickets MCP 标志

RZD Tickets MCP

只读 MCP 服务,为 Agent 提供 ticket.rzd.ru 上的实时信息: 列车、车厢、价格、下铺/上铺、侧铺、特殊座位、相邻的 下铺+上铺 组合、车厢照片(如果俄罗斯铁路发布了照片),以及供手动预订的 俄罗斯铁路官方链接。

服务不会登录、预订、创建保留订单、付款、取消订单,也不会更改俄罗斯铁路个人账户。

工具

工具功能
rzd_station_suggest按名称搜索车站的 nodeId 和 expressCode。
rzd_search_trains显示列车、价格、车厢组和俄罗斯铁路链接。
rzd_train_cars深入查询 CarPricing:车厢、座位、上铺/下铺统计、照片。
rzd_find_places仅返回符合筛选条件的结果,包括车厢照片。
rzd_checkout_url构建用于手动预订的俄罗斯铁路官方链接。
rzd_parse_search_url解析俄罗斯铁路搜索 URL。
rzd_service_classes说明如何解读俄罗斯铁路公开的等级代码。

安装

git clone [email protected]:ex3lite/mcp_rzd_tickets.git
cd mcp_rzd_tickets
npm install
npm run build

启动 MCP stdio 服务:

node dist/mcp.js

快速 CLI 检查:

node dist/cli.js --suggest "Красноярск"
node dist/cli.js --origin 2038000 --destination 2054275 --date 2026-07-12 --train 376Ы --require-pair --car-type coupe

MCP 客户端配置

此软件包已发布到 npm,名称为 mcp-rzd-tickets,因此通常无需 clone/build:

npx -y mcp-rzd-tickets
Claude Code

全局应用于所有项目:

claude mcp add -s user rzd_tickets -- npx -y mcp-rzd-tickets
claude mcp list

仅用于当前项目:

claude mcp add -s project rzd_tickets -- npx -y mcp-rzd-tickets
Codex
codex mcp add rzd_tickets --env RZD_TIMEOUT_MS=20000 -- npx -y mcp-rzd-tickets
codex mcp list

修改 MCP 配置后,已打开的 Codex 会话可能需要新建聊天或重启,服务器才会出现在工具列表中。

Claude Desktop、Cursor、Windsurf、Cline、Roo Code

对于使用 JSON MCP 配置的客户端,请使用同一配置块:

{
  "mcpServers": {
    "rzd_tickets": {
      "command": "npx",
      "args": ["-y", "mcp-rzd-tickets"],
      "env": {
        "RZD_TIMEOUT_MS": "20000"
      }
    }
  }
}

插入位置:

客户端插入位置
Claude Desktop~/Library/Application Support/Claude/claude_desktop_config.json,键为 mcpServers。
Cursor全局配置 ~/.cursor/mcp.json,或在项目中配置 .cursor/mcp.json。
WindsurfSettings → Cascade/MCP → Add custom server,然后使用上面的 JSON。
ClineMCP Servers → Configure MCP Servers 或 ~/.cline/mcp.json。
Roo CodeMCP Servers → Edit Global MCP / Edit Project MCP。
Continue

Continue 可以读取 JSON MCP config,但其原生格式是 YAML block,文件位于 .continue/mcpServers/rzd-tickets.yaml:

name: RZD Tickets MCP
version: 0.1.2
schema: v1
mcpServers:
  - name: rzd_tickets
    command: npx
    args:
      - -y
      - mcp-rzd-tickets
本地 checkout
{
  "mcpServers": {
    "rzd_tickets": {
      "command": "node",
      "args": ["/absolute/path/to/mcp_rzd_tickets/dist/mcp.js"],
      "env": {
        "RZD_TIMEOUT_MS": "20000"
      }
    }
  }
}
代理
{
  "mcpServers": {
    "rzd_tickets": {
      "command": "npx",
      "args": ["-y", "mcp-rzd-tickets"],
      "env": {
        "RZD_PROXY_URL": "socks5://user:pass@host:1080",
        "RZD_TIMEOUT_MS": "20000"
      }
    }
  }
}

默认情况下不需要代理。如果未设置 RZD_PROXY_URL,服务会直接连接俄罗斯铁路。

向 Agent 提问示例

Найди поезд 376Ы Красноярск Пасс — Анзеби на 2026-07-12.
Нужна соседняя пара нижнее+верхнее в купе.
Боковые и спецместа не учитывать.
Если есть совпадение, дай ссылку РЖД для оформления.
Через rzd_station_suggest найди коды Анзеби и Красноярск.
Потом проверь 2 пассажиров на 2026-07-03 по поезду 097Э.
Ищу пару нижнее+верхнее в одном отсеке.

筛选条件

  • trains:精确的列车编号,例如 ["097Э"]。
  • departureFrom / departureTo:发车时间范围,格式为 HH:mm。
  • carType:coupe、platz 或俄罗斯铁路的原始类型。
  • service:俄罗斯铁路的原始等级代码,例如 2Ш;代码列表公开可查。
  • placeKind:lower、upper、other。
  • requirePair:同一隔间内相邻的 下铺+上铺 组合。
  • includeSide:是否包含侧铺。
  • includeAccessible:是否包含供残障人士/陪同人员使用的特殊座位。
  • includeImages:如果俄罗斯铁路返回 HasImages=true,则获取车厢图库;在 MCP 中默认启用。
  • maxPrice、minPlaces:价格和最少座位数。

车厢照片

在 rzd_train_cars 和 rzd_find_places 中,每节车厢都包含 imageInfo。

  • hasImages:来自 CarPricing 的标志。
  • fetched:是否成功请求图库 endpoint。
  • schemeId、schemeName、carSubType、carrier:来自俄罗斯铁路的车厢方案/类型标识符。
  • images[].thumbnailUrl:缩略图。
  • images[].contentUrl:完整尺寸的照片。
  • unavailableReason / error:没有照片或请求失败的原因。

请注意:俄罗斯铁路并非为每节车厢都提供照片。如果 CarPricing 中的 HasImages=false,MCP 不会凭空生成图片,而会在 imageInfo.unavailableReason 中明确说明原因。

Классы вагонов РЖД

Класс обслуживания РЖД не моделируется как enum. Это намеренно.

РЖД может добавлять и менять коды, поэтому сервер отдает агенту:

  • code: сырой код РЖД, например 2Ш;
  • title: человекочитаемый заголовок из ответа РЖД, типа вагона или общего семейства;
  • tags: факты из официального ServiceClassTranscript и осторожные подсказки;
  • transcript: официальный текст РЖД, если он пришел в CarPricing;
  • description: готовая строка для показа человеку.

Агент должен показывать сырой код вместе с description, а точный смысл брать из transcript, когда он есть. Так не нужно расширять локальный enum каждый раз, когда РЖД вводит новый вариант.

Переменные окружения

ПеременнаяОписание
RZD_PROXY_URLОпциональный http://, https://, socks4:// или socks5:// прокси.
RZD_TIMEOUT_MSТаймаут запроса. По умолчанию 20000.

Публикация

Основной путь:

npm publish --access public
mcp-publisher login github
mcp-publisher publish

server.json уже подготовлен для официального MCP Registry: io.github.ex3lite/mcp-rzd-tickets. Сам registry хранит metadata, а код должен лежать в публичном npm-пакете mcp-rzd-tickets.

Дополнительно можно опубликовать на Smithery. Для текущего stdio-сервера нужен MCPB bundle; для URL-публикации на Smithery потребуется отдельный Streamable HTTP endpoint.

Языки

Ограничения

RZD может менять приватные web-endpoint без предупреждения. Этот сервер использует те же read-only pricing endpoint, что и публичный web-app, и браузероподобные заголовки. Если payload РЖД изменится, ошибка должна быть видна агенту, а не скрыта.

评论

支持 Markdown

第一次接触 MCP?

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

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