MCP в архитектуре ETL нового поколения. Выжимка из ELT-исследования «Кругов Громова»

MCP (Model Context Protocol) – на сегодняшний момент один из самых популярных трендов в области обработки данных. В ноябре 2024 года компания Anthronic, разработчик интеллектуального ИИ – ассистента Claude, построенного на основе большой языковой модели LLM, выложила в открытый доступ исходный код протокола MCP и предоставила бесплатный доступ к инструментам разработки решений на основе этого протокола.
Если опустить подробности, то MCP это средство стандартизации интеграции ИИ приложений с внешними источниками данных и внешними сервисами обработки данных. При этом подразумевается, что внутри интеграционного контура работа с данными происходит без участия человека. ИИ компоненты сами решают, какие им данные нужны, где их лучше взять и как их обработать, а затем что и как выгрузить.
Первоначально ИТ сообщество приняло эту инновацию довольно скептически, но с начала 2025 года популярность протокола и количество идей по его использованию стало расти лавинообразно. Изначально протокол задумывался как решение одной из фундаментальных проблем LLM систем – их изолированности от внешнего мира. Стандартно, мощные LLM (большие языковые модели) по умолчанию работают в вакууме. Они обучены на статических данных из прошлого и не имеют доступа к вашей личной или какой-либо другой информации: вашим файлам, коду, бизнес-данным, свежим новостям и пр. MCP предлагался в качестве стандартизованного протокола общения LLM с реальным миром. На основе этого подхода, возможно, создавать решения, превращающие их ядро — LLM модель — «всезнающего эрудита с устаревшими данными» в систему, общающуюся с внешними информационными системами в режиме реального времени. При этом архитектура протокола реализует возможность двунаправленного обмена данными. Т. е. системы могут не только забирать информацию, но и делиться ей с другими системами.
Популярности решения способствовало и идея стандартизации обмена данными в среде AI/ML приложений. До MCP каждый разработчик и каждая компания вынуждены были изобретать свой «велосипед» для подключения AI к внешним данным. Создавались одноразовые плагины, уникальные скрипты на одну обработку и API-обертки. Это приводило к фрагментации, несовместимости и гигантским затратам на поддержку. MCP был задуман как открытый стандарт по аналогии с протоколом HTTP для web.
Немаловажно и то, что протокол обеспечивает высокий уровень безопасности взаимодействия систем. Он спроектирован на основе принципа нулевого доверия (zero trust). Этот принцип, возможно, сформулировать следующим образом: «Никому не доверяй, проверяй всегда». Подобный подход реализуется на основе минимальных привилегий, изоляции и контроля, что критически важно для корпоративных заказчиков. Ведь без продуманной модели безопасности никто не рискнул бы подключать AI/ML системы к своим ценным данным.
Кроме технических аспектов, популярность этого протокола определила его своевременное появление. Он был представлен в тот момент, когда назрела реальная потребность в подобном решении. MCP появился ровно в тот момент, когда в этом возникла острейшая необходимость. Мир осознал мощь LLM, но уперся в ограничение их «отрезанности» от реального мира. MCP стал тем недостающим звеном, которое позволило реализовать все те сценарии, которые реально востребованы рынком сегодня.
Ключевой особенностью систем, построенных на основе протокола MCP, является то, что команды на поиск, выгрузку (и загрузку) данных, их трансформацию и обработку задаёт не человек, а LLM-модель — «мозг» системы, построенной на MCP-подходе.

MCP Хост – ИИ программный продукт, реализующий взаимодействия с пользователями системы (людьми и программами). Он чаще всего использует LLM. Например, Claude for desktop.
MCP клиент – выступает в роли моста между MCP хостом и MCP сервером. Клиенты — это многофункциональные программы. Они могут запрашивать список функций у сервера, получать краткое описание и вызывать их по мере необходимости. Вести реестр серверов на основе их функционала и пр.
После получения задания от MCP Хоста MCP клиент выбирает подходящий MCP сервер и отправляет структурированные JSON-запросы для выполнения действий , таких как поиск RAG (Retrieval-Augmented Generation) или загрузка файлов, и обрабатывает потоковые ответы для внедрения контекста в рабочие процессы ИИ. Такая архитектура минимизирует задержку, и поддерживает потоковую передачу данных, что делает её идеальным решением для агентных систем, где критически важен динамический поиск данных.
Многие производители и разработчики интегрируют MCP Хост и MCP клиент, но на рынке присутствует целый ряд реализаций «чистых» MCP клиентов.
MCP сервер – программа (по сути коннектор), выступающая в роли интерфейса к внешней системе, используя её API. Чаще всего эти коннекторы разрабатывают разработчики прикладных систем. На сегодня существует более 100 различных MCP-серверов с открытым исходным кодом, и их количество продолжает быстро расти. Экосистема охватывает практически все популярные SaaS-продукты и инструменты разработки. MCP-сервер к СУБД Яндекс YDB — хороший пример этой тенденции.

Сценарий процесса:
Фаза 1: Планирование и принятие решений (LLM как «Мозг»)
- Анализ запроса пользователя: Пользователь запрашивает MCP Хост на естественном языке – «осмотри мои последние PR на GitHub и напиши краткую сводку». (PR — Pull Request — предложения от других пользователей о внесении изменений в код. Используется в системах контроля версий).
- Определение необходимых действий: MCP Хост на основе встроенной LLM модели определяет, что для ответа нужно: Получить список PR пользователя из GitHub. Проанализировать каждый PR. Сформировать краткий отчет.
- Получить список PR пользователя из GitHub.
- Проанализировать каждый PR.
- Сформировать краткий отчет.
- Выбор инструментов: MCP Хост обращается к реестру инструментов MCP, который предоставил MCP Клиент (MCP Клиент получает список от конкретного MCP-сервера), и выбирает нужные функции: получение списка PR, аннотация каждого PR
- Получение списка PR
- Аннотация каждого PR
Фаза 2 Исполнение запроса
- Формирование MCP-запроса: MCP-хост генерирует строго форматированный запрос, используя выбранные функции и обогащая его дополнительной информацией (данные о запрашивающем и пр.).
- Выполнение запроса: MCP Клиент получает этот запрос, находит соответствующий MCP-сервер (например, mcp-server-github), и вызывает на нем указанные инструменты.
- Получение результата: MCP-сервер выполняет всю «грязную работу»: аутентифицируется в API GitHub, делает HTTP-запросы, обрабатывает ответ, и возвращает структурированные данные (JSON) MCP Клиенту, который передает их обратно MCP Хосту.
Фаза 3: Синтез и ответ (LLM снова как «Мозг»)
- Анализ данных: MCP Хост получает сырые данные от MCP Клиента (например, список PR с метаданными).
- Формулирование ответа: На основе полученных данных и исходного запроса MCP Хост генерирует ответ на естественном языке, понятном человеку. Программа не просто пересказывает данные, а анализирует, находит зависимости, выделяет главное.
«У вас есть 3 открытых Pull Request: [список]. В PR #123 требуются изменения от ревьювера. PR #456 уже готов к слиянию».
- Ответ пользователю: Сформированный ответ выдается пользователю через интерфейс MCP Х (Claude, IDE и пр.).
MCP ETL
MCP очень молодой протокол. Но его широкие и многообещающие возможности порождают широкий спектр идей по его применению в различных классах систем, связанных с обработкой данных.
По мнению ряда экспертов, специфика и потенциальные возможности MCP хорошо подходят для реализации процессов ETL. Они считают, что Model Context Protocol (MCP) предлагает революционный подход к построению ETL-процессов, трансформируя классическую архитектуру в более гибкую, композитную и интеллектуальную систему.
Достоинства построения ETL системы на базе MCP мы рассмотрим на основе функционала подобных систем:
- Функции извлечения данных (Extract) — MCP как унифицированный интерфейс доступа к данным источника.
При классическом подходе для извлечения данных, чаще всего, используются уникальные инструменты, построенные на основе API источника. Эти инструменты не стандартизованы, и обычно создаются на стороне инструментов ETL. MCP предлагает использование специализированных MCP-серверов для каждого источника данных. Обычно подобный сервер разрабатывается разработчиками конкретного источника данных. При этом в подобных серверах нередко используются все наработки, проверенные временем, и добавляется новый функционал, отвечающий современным требованиям. Например, в составе MCP серверов для работы с реляционными источниками данных могут использоваться ODBC драйвера для высокопроизводительного подключения к базам данных. Преимущество архитектуры на основе MCP заключается в наличии стандартизованного интерфейса для всех источников данных. Новый источник легко добавить, подключив новый MCP сервер.
- Трансформация данных (Transform) – MCP как распределенный вычислительный слой.
Классические системы ETL используют мощные инструменты очистки, оценки качества, трансформации и обогащения данных. Очень часто они строятся на основе заранее предопределенных бизнес правил (оценка качества и очистка) и ручной разработке правил трансформации и обогащения данных. Подобный подход хорош для сложных и высоконагруженных batch-процессов, где важна предсказуемость и надежность.
MCP предлагает в качестве альтернативы гибкость и многократность использования компонентов архитектуры. Базовые функции трансформации могут быть заложены в MCP серверах. Для различных функций трансформации могут быть разработаны специализированные серверы (например, парсинг JSON). А окончательные операции могут осуществляться на стороне MCP Хоста. Но главное отличие MCP подхода в том, что бизнес-логика трансформации данных определяется “мозгом” системы – LLM моделью на стороне MCP Хоста. Сама модель ИИ может выступать в качестве инструмента преобразования. После извлечения данных модель может применять сложную логику, например, резюмировать текст, дополнять записи информацией из разных источников (полученной через другие сервера MCP), реструктурировать JSON или генерировать новые аналитические данные. Это позволяет выполнять сложные и интеллектуальные преобразования, выходящие за рамки простых изменений на основе правил, адаптируя логику к содержанию данных и общей цели.
- Выгрузка данных (Load) – MCP как унифицированный загрузчик.
Классические системы ETL используют индивидуальные реализации загрузки под каждую систему назначения. MCP подход предлагает использовать стандартизированные серверы для каждой системы обработки данных. И это не обязательно только хранилища данных. Подобные серверы могут работать с почтовыми системами, репозиториями программного кода и самими ETL системами.
- Безопасность. MCP – реализация RBAC (Role-Based Access Control).
Одна из ключевых особенностей систем, построенных на основе архитектуры MCP, — это обеспечение высокого уровня информационной безопасности (ИБ) во всей цепочке обработки данных. Эта концепция была изначально заложена при создании информационных систем на основе протокола MCP. В классических ETL системах обработку учетных данных пользователей необходимо описывать в скриптах оркестраторов. В отличие от этого подхода в MCP системах обработка учетных данных пользователей (credentials – это комбинация логина (имени пользователя) и пароля, или других идентификаторов) стандартно закладывается в MCP Серверах и MCP Клиентах. Все это позволяет реализовать полноценную модель управления доступом, при которой права пользователям назначаются на основе их ролей – RBAC (Role-Based Access Control), которая будет легко интегрироваться с ролевыми моделями доступа внешних систем обработки данных. Этот подход предоставляет широкие возможности для детального аудита процессов обработки данных.
Ключевые архитектурные преимущества MCP для ETL
- Модульность и повторное использование компонентов: Стандартный MCP сервер для конкретного источника данных можно использовать много раз для разных целей во всех своих пайплайнах.
- Безопасность: Работа с учетными данными (credentials) заложена в серверах и клиентах MCP, а не в скриптах оркестратора как в классическом ETL.
- Надежность: Падение одного сервера не влияет на другие компоненты системы.
- Масштабируемость: При MCP подходе существует возможность на уровне “мозга” автоматически спланировать сценарий обработки данных в зависимости от прогнозируемой нагрузки и данных о доступных физических ресурсах.
- Гибкость: Легко менять отдельные компоненты без переписывания всего пайплайна.
- Тестируемость: Серверы можно тестировать изолированно. MCP подход позволяет проверить логику всего пайплайна — правильную последовательность действий, обработку ошибок, форматирование данных — без зависимости от внешних сервисов. Это стабильно и надежно.
- Наблюдаемость: Каждый этап ETL имеет четкие границы и метрики производительности.
- Аудируемость: Стандартизация MCP подхода обеспечивает полную прозрачность для аудита работы системы на его основе.
MCP подход – это очень молодая архитектура. Многие рассуждения о применимости подхода для реализации ETL систем носят теоретический характер. Потенциал возможностей хорошо просматривается на теоретических выкладках, но как это будет выглядеть в реальности, покажет время.
Но и сейчас понятно, что MCP — это не «серебряная пуля», и классический ELT незаменим для обработки огромных объемов данных (Big Data), регулярных высоконадежных пайплайнов, сложных SQL-трансформаций и пайплайнов с гарантированной консистентностью данных. Вернее всего, будущее MCP-подхода в среде ETL — это его интеграция с лучшими классическими ETL системами в качестве одного из их инструментов.
На сегодня нет полноценных реализаций ETL на базе MCP подхода. В среде Apache Airflow (и его облачные версии например Astro) существует community-проект по созданию MCP Operator, который бы позволял вызывать MCP-серверы как шаги пайплайна. Это естественное развитие идеи децентрализации и выделения логики работы с источниками в отдельные микросервисы.
В стадии разработки находится проект создания MCP-сервера и клиента для Apache NiFi. В текущей версии сервер хорошо читает и документирует существующие потоки. Остальной функционал находится в стадии разработки. Но существуют сотни реализаций MCP-серверов и десятки MCP-клиентов, архитектура которых очень заманчива для их интеграции в ETL пайплайны.
Компания Яндекс предлагает YDB Model Context Protocol (MCP) сервер, который позволяет работать с базами данных YDB из любой большой языковой модели (LLM), которая поддерживает MCP, используя любой из MCP клиентов. Эта интеграция обеспечивает работу с базами данных YDB с помощью ИИ на естественном языке.
Настоящая статья подготовлена как выжимка из ELT-исследования «Кругов Громова» 2025. Полная версия аналитического отчета доступна на сайте АЦ «Круги Громова».


