MCP — протокол контекстного моделирования для ИИ

16 апреля 2026
0 комментариев

Одна из основных проблем моделей искусственного интеллекта — их замкнутость на обучающие данные. Поэтому они часто формируют слишком общие ответы, оторванные от реальности. Технологии MCP позволяют решить данную проблему за счет предоставления ИИ контекстной информации из различных источников как внутри компании, так и в ее бизнес-окружении.

Одной из наиболее важных проблем, с которой сталкиваются пользователи систем искусственного интеллекта (ИИ), является оторванность выдаваемых ими результатов от контекста. Действительно, когда заблудившийся путешественник-автомобилист на вопрос прохожему «где я нахожусь?» получает ответ «в автомобиле», это ему мало помогает. Хотя ответ абсолютно точный и правильный.

Причина в том, что отвечающий не понимает, зачем требуется его ответ, если не владеет контекстом проблемы, которым в данном случае является информация о том, что автомобилист не может идентифицировать свое текущее местоположение, чтобы сориентироваться и найти дорогу.

Аналогично, в бизнесе, если задать ИИ вопрос: «Как увеличить прибыль предприятия?» можно получить ответ «Нужно снизить себестоимость продукции и сделать выше цену». Ответ также абсолютно верный, но лишенный смысла. Потому что бизнесмена интересует не «что нужно сделать» (это в большинстве случаев очевидно), а «каким образом». А для этого требуется учесть массу факторов: виды продукции, текущую динамику продаж, поведение клиентов, состояние рынка и многое другое, что и образует контекст.

Таким образом, чтобы получить от ИИ внятный ответ, ему нужно предоставить доступ к информации с контекстом. Для этого ИИ должен «сходить» в БД компании, чтобы получить сведения о продукции, «посетить» систему CRM, где «ознакомиться» с поведением клиентов, «наведаться» во внутренние документы компании, которые регламентируют предоставление гарантии на продукцию или ее возврат.

Традиционно, подобные задачи решались, что называется, «на коленке»: разрабатывались специализированные интерфейсы (коннекторы) для доступа к источникам информации о контексте, а также утилиты (инструменты) для различных сопутствующих действий, связанных, например, с обработкой данных, формированием и рассылкой подсказок и уведомлений пользователям.

Однако, как показала практика, подход «на коленке» имеет массу недостатков. Во-первых, он связан с потерями времени, которые при принятии решений в бизнесе могут оказаться критичными с точки зрения упущенных возможностей или предотвращения рисков. Во-вторых, при большом количестве источников данных может потребоваться множество плохо совместимых друг с другом решений. И, наконец, при добавлении новых источников контекстной информации или изменении существующих, приходится модифицировать код, чтобы снова «подружить» с ними ИИ-приложение.

Все это, и многое другое, привело к появлению запроса на унификацию и стандартизацию процесса подключения ИИ к разнообразным источникам, содержащим контекстную информацию, и предоставления необходимого функционала. Именно такой запрос и постаралась удовлетворить компания Anthropic, которая в 2024 году представила открытый стандарт и платформу с открытым исходным кодом для подключения ИИ-приложений к внешним системам, известный как MCP (Model Context Protocol — протокол контекста модели).

Используя MCP, ИИ-приложения могут подключаться к источникам контекстной информации и инструментам (утилитам), реализующим сопутствующий функционал. MCP часто сравнивают с USB-портом: подобно тому, как USB-порт реализует стандартизированный метод подключения электронных устройств, MCP обеспечивает стандартизированный способ получения доступа ИИ-приложений к внешним системам.

MCP построен по клиент-серверной архитектуре и основан на следующих базовых принципах:

  • универсальность — обеспечение единого протокола для разных моделей и сред выполнения;
  • расширяемость — возможность добавления новых типов источников данных и инструментов;
  • прозрачность — открытая спецификация и свободные реализации.

Архитектура MCP

MCP использует клиент-серверную архитектуру, где хостом является ИИ-приложение, которое устанавливает связи с одним или несколькими MCP-серверами, создавая одного клиента для каждого сервера и поддерживая с ним выделенное соединение.

>Схема работы дуговой плавильной печи

Архитектура MCP

Ключевыми участниками архитектуры MCP являются:

  • MCP Host — это ИИ-приложение, координирующее работу одного или нескольких MCP-клиентов и являющееся основным интерфейсом для взаимодействия пользователей с протоколом. Примерами хостов могут быть Claude Desktop и Claude Code, VSCode, IDE и ИИ-инструменты, которые должны получать доступ к контекстным данным через MCP;
  • MCP Client — компонент, поддерживающий соединение с MCP-сервером и получающий от него все необходимое для пользования хостом MCP;
  • MCP Server — программа, предоставляющая контекст клиентам MCP.

MCP-сервер предоставляет данные контекста независимо от места, где он выполняется (локально или удаленно).

Структурно MCP состоит из двух уровней (слоев):

  • уровень данных — определяет протокол на основе JSON-RPC для взаимодействия клиента и сервера, включая управление жизненным циклом соединения и основные примитивы, такие как инструменты, ресурсы, подсказки и уведомления;
  • транспортный уровень — обеспечивает механизмы и каналы связи для обмена данными между клиентами и серверами, включая установление соединения, специфичное для данного транспортного уровня, формирование сообщений и авторизацию.

Концептуально уровень данных — является внутренним, а транспортный — внешним. Рассмотрим их более подробно.

Уровень данных реализует протокол обмена данными на основе JSON-RPC 2.0, который определяет структуру и семантику сообщений. Этот слой включает:

  • управление жизненным циклом соединения — инициализацию соединения между клиентами и серверами, обеспечение их совместной работы и завершения сеанса;
  • функционал сервера — позволяет серверам предоставлять основные функции, включая инструменты для выполнения действий, ресурсы для контекстных данных и подсказки для шаблонов взаимодействия «от клиента» и «к клиенту»;
  • функционал клиента — позволяет серверам запрашивать у клиента выборку данных от хоста, получать запросы пользователя и отправлять сообщения клиенту в журнал;
  • вспомогательные функции — поддержка дополнительных возможностей, таких как уведомления в реальном времени, отслеживание хода выполнения длительных операций и т.д.

Таким образом, транспортный уровень отвечает за управление каналами связи между клиентами и серверами, а также за аутентификацию. Он осуществляет установление соединения, формирование сообщений и безопасную связь между участниками MCP-сессии.

MCP поддерживает два механизма обмена данными:

  • транспорт стандартного ввода/вывода — использует стандартные потоки ввода/вывода для прямой связи между локальными процессами на одной машине, обеспечивая оптимальную производительность без сетевых накладных расходов.
  • потоковая передача HTTP-сообщений — использует HTTP POST для отправки сообщений от клиента к серверу с возможностью потоковой передачи через Server-Sent Events. Этот способ передачи обеспечивает удаленную связь с сервером и поддерживает стандартные методы аутентификации HTTP, включая токены, ключи API и пользовательские заголовки. MCP рекомендует использовать OAuth для получения токенов аутентификации.

Протокол уровня данных является ключевым элементом MCP и отвечает за определение схемы и семантики взаимодействия между клиентами и серверами. С точки зрения разработчика, наиболее интересной частью MCP является именно уровень данных, в частности, набор примитивов. Именно эта часть определяет способы обмена контекстом между серверами и клиентами.

MCP использует JSON-RPC 2.0 в качестве базового протокола RPC. Клиент и серверы отправляют друг другу запросы и отвечают соответствующим образом. Когда ответ не требуется, могут использоваться уведомления.

MCP поддерживает уведомления в реальном времени, что позволяет осуществлять динамические обновления между серверами и клиентами. Например, когда изменяются доступные инструменты сервера вследствие появления новой функциональности или модификации существующей, он может отправлять уведомления об обновлениях, чтобы информировать подключенных клиентов об этих изменениях. Уведомления отправляются в виде сообщений JSON-RPC 2.0 (без ожидания ответа) и позволяют серверам MCP предоставлять обновления подключенным клиентам в реальном времени.

Серверы MCP

Сервер MCP — это программа, которая предоставляет ИИ-приложениям доступ к контексту и определенным возможностям через стандартизированные протокольные интерфейсы. В качестве примеров можно привести файловые серверы для доступа к документам, серверы для запросов к базам данных, сервер Loginom для интеллектуального анализа данных, серверы GitHub для разработки кода и т.д.

Серверы обеспечивают функциональность посредством трех основных компонентов, называемых примитивами. Они определяют функции, которые клиент и сервер могут предоставлять друг другу: типы контекстной информации, передаваемые ИИ-приложениям, а также набор действий, которые могут быть выполнены ими.
 

>Схема работы дуговой плавильной печи

Подключения к MCP

Реальная мощь MCP проявляется, когда несколько серверов работают вместе, объединяя свои возможности через единый интерфейс.

Примитивы сервера

Серверы MCP предоставляют три основных примитива (стандартизированных интерфейса), определяющих строительные блоки для взаимодействий между клиентами, хостами и языковыми моделями. Эти примитивы задают типы контекстной информации и действий, доступных через протокол. MCP определяет три основных примитива, которые могут быть предоставлены серверами:

  • инструменты (tools) — исполняемые модули, которые ИИ-приложение может вызывать и принимать решение об их применении на основе запросов пользователей. Они могут записывать данные в СУБД, вызывать внешние API, редактировать файлы и т.д.;
  • ресурсы (resources) — пассивные источники данных, предоставляющие доступ только для чтения к информации о контексте;
  • подсказки (prompts) — предварительно описанные шаблоны инструкций, которые указывают модели, как работать с конкретными инструментами и ресурсами.

Каждый примитив имеет связанные с ним методы для обнаружения (.../list), извлечения (.../get) и, в некоторых случаях, выполнения (tools/call). Клиенты MCP будут использовать эти методы для обнаружения доступных примитивов. Например, клиент может сначала вывести список всех доступных инструментов (tools/list), а затем выполнить их. Такая конструкция позволяет динамически формировать списки примитивов.

MCP также определяет примитивы, которые могут быть доступны клиентам. Они позволяют разработчикам серверов MCP создавать более сложные интерактивные интерфейсы. Помимо серверных и клиентских примитивов, протокол предлагает различные общие вспомогательные примитивы, которые расширяют возможности выполнения запросов. Более подробно основные примитивы будут рассмотрены ниже.

Инструменты (tools) представляют собой исполняемые модули, которые позволяют моделям ИИ выполнять те или иные действия. Каждый инструмент определяет конкретную операцию с типизированными входными и выходными данными. Модель запрашивает выполнение инструмента в зависимости от контекста. MCP Host может запрашивать согласие пользователя перед выполнением инструментов, что помогает гарантировать сохранение контроля над работой ИИ-приложения.

Несмотря на то, что инструменты могут самостоятельно обнаруживаться и запускаться ИИ-приложениями, MCP тем не менее ориентирован на человеческий контроль посредством нескольких механизмов:

  • отображение доступных инструментов в пользовательском интерфейсе, позволяющее определять, должен ли тот или иной инструмент быть доступен в конкретных взаимодействиях;
  • использование диалогов подтверждения для выполнения отдельных инструментов;
  • настройка разрешений для предварительного одобрения определенных операций;
  • формирование журналов активности, в которых фиксируются все вызовы инструментов с указанием результатов их работы.

Ресурсами (resources) являются источники данных, предоставляющие контекстную информацию для ИИ-приложений.

Каждый ресурс имеет уникальный URL (например, file:///path/to/document.md) и указывает свой MIME-тип для соответствующей обработки содержимого. Ресурсы ориентированы на конкретное приложение, что обеспечивает им гибкость в способах получения, обработки и представления доступного контекста.

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

  • древовидные или списочные представления для просмотра ресурсов в привычных папочных структурах;
  • интерфейсы поиска и фильтрации для нахождения конкретных ресурсов;
  • автоматическое включение контекста или интеллектуальные подсказки на основе эвристических методов или выбора с помощью ИИ;
  • интерфейсы ручного или автоматического выбора для подключения одного или нескольких ресурсов.

Приложения могут реализовать поиск ресурсов с помощью любого совместимого интерфейса. Протокол не предписывает использование конкретных шаблонов пользовательского интерфейса, что позволяет создавать средства выбора ресурсов с возможностью предварительного просмотра, интеллектуальных подсказок на основе текущего контекста, множественного выбора нескольких ресурсов, а также интегрирования с имеющимися файловыми браузерами и средствами просмотра данных.

Подсказки (prompts) — шаблоны типовых взаимодействий, которые клиент может запускать от имени пользователя.

Они могут включать структуру запроса, инструкции по обработке данных, а также рекомендации по выбору подходящих источников контекста. Подсказки позволяют стандартизировать сценарии работы с ИИ, с одной стороны, снижая зависимость от формулировок пользователя, с другой — облегчая написание запроса.

Клиенты MCP

Клиенты MCP создаются хост-приложениями для связи с конкретными серверами MCP. Хост-приложение, например Claude.ai или IDE, управляет общим пользовательским интерфейсом и координирует работу нескольких клиентов, каждый из которых осуществляет одно прямое взаимодействие с единственным сервером.

Таким образом, хост — это приложение, с которым взаимодействуют пользователи, а клиенты — это компоненты протокола, обеспечивающие подключение к серверу.

>Схема работы дуговой плавильной печи

Хост MCP

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

Элицитация (elicitation) — механизм протокола MCP, который позволяет серверу запрашивать дополнительные данные у пользователя во время сеанса. Он позволяет клиентам сохранять контроль над взаимодействием с пользователями и обменом данными, в то время как серверы могут динамически собирать необходимую информацию.

Элицитация предоставляет серверам более гибкий способ сбора необходимой контекстной информации: вместо того чтобы запрашивать всю информацию заранее или выдавать ошибку при ее отсутствии, серверы могут приостанавливать свою работу, чтобы запросить у пользователей конкретные уточнения. Это создает взаимодействие, при котором серверы адаптируются к потребностям пользователей, а не следуют жестким шаблонам.

Данный алгоритм обеспечивает динамический сбор информации. Серверы могут запрашивать конкретные данные по мере необходимости, пользователи предоставляют информацию через соответствующий пользовательский интерфейс, а серверы продолжают обработку с учетом полученного контекста.

Корневые каталоги (roots) — это механизм, определяющий границы, в которых могут работать MCP‑серверы. Обеспечивает стандартизированный способ для клиентов предоставлять серверам доступ к «корневым» папкам файловой системы, которые определяют границы, в которых серверы могут работать внутри нее, позволяя им «понимать», к каким каталогам и файлам они имеют доступ. Серверы могут запрашивать список корневых папок у поддерживающих их клиентов и получать уведомления об изменении этого списка.

Корневые ресурсы в MCP обычно доступны через интерфейсы конфигурации рабочего пространства или проекта. Например, в решениях может быть предусмотрен инструмент выбора рабочей области/проекта, позволяющий пользователям выбирать каталоги и файлы, к которым сервер должен иметь доступ.

По сути, «корни» — это URI, которые клиент предлагает серверу использовать в качестве основной области работы. При подключении клиента к серверу передаются «корни», и сервер должен ориентироваться на них при выполнении операций, например, file:///home/user/projects/frontend. MCP‑спецификация не обязывает сервер строго соблюдать границы корней, а конкретное решение зависит от реализации сервера.

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

Семплинг (sampling) — протокольный механизм, посредством которого серверы MCP могут запрашивать через клиента у ИИ-приложения (например, у LLM) определенную генерацию (дополнение). При этом инструмент сервера определяет необходимость использования LLM (например, для анализа или генерации текста).

После этого сервер отправляет запрос клиенту через механизм семплинга, который получает его, и вызывает свою LLM для генерации дополнения. Клиент возвращает сгенерированный результат серверу и инструмент продолжает работу, используя контент, сгенерированный LLM, как если бы сервер создал его сам.

Применение механизма семплинга позволяет серверу обрабатывать больше одновременных запросов, поскольку избавляет его от траты времени на генерацию больших фрагментов текста. Кроме этого, семплинг дает возможность пользователю просматривать и одобрять как запрос перед отправкой его ИИ-приложению, так и сгенерированное дополнение перед возвращением его серверу.

Семплинг особенно полезен при необходимости генерировать креативный контент (резюме, переводы), принимать решения, обрабатывать неструктурированные данные и т.д.

Преимущества использования MCP

Применение MCP для сбора и использования контекстной информации в ИИ-приложениях обеспечивает следующие преимущества.

  • унификацию взаимодействия между различными моделями ИИ и внешними системами, что решает проблему фрагментации в масштабных ИИ-проектах;
  • снижение избыточности путем сокращения повторяющихся этапов разработки и повышение качества инструментов ИИ за счет стандартизации;
  • расширение возможностей ИИ посредством обеспечения доступа к актуальной информации из внешних источников, что позволяет ему работать в соответствии с реалиями окружающего мира, а не только генерировать контент на основе внутреннего содержания;
  • упрощение интеграции при подключении различных источников данных и инструментов к ИИ-моделям.

Однако, основное преимущество MCP заключается в его открытости и стандартизации. В отличие от проприетарных решений, он предоставляет универсальный протокол, который может использоваться разными разработчиками и компаниями, создавая более совместимую экосистему ИИ. Это позволяет избежать «зацикливания» на единственном поставщике решений и дает разработчикам больше гибкости при создании ИИ-приложений.

Области применения MCP

Организация и эффективное управление процессом доставки контекстной информации ИИ-приложениям с использованием MCP особенно полезны для аналитиков, которым нужно оперативно получать инсайты из больших объемов данных. Рассмотрим как это работает в различных областях бизнеса.

В бизнес-аналитике c помощью MCP могут решаться задачи поддержания аналитических моделей ИИ в работоспособном состоянии, предотвращая их коллапс и деградацию. Для этого модель через экосистему MCP подключается к соответствующим источникам данных и «заправляется» из них актуальными данными, на которых происходит ее дообучение.

Например, ИИ-модель сегментации клиентов постоянно устаревает из-за изменений возраста, дохода, потребительского поведения, экономических и демографических факторов. Использование MCP для «подпитки» таких моделей свежей информацией из внутренних источников данных компании (CRM, данные о продажах) и бизнес-окружения (статистические, экономические показатели).

В модели кредитного скоринга целесообразно актуализировать контекстную информацию о заемщиках и внешних финансовых показателях (ставка рефинансирования, курсы валют и т.д.). В моделях онлайн-страхования полезно собирать контекстные данные о стоимости объектов страхования (недвижимость, автомобили, водный транспорт), количестве и объеме выплат по аналогичным объектам и т.д.

Особенно полезным MCP может быть в динамическом ценообразовании, где ИИ-модель, назначающая скидку для определенного клиента, должна автоматически запрашивать его историю продаж, социальные и демографические параметры из CRM, сведения из базы данных товаров.

В персонализированном маркетинге c помощью MCP могут создаваться ИИ-агенты, формирующие персонализированные коммуникации с клиентами, используя данные из CRM-систем и других источников, отражающих клиентское поведение. Это значительно повышает эффективность маркетинговых кампаний за счет точного таргетирования.

Системы клиентской поддержки могут использовать MCP для формирования и отправки автоматизированных голосовых сообщений, обеспечивая более естественное взаимодействие с клиентами. Это улучшает клиентский опыт и снижает нагрузку на операторов.

Инструменты разработки и IDE MCP интегрируются в среды разработки, такие как, например GitHub, предоставляя разработчикам контекстно-зависимые предложения кода и документации напрямую из различных источников. Это значительно ускоряет процесс разработки и повышает качество кода.

Серверы MCP повышают эффективность управления интернетом вещей, позволяя ИИ-моделям взаимодействовать с его физическими устройствами через стандартизированный интерфейс. Это упрощает создание различных IoT-приложений.

Применение MCP в многоагентных системах позволяет создавать сложные рабочие процессы, в которых несколько ИИ-агентов координируют свои действия через стандартизированный протокол для решения сложных задач.

Таким образом, MCP можно рассматривать как важный шаг в развитии экосистем ИИ, новейший, фундаментальный стандарт, который превращает большие языковые модели из изолированных источников знаний в активных участников рабочих процессов. Предоставляя стандартизированный способ их взаимодействия с внешним окружением, он позволяет разработчикам создавать более мощные и функциональные ИИ-приложения с меньшими затратами, а пользователи получают ИИ-модели, способные решать сложные задачи не только на основе собственных данных, но и за счет использования полученной контекстной информации.

Другие материалы по теме:

MCP-server Loginom: от «умных» ответов ИИ к реальным решениям

5 способов использования ИИ в работе с данными

#LLM

Смотрите также

Подписывайтесь на телеграмм-канал Loginom
Новости, материалы по аналитике, кейсы применения, активное сообщество
Подписаться