MCP для транспорта Москвы и области

Moscow Transport MCP

MCP-сервер сводит воедино три источника транспорта: Мосгортранс, РНИС Подмосковья и Яндекс Транспорт, со сверкой прогнозов прибытия

MCP-сервер

Низкий риск

Низкий уровень ставим, когда запись в основном дает агенту инструкции и справочные материалы.

Почему такой уровень

  • Только читает публичные данные транспорта и не выполняет действий от имени пользователя
Все причины и проверки
Российский стек

zavorateam/moscow-transport-mcp

Установка

Ручная установка

python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt

Установка зависимостей в виртуальном окружении.

Это чужой код. Посмотрите файлы в репозитории перед установкой.

Что делает

Сервер работает и как MCP по stdio, и как REST API на FastAPI, объединяя данные пассажирского транспорта Москвы и Московской области из трех независимых источников: официального API Мосгортранса stop_v2 и qr-stop с локальным реестром 12500+ остановок, РНИС Московской области с прямым доступом к телеметрии бортов и Яндекс Транспорта через Masstransit API. Восемь инструментов покрывают поиск остановок по названию, координатам или прямоугольной области, живое табло прибытия, точный ETA конкретного автобуса со сверкой источников, поиск бортов на карте по фильтрам вроде кондиционера или низкого пола, детали маршрута, досье борта по госномеру и статус системы. Сервер сам выбирает нужный павильон на остановках с несколькими платформами и сверяет официальное время прибытия с фактическим положением борта, не отбрасывая данные при отсутствии части полей.

Для кого. Для разработчиков транспортных и логистических приложений в Москве и области, которым нужен один надежный источник вместо трех разных API.

Подходит, если

  • Нужно получить живое табло остановки с учетом реального положения автобуса, а не только расписания
  • Нужно искать остановки и автобусы одновременно в Москве и Московской области без переключения между источниками
  • Нужен точный ETA конкретного маршрута со сверкой данных оператора и GPS

Не подходит, если

  • Нужен транспорт за пределами Москвы и Московской области: сервер узко покрывает только этот регион
  • Не хочется настраивать интеграцию с Яндекс Транспортом через сессионные параметры: часть полей .env берется из внутреннего Masstransit API, а не из публичного ключа

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

Покажи живое табло остановки Метромост и скажи, когда реально приедет автобус 110, а не по расписанию

Ограничения

Интеграция с Яндекс Транспортом использует внутренний Masstransit API через сессионные параметры (CSRF-токен, session id), а не публичный ключ, эти значения нужно получать и обновлять самостоятельно и они могут протухать. Проект по описанию автора требует доработки: раздел «Перспективы» прямо называет текущую реализацию transport_service.py неэффективной при работе со всеми тремя источниками. Локальный реестр остановок Москвы нужно скачивать отдельным скриптом download_stops.sh.

Как отключить. Удалите сервер из конфигурации MCP клиента и остановите процесс server.py, если он запущен отдельно.

MCP

Транспорт
stdio, http
Авторизация
не нужна
Переменные окружения
Переменные окружения
STOPS_GEOJSON_PATH
обязательная
Путь к локальному реестру остановок Москвы, скачивается скриптом download_stops.sh
RNIS_BASE_URL
Базовый адрес РНИС Московской области
YANDEX_CSRF_TOKEN
секрет
Сессионный CSRF-токен для внутреннего Masstransit API Яндекса, опционально
YANDEX_SESSION_ID
секрет
Идентификатор сессии для интеграции с Яндекс Транспортом, опционально

Проверка безопасности

  • Только читает публичные данные транспорта и не выполняет действий от имени пользователя

Коротко о README

Подробный README на русском описывает архитектуру сверки трех источников с диаграммой, объясняет умный выбор павильона на многосторонних остановках, бесшовное объединение реестров Москвы и области и политику неразрушения данных при отсутствии полей. Дана таблица из восьми инструментов с REST-эндпоинтами, конфигурация .env для всех трех источников, инструкции запуска как MCP и как REST, подключение к Claude Desktop, Cursor и Windsurf, примеры curl-запросов и раздел тестирования с 156 unit-тестами и 36 сквозными сценариями agent_test.py. В конце автор честно указывает на планы переработать transport_service.py. Лицензия MIT.

Частые вопросы

Работает ли сервер без интеграции с Яндекс Транспортом?

Да, README указывает эту интеграцию опциональной, остальные два источника, Мосгортранс и РНИС Подмосковья, работают отдельно.

Можно ли использовать как обычный REST API, а не только MCP?

Да, тот же server.py можно запустить флагом --http как FastAPI-сервер с документацией Swagger на /docs.

Выбор редакции

166 скиллов для научных задач: биоинформатика, хемоинформатика, клинические данные, геоданные и доступ к 100+ базам

СкиллСредний риск47 тыс.Звезды репозитория
Официальный

Открытый MCP-сервер Google для баз данных: готовые инструменты для Postgres, MySQL, BigQuery, Spanner и других, плюс свои инструменты в tools.yaml

MCP-серверВысокий риск16,5 тыс.Звезды репозитория
Выбор редакции

Официальные скиллы Hugging Face: работа с Hub через CLI hf, датасеты, обучение моделей, Spaces, оценка и деплой

СкиллВысокий риск11,1 тыс.Звезды репозитория
Официальный

Язык визуализации для агентов и MCP-сервер: из простой семантической спецификации собираются аккуратные графики

MCP-серверСредний рискБез VPN4,3 тыс.Звезды репозитория
Foxx AIMCP для транспорта Москвы и области

Я Foxx AI и уже разобрал этот инструмент. Спросите про установку, настройку или что угодно еще, отвечу простыми словами.