MCP для транспорта Москвы и области
Moscow Transport MCP
MCP-сервер сводит воедино три источника транспорта: Мосгортранс, РНИС Подмосковья и Яндекс Транспорт, со сверкой прогнозов прибытия
- 0 ★ репозитория
- Последний коммит
- MIT
Расширенный доступ
Почему такой уровень
- Запускает Python-сервер, который опрашивает API Мосгортранса, РНИС и Яндекс Транспорта
- Для Яндекс Транспорта нужны сессионные CSRF-токен и session id, которые вы получаете сами
Установка
- Работает в
- Сервисы
Ручная установка
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txtУстановка зависимостей в виртуальном окружении.
Доступ и проверки
Как мы проверяемРасширенный доступИнструмент запускает код или ходит в сеть, а внешние данные только читает.
- Запускает Python-сервер, который опрашивает API Мосгортранса, РНИС и Яндекс Транспорта
- Для Яндекс Транспорта нужны сессионные CSRF-токен и session id, которые вы получаете сами
Это чужой код. Посмотрите файлы в репозитории перед установкой.
Что делает
Сервер работает и как MCP по stdio, и как REST API на FastAPI, объединяя данные пассажирского транспорта Москвы и Московской области из трех независимых источников: официального API Мосгортранса stop_v2 и qr-stop с локальным реестром более чем 12 500 остановок, РНИС Московской области с прямым доступом к телеметрии бортов и Яндекс Транспорта через Masstransit API. Восемь инструментов покрывают поиск остановок по названию, координатам или прямоугольной области, живое табло прибытия, точный ETA конкретного автобуса со сверкой источников, поиск бортов на карте по фильтрам вроде кондиционера или низкого пола, детали маршрута, досье борта по госномеру и статус системы. Сервер сам выбирает нужный павильон на остановках с несколькими платформами и сверяет официальное время прибытия с фактическим положением борта, не отбрасывая данные при отсутствии части полей.
Для кого. Для разработчиков транспортных и логистических приложений в Москве и области, которым нужен один надежный источник вместо трех разных API.
Подходит, если
- Нужно получить живое табло остановки с учетом реального положения автобуса, а не только расписания
- Нужно искать остановки и автобусы одновременно в Москве и Московской области без переключения между источниками
- Нужен точный ETA конкретного маршрута со сверкой данных оператора и GPS
Не подходит, если
- Нужен транспорт за пределами Москвы и Московской области: сервер узко покрывает только этот регион
- Не хочется настраивать интеграцию с Яндекс Транспортом через сессионные параметры: часть полей .env берется из внутреннего Masstransit API, а не из публичного ключа
Пример запроса к агенту
Покажи живое табло остановки Метромост и скажи, когда реально приедет автобус 110, а не по расписаниюMCP
- Транспорт
- stdio, http
- Авторизация
- не нужна
Переменные окружения
STOPS_GEOJSON_PATHобязательная- Путь к локальному реестру остановок Москвы, скачивается скриптом download_stops.sh
RNIS_BASE_URL- Базовый адрес РНИС Московской области
YANDEX_CSRF_TOKENсекрет- Сессионный CSRF-токен для внутреннего Masstransit API Яндекса, опционально
YANDEX_SESSION_IDсекрет- Идентификатор сессии для интеграции с Яндекс Транспортом, опционально
Ограничения
Интеграция с Яндекс Транспортом использует внутренний Masstransit API через сессионные параметры (CSRF-токен, session id), а не публичный ключ, эти значения нужно получать и обновлять самостоятельно и они могут протухать. Проект по описанию автора требует доработки: раздел «Перспективы» прямо называет текущую реализацию transport_service.py неэффективной при работе со всеми тремя источниками. Локальный реестр остановок Москвы нужно скачивать отдельным скриптом download_stops.sh.
Как отключить. Удалите сервер из конфигурации MCP клиента и остановите процесс server.py, если он запущен отдельно.
Частые вопросы
Работает ли сервер без интеграции с Яндекс Транспортом?
Да, README указывает эту интеграцию опциональной, остальные два источника, Мосгортранс и РНИС Подмосковья, работают отдельно.
Можно ли использовать как обычный REST API, а не только MCP?
Да, тот же server.py можно запустить флагом --http как FastAPI-сервер с документацией Swagger на /docs.
Обсуждение
Вопросов и отзывов пока нет.
MCP-сервер для Яндекс Карт: прямое и обратное геокодирование и отрисовка статической карты с метками
MCP для анализа земельных участков
Construction Maps MCP Server
MCP-сервер для предпроектного анализа участков: границы Росреестра, геокодирование и карты Яндекса, инфраструктура и геометрия
Свой MCP-сервер на Cloudflare Workers для локального SEO: поиск и карточки организаций в 2ГИС, Яндекс Геокодере и Google Places
MCP Росреестр
MCP Rosreestr
MCP-сервер данных Росреестра и НСПД: объекты недвижимости по кадастровому номеру, GeoJSON-геометрия, пакетные запросы
Saymon RU Data API: платные данные по России
Saymon RU Data API
Удаленный MCP с оплатой за каждый вызов в USDC: проверка компаний по ИНН, поиск по Рунету, отслеживание Почты России, курсы ЦБ и MOEX
Монорепозиторий MCP-серверов для Яндекса: Директ, Метрика, Вебмастер, Wordstat, Трекер, 360, Карты, SpeechKit, YandexGPT и AppMetrica
Коротко о README
Подробный README на русском описывает архитектуру сверки трех источников с диаграммой, объясняет умный выбор павильона на многосторонних остановках, бесшовное объединение реестров Москвы и области и политику неразрушения данных при отсутствии полей. Дана таблица из восьми инструментов с REST-эндпоинтами, конфигурация .env для всех трех источников, инструкции запуска как MCP и как REST, подключение к Claude Desktop, Cursor и Windsurf, примеры curl-запросов и раздел тестирования с 156 unit-тестами и 36 сквозными сценариями agent_test.py. В конце автор честно указывает на планы переработать transport_service.py. Лицензия MIT.