2ГИС запустил MCP-сервер для геоданных и адресов
2ГИС выпустил MCP-сервер, который даёт ИИ-агентам доступ к поиску мест, геокодированию, маршрутам, изохронам и картам. Разработчики рассказывают, как устроили сервер внутри и почему без хорошего контракта модель всё равно может начать выдумывать адреса.
Зачем ИИ доступ к геосервисам
В 2ГИС заметили простую проблему: если у ассистента нет подключения к геоданным, он может уверенно отвечать про маршрут или ближайшую организацию, хотя на самом деле просто придумывает ответ. Поэтому команда сделала MCP-сервер, который подключает ИИ-агентов к API-платформе 2ГИС и даёт им шесть инструментов: поиск мест и организаций, прямое и обратное геокодирование, построение маршрутов, изохроны и статические карты.
Для бизнеса и разработчиков здесь важна не только сама интеграция, но и то, как она меняет качество ответов. Когда модель получает реальные данные, её можно использовать в сценариях поддержки, поиска точек на карте, построения маршрутов для клиентов и внутренних сервисов для сотрудников.
Как устроен сервер внутри
Авторы статьи подчёркивают, что инструмент в MCP — это не самостоятельная логика, а тонкий адаптер между контрактом модели и доменной частью API. Основная часть работы вынесена в каркас сервера, чтобы при добавлении новых инструментов не приходилось каждый раз заново писать обработку ошибок, логирование и создание HTTP-пула.
Архитектура разделена по слоям: middleware FastMCP отвечает за авторизацию, allowlist, метрики и таймауты; дальше идут файлы с MCP-схемами и валидацией; отдельный слой работает с общей границей ошибок; а интеграции уже напрямую обращаются к API 2ГИС. Такой подход помогает не плодить дублирующий код и проще поддерживать несколько инструментов и серверов одновременно.
Почему одного доступа к API недостаточно
Главная находка команды в том, что подключить геоинструмент мало — модель ещё нужно правильно ограничить контрактом. Если ошибка связана с ключом или доступом, её лучше вернуть как результат инструмента с понятным машинным кодом, чтобы агент мог это обработать. А вот сетевой сбой или таймаут upstream должны оставаться протокольной ошибкой: в таком случае повторный вызов действительно имеет смысл.
В статье отдельно отмечают роль описания инструмента и схемы параметров. Для MCP это не формальность, а часть продукта: если описание слабое или схема неточная, модель может либо не вызвать нужный инструмент, либо вызвать его неправильно. Поэтому 2ГИС делает упор на валидацию, типизированные сценарии и чёткое разделение ответственности между слоями.