Как научить ChatGPT искать полное купе: MCP-сервер для РЖД

Поиск билетов на поезд часто превращается в утомительное занятие: нужно открывать календарь, перебирать даты, изучать расписание и вручную проверять, есть ли четыре свободных места в одном купе. Для семьи или компании друзей такая рутина может занять не один час. Обычные сервисы отвечают на вопрос «

Как научить ChatGPT искать полное купе: MCP-сервер для РЖД

Поиск билетов на поезд часто превращается в утомительное занятие: нужно открывать календарь, перебирать даты, изучать расписание и вручную проверять, есть ли четыре свободных места в одном купе. Для семьи или компании друзей такая рутина может занять не один час. Обычные сервисы отвечают на вопрос «что есть на эту дату», но не на вопрос «когда есть целое купе». Именно эту проблему решил разработчик, создав MCP-сервер, который позволяет ChatGPT напрямую искать полные купе через неофициальный API РЖД. Теперь можно просто написать запрос в чат-бот и получить готовые варианты, не тратя время на монотонный перебор.

Как работает MCP-сервер для поиска купе

MCP (Model Context Protocol) — это протокол, который позволяет языковым моделям, таким как ChatGPT, вызывать внешние инструменты и получать данные из внешних источников. Автор проекта написал сервер на Bun и TypeScript, который обращается к неофициальному API РЖД, находит поезда с доступными купе и возвращает результат в понятном для ChatGPT виде.

Суть в том, что вместо перебора дат вручную вы просто пишете в ChatGPT: «Найди полное купе из Москвы во Владивосток на ближайшие даты». Модель сама вызывает MCP-сервер, тот опрашивает API РЖД за несколько дат, анализирует наличие четырёх свободных мест в одном купе и выдаёт список подходящих вариантов. Это экономит время и избавляет от монотонной работы.

Какие данные возвращает сервер?

Сервер возвращает не просто список поездов, а структурированную информацию: номер поезда, время отправления и прибытия, стоимость билетов, тип вагона и количество свободных купе. Эти данные приходят в формате, который ChatGPT может легко интерпретировать и представить пользователю в удобном виде. Например, модель может показать таблицу или список с сортировкой по цене или времени в пути.

Предыстория и контекст

Идея возникла из личного опыта автора: планирование семейной поездки через стандартный интерфейс РЖД оказалось крайне неудобным. Пришлось вручную проверять десятки комбинаций дат и поездов. Вместо того чтобы мириться с этим, он решил автоматизировать процесс.

Неофициальный API РЖД существует уже давно и используется в различных сторонних приложениях для поиска билетов. Однако работа с ним требует знания особенностей: например, нужно правильно формировать запросы и обрабатывать ответы. Автор использовал Bun — современный JavaScript-рантайм, который отличается высокой производительностью и удобством для создания серверных приложений. Для развёртывания он выбрал Vercel, что позволяет легко хостить сервер и обеспечить его доступность.

Важный нюанс — использование reverse proxy. Прямые запросы к API РЖД могут блокироваться или требовать специальных заголовков. Reverse proxy позволяет обойти эти ограничения, проксируя запросы через промежуточный сервер. Это стандартная практика для работы с неофициальными API, но она требует аккуратности, чтобы не нарушать условия использования.

Почему это удобнее, чем официальный сайт?

Официальный сайт РЖД и агрегаторы показывают доступные места на конкретную дату, но не позволяют задать условие «целое купе». Пользователю приходится вручную открывать каждый поезд, смотреть схему вагона и проверять, есть ли четыре свободных места подряд. MCP-сервер автоматизирует эту проверку: он перебирает даты, поезда и вагоны, анализирует схему мест и возвращает только те варианты, где есть полное купе. Это принципиально другой подход — вы задаёте условие, а не перебираете варианты вручную.

Технические подробности: Bun, MCP и reverse proxy

Сервер написан на TypeScript и работает на Bun. Bun — это быстрый JavaScript-рантайм, который включает в себя пакетный менеджер и инструменты для тестирования. Он идеально подходит для создания лёгких серверов и скриптов. MCP-сервер реализует протокол MCP, который позволяет ChatGPT подключаться к нему как к инструменту.

Reverse proxy настраивается для того, чтобы скрыть реальный IP-адрес сервера и избежать блокировок. Автор использует Vercel для деплоя, а проксирование осуществляется через специальный сервис или собственный конфиг. Это добавляет дополнительный слой абстракции, но делает систему более стабильной.

Сам процесс поиска выглядит так: ChatGPT получает запрос пользователя, вызывает MCP-инструмент с параметрами (станция отправления, станция назначения, диапазон дат), сервер отправляет запросы к API РЖД, обрабатывает ответы и возвращает структурированный список поездов с указанием свободных купе. Всё это происходит за считанные секунды.

Как подключить MCP-сервер к ChatGPT?

Для подключения MCP-сервера к ChatGPT необходимо настроить клиент MCP, указав URL сервера. В официальном клиенте ChatGPT (например, в десктопной версии) есть возможность добавить MCP-сервер в настройках. После подключения модель сможет вызывать инструменты сервера автоматически, когда пользователь задаёт вопрос о поиске билетов. Подробная инструкция обычно приводится в документации проекта на GitHub.

Кого затронет и как

В первую очередь этот инструмент полезен путешественникам, которые ездят группами: семьям, компаниям друзей, туристическим группам. Вместо долгого перебора вариантов они могут просто спросить ChatGPT и получить готовый ответ. Это также пример того, как MCP расширяет возможности языковых моделей — теперь они могут не только генерировать текст, но и выполнять реальные действия через API.

Разработчики могут использовать этот проект как образец для создания собственных MCP-серверов, интегрирующих любые API. Это открывает новые горизонты для автоматизации: от поиска билетов до бронирования отелей или заказа товаров. Для русскоязычных пользователей особенно актуально, что проект работает с РЖД — это делает его применимым в повседневной жизни.

Есть ли ограничения?

Как и любой неофициальный инструмент, MCP-сервер имеет ограничения. Во-первых, он зависит от стабильности неофициального API РЖД, который может меняться без предупреждения. Во-вторых, использование неофициального API может нарушать условия обслуживания РЖД, поэтому перед массовым использованием стоит ознакомиться с правилами. Для личного использования риски минимальны, но ответственность лежит на пользователе.

Что будет дальше

Автор планирует развивать проект: возможно, добавить поддержку других типов вагонов, таких как СВ или плацкарт, а также улучшить обработку ошибок. В перспективе такие MCP-серверы могут стать стандартом для взаимодействия с государственными и коммерческими сервисами через чат-ботов.

Однако стоит помнить о юридических аспектах: использование неофициального API может нарушать условия обслуживания РЖД. Поэтому перед массовым использованием стоит ознакомиться с правилами. Тем не менее, для личного использования этот инструмент — отличный способ сэкономить время.

Итог

MCP-сервер для поиска полных купе — это яркий пример того, как современные технологии упрощают рутинные задачи. ChatGPT теперь может не только разговаривать, но и находить для вас билеты, если подключить его к правильным инструментам. Следите за развитием этого проекта — возможно, скоро такие сервисы станут обычным делом.