Command Palette

Search for a command to run...

UnylyUnyly
Весь каталог

RZD Tickets

БесплатноНе проверен

Read-only MCP server for Russian Railways (RZD) trains, cars, seats, adjacent seat pairs, and car photos.

GitHubEmbed

Описание

Read-only MCP server for Russian Railways (RZD) trains, cars, seats, adjacent seat pairs, and car photos.

README

RZD Tickets MCP logo

RZD Tickets MCP

Read-only MCP-сервер, который дает агентам живые “глаза” на 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 в проекте.
Windsurf Settings → Cascade/MCP → Add custom server, затем JSON выше.
Cline MCP Servers → Configure MCP Servers или ~/.cline/mcp.json.
Roo Code MCP 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 не задан, сервер ходит в РЖД напрямую.

Примеры запросов агенту

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

Фильтры

  • trains: точные номера поездов, например ["097Э"].
  • departureFrom / departureTo: окно отправления HH:mm.
  • carType: coupe, platz или сырой тип РЖД.
  • service: сырой код класса РЖД, например ; список кодов открыт.
  • 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: сырой код РЖД, например ;
  • 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 РЖД изменится, ошибка должна быть видна агенту, а не скрыта.

from github.com/ex3lite/mcp_rzd_tickets

Установить RZD Tickets в Claude Desktop, Claude Code, Cursor

Рекомендуется · одна команда, все IDE
unyly install rzd-tickets

Ставит в Claude Desktop, Claude Code, Cursor и VS Code — сам разбирается с npx, uvx и сборкой из исходников.

Впервые? Поставь CLI: curl -fsSL https://unyly.org/install | sh

Или настроить вручную

Выполни в терминале:

claude mcp add rzd-tickets -- npx -y mcp-rzd-tickets

Пошаговые гайды: как установить RZD Tickets

FAQ

RZD Tickets MCP бесплатный?

Да, RZD Tickets MCP бесплатный — установка в пару кликов через Unyly без оплаты.

Нужен ли API-ключ для RZD Tickets?

Нет, RZD Tickets работает без API-ключей и переменных окружения.

RZD Tickets — hosted или self-hosted?

Self-hosted: сервер запускается локально на твоей машине командой из раздела установки.

Как установить RZD Tickets в Claude Desktop, Claude Code или Cursor?

Открой RZD Tickets на unyly.org, выбери вкладку своего клиента (Claude Desktop, Claude Code, Cursor) и нажми Install — конфиг сгенерируется автоматически, без правки JSON.

Похожие MCP

Compare RZD Tickets with

Не уверен что выбрать?

Найди свой стек за 60 секунд

Автор?

Embed-бейдж для README

Похожее

Все в категории development