RZD Tickets MCP

السجل الرسمي الوسائط والتصميم

Read-only MCP server for RZD trains, cars, seats, adjacent pairs and car photos.

التثبيت

أضف هذا إلى إعدادات MCP في عميلك (Claude Desktop: claude_desktop_config.json، وCursor: ‏.cursor/mcp.json، ويستخدم VS Code وغيره الصيغة نفسها «mcpServers»).

NPM package mcp-rzd-tickets
Claude Code
claude mcp add rzd-tickets-mcp -e 'RZD_TIMEOUT_MS=<RZD_TIMEOUT_MS>' -e 'RZD_PROXY_URL=<your rzd_proxy_url>' -- npx -y mcp-rzd-tickets@0.1.2
إعداد JSON (Claude Desktop وCursor وVS Code)
{
    "mcpServers": {
        "rzd-tickets-mcp": {
            "command": "npx",
            "args": [
                "-y",
                "mcp-rzd-tickets@0.1.2"
            ],
            "env": {
                "RZD_TIMEOUT_MS": "<RZD_TIMEOUT_MS>",
                "RZD_PROXY_URL": "<your rzd_proxy_url>"
            }
        }
    }
}

متغيرات البيئة

  • RZD_TIMEOUT_MS Request timeout in milliseconds. Defaults to 20000.
  • RZD_PROXY_URL سري Optional http, https, socks4 or socks5 proxy URL. Leave empty for direct requests.

التوثيق

مأخوذ من ملف README للمشروع على GitHub ويُحدَّث أسبوعيًا. تفتح الروابط على GitHub.

المحتويات
  1. RZD Tickets MCP
  2. Инструменты
  3. Установка
  4. Конфиг MCP-клиента
  5. Примеры запросов агенту
  6. Фильтры
  7. Фото вагонов
  8. Классы вагонов РЖД
  9. Переменные окружения
  10. Публикация
  11. Языки
  12. Ограничения

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 git@github.com: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 не задан, сервер ходит в РЖД напрямую.

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

Найди поезд 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 РЖД изменится, ошибка должна быть видна агенту, а не скрыта.

الأسئلة الشائعة

ما هو RZD Tickets MCP؟

Read-only MCP server for RZD trains, cars, seats, adjacent pairs and car photos.

كيف أثبّت RZD Tickets MCP؟

يعمل على جهازك. في Claude Code: claude mcp add rzd-tickets-mcp -e 'RZD_TIMEOUT_MS=<RZD_TIMEOUT_MS>' -e 'RZD_PROXY_URL=<your rzd_proxy_url>' -- npx -y mcp-rzd-tickets@0.1.2. وفي العملاء الآخرين، الصق إعداد JSON من هذه الصفحة في إعدادات MCP الخاصة بهم.

هل يحتاج RZD Tickets MCP إلى مفتاح API؟

نعم. يتطلب RZD_PROXY_URL، وتضبطها في إعداداته.

هل RZD Tickets MCP مفتوح المصدر؟

نعم. شيفرته متاحة على GitHub بترخيص MIT.

من يصون RZD Tickets MCP؟

ينشره ex3lite. يدرجه AI.tn لكنه لا يصونه ولا يوصي به.

من سجل MCP الرسمي. الإدراج ليس توصية: راجع شيفرة الخادم وصلاحياته قبل منحه الوصول إلى بياناتك.