MCP Server 12306
MCP-сервер для поиска билетов на поезда Китая через 12306: остатки, цены, станции, пересадки и остановки
- 415 ★ репозитория
- Последний коммит
- MIT
Расширенный доступ
Почему такой уровень
- Сервер ходит в официальные интерфейсы 12306 и повторяет запросы при сбоях
- В HTTP-режиме по умолчанию слушает все интерфейсы, `SERVER_HOST` равен 0.0.0.0, порт 8000
Установка
- Работает в
В терминале, через SkillFoxx CLI
npx skillfoxx add mcp/mcp-server-12306Определит агенты на машине, покажет уровень доступа и зафиксирует версию.
Другие способы установки
Доступ и проверки
Как мы проверяемРасширенный доступИнструмент запускает код или ходит в сеть, а внешние данные только читает.
- Сервер ходит в официальные интерфейсы 12306 и повторяет запросы при сбоях
- В HTTP-режиме по умолчанию слушает все интерфейсы, `SERVER_HOST` равен 0.0.0.0, порт 8000
Это чужой код. Посмотрите файлы в репозитории перед установкой.
Что делает
MCP-сервер дает агенту поиск по железнодорожным билетам Китая через официальные интерфейсы сервиса 12306. Инструмент `query-tickets` за один запрос возвращает остатки билетов, поезда, классы мест и расписание и принимает фильтр по номеру поезда. `query-ticket-price` выдает актуальные цены по классам мест, от бизнес-класса до мест без сиденья. Станции ищет `search-stations` по китайскому названию, пиньиню, сокращенному пиньиню или трехбуквенному коду, в базе не менее 3 382 станций. `query-transfer` собирает официальные варианты пересадок, постранично загружая их целиком, и возвращает маршрут с временем ожидания. `get-train-route-stations` показывает все остановки поезда с временем прибытия и отправления, `get-train-no-by-train-code` переводит номер поезда в официальный идентификатор поезда, а `get-current-time` помогает с датами: отдает текущее время в любом часовом поясе и считает относительные даты. Сервер запускается как stdio-процесс через uvx, как HTTP-сервис по протоколу Streamable HTTP или в Docker. HTTP-режим слушает порт 8000 и отдает адреса `/mcp`, `/health` и `/schema/tools`.
Для кого. Для тех, кто планирует поездки по Китаю или строит помощника для путешествий и хочет получать расписание, остатки и цены с 12306 прямо в диалоге с агентом.
Подходит, если
- Планируете поездку по Китаю и просите агента найти поезда и остатки билетов между городами на нужную дату
- Нужно сравнить цены по классам мест на конкретный поезд: `query-ticket-price`
- Прямых поездов нет и нужны пересадки: `query-transfer` берет официальные варианты и время ожидания
- Нужно узнать, где поезд останавливается и когда прибывает: `get-train-route-stations`
- Название станции известно только в пиньине или по коду: `search-stations` ищет по любому из вариантов
Не подходит, если
- Нужно купить или забронировать билет: среди инструментов есть только запросы
- Нужны поезда за пределами Китая: данные берутся из 12306
- Вы хотите встроить проект в коммерческий сервис: автор запрещает коммерческое использование
- Среда не поддерживает Python 3.10–3.13 и Docker
Пример запроса к агенту
Найди поезда из Пекина в Шанхай на ближайшую пятницу, покажи остатки и цены по классам местMCP
- Транспорт
- stdio, http
- Авторизация
- не нужна
Переменные окружения
`SERVER_HOST`- Адрес, на котором слушает HTTP-режим, по умолчанию 0.0.0.0.
`SERVER_PORT`- Порт HTTP-режима, по умолчанию 8000.
`DEBUG`- Режим отладки, по умолчанию выключен.
`LOG_LEVEL`- Уровень журнала: DEBUG, INFO, WARNING или ERROR, по умолчанию INFO.
Ограничения
- Нужен Python от 3.10 до 3.13 и сетевой доступ к официальным интерфейсам 12306. Доступность сервиса из вашей сети зависит от самого 12306.
- Инструменты только читают данные: покупки, бронирования и входа в аккаунт нет.
- Автор разрешает использование для обучения, исследований и технического обмена и запрещает коммерческое. Последствия, включая блокировку аккаунта, ложатся на пользователя.
- Сервер не хранит и не меняет данные 12306, он лишь собирает и пересылает ответы публичных интерфейсов.
- Документация проекта написана по-китайски, поэтому описания параметров придется читать в переводе.
Как отключить. Уберите запись 12306 из конфигурации MCP-клиента. Docker-контейнер останавливается командой `docker stop mcp-server-12306` и удаляется командой `docker rm mcp-server-12306`, а пакет с PyPI снимается командой `pip uninstall mcp-server-12306`.
Частые вопросы
Как подключить 12306 MCP к Claude Desktop?
Добавьте в `claude_desktop_config.json` сервер 12306 с командой uvx и аргументом `mcp-server-12306`. Режим stdio не занимает сетевой порт и подходит для Claude Desktop и Cursor. Вместо uvx можно взять pipx или поставить пакет командой `pip install mcp-server-12306`.
Чем stdio отличается от HTTP-режима?
В режиме stdio клиент запускает сервер сам и общается с ним через стандартный ввод и вывод. HTTP-режим запускается командой `mcp-12306` как веб-сервис на порту 8000, клиенту указывают адрес `http://localhost:8000/mcp`. Для настройки есть `SERVER_HOST`, `SERVER_PORT`, `DEBUG` и `LOG_LEVEL`.
Какие параметры нужны для поиска билетов?
Для `query-tickets`, `query-ticket-price` и `query-transfer` нужны станция отправления `from_station`, станция прибытия `to_station` и дата `train_date`. Для `get-train-route-stations` еще `train_no`, номер поезда, который можно получить через `get-train-no-by-train-code`.
Как найти станцию, если я не знаю китайского названия?
Передайте в `search-stations` пиньинь, сокращенный пиньинь или трехбуквенный код станции: поиск нечеткий и охватывает не менее 3 382 станций.
Как запустить сервер в Docker?
Выполните `docker run -d -p 8000:8000 --name mcp-server-12306 drfccv/mcp-server-12306:latest`. Чтобы сменить порт, пробросьте другой внешний порт, например `-p 8080:8000`, и задайте `SERVER_HOST` и `SERVER_PORT` переменными окружения.
Обсуждение
Вопросов и отзывов пока нет.
Похожие
MCP-серверыMCP-сервер для поиска железнодорожных билетов на китайском 12306: расписание, фильтры поездов, пересадки и промежуточные станции
MCP-сервер для Kaiten
mcp_server_for_kaiten
Простой MCP-сервер на Python для CRUD-операций с пространствами, досками и картами Kaiten
MCP-сервер для Kaiten: карточки, комментарии, пространства и доски с управлением детализацией ответов
MCP-сервер для Kaiten на Python
Kaiten MCP
Однофайловый MCP-сервер на FastMCP для Kaiten: 22 инструмента для карточек, комментариев, чек-листов и учета времени
MCP-сервер Trello на 57 инструментов: карточки, списки, чек-листы, вложения, комментарии, поля и рабочие пространства, плюс выгрузка критериев приемки
MCP-сервер Travelpayouts
travelpayouts-mcp
MCP-сервер Travelpayouts, того же владельца что Aviasales: поиск дешевых авиабилетов, календарь цен и отели
Коротко о README
Страница на китайском: таблица возможностей, три способа запуска (stdio, HTTP, Docker), список инструментов с обязательными параметрами, переменные окружения и структура проекта. В конце идут руководство разработчика и отказ от ответственности.