• MCP
  • Протокол Контекста Модели
  • ИИ

Что такое MCP (Протокол Контекста Модели) и как он работает

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

Yijun
Yijun
Developer

Хватит тратить недели на аутентификацию пользователей
Запускайте безопасные приложения быстрее с Logto. Интегрируйте аутентификацию пользователей за считанные минуты и сосредоточьтесь на вашем основном продукте.
Начать
Product screenshot

Что такое MCP?

MCP (Протокол Контекста Модели) — это открытый универсальный протокол, который стандартизирует, как приложения предоставляют информацию о контексте для больших языковых моделей (LLM).

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

Зачем нужен MCP?

Большие языковые модели (LLM) обладают огромными возможностями, но они сталкиваются с несколькими ключевыми ограничениями:

  • Ограничения в знаниях и проблемы с обновлением: LLM знают только ту информацию, которая содержится в их обучающих данных. Например, знания GPT-4 заканчиваются в апреле 2023 года. Обучение больших языковых моделей требует огромных вычислительных ресурсов и времени, зачастую занимает шесть месяцев или больше для завершения новой версии. Это создает трудную задачу: модельное знание всегда "устаревшее", тогда как обновления чрезвычайно дороги и трудоемки. К тому времени, как новая модель завершает обучение, её знания уже начинают отставать.

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

  • Отсутствие единого стандарта для доступа к внешним данным: В настоящее время существует множество методов предоставления дополнительной информации LLM, таких как RAG (генерация, обогащенная информацией), локальные базы знаний, интернет-поиски и так далее. Различные команды разработчиков предлагают различные решения для интеграции, что приводит к высоким затратам на интеграцию между системами. Системы с данными специализированных областей (например, CRM, ERP, системы медицинских записей и так далее) сложно интегрировать с LLM без швов. Каждая интеграция требует специальной разработки, не имеющей общего, стандартизированного метода.

Вот почему нужен MCP. MCP предоставляет стандартизированный протокол, который позволяет LLM получать доступ к внешней информации и инструментам в едином формате, решая все вышеуказанные проблемы. Через MCP мы можем получить следующие ключевые преимущества:

  • Богатый набор готовых интеграций: MCP предлагает множество готовых интеграций серверов, включая файловые системы, базы данных (PostgreSQL, SQLite), инструменты разработки (Git, GitHub, GitLab), сетевые инструменты (Brave Search, Fetch), производительные инструменты (Slack, Google Maps) и многое другое. Это значит, что не нужно создавать эти интеграции с нуля. Можно просто использовать эти готовые коннекторы, чтобы LLM имели доступ к данным в этих системах.

  • Гибкое переключение между провайдерами LLM: Сегодня вы можете использовать GPT-4, завтра захотите попробовать Claude или Gemini или использовать различные LLM для различных сценариев. С MCP не потребуется переписывать всю логику интеграции приложения. Вам нужно просто изменить исходную модель, и все интеграции с данными и инструментами останутся неизменными.

  • Создание сложных AI рабочих процессов: Представьте себе систему анализа юридических документов, которая должна обращаться к нескольким базам данных, использовать специальные инструменты для сравнения документов и генерировать отчёты. MCP позволяет вам строить такие сложные агенты и рабочие процессы поверх LLM.

Как работает MCP

В MCP есть три основных роли: MCP Server (предоставляет инструменты и доступ к данным), MCP Client (встраивается в LLM и взаимодействует с MCP Server) и MCP Hosts (программы, интегрирующие LLM и Клиенты, такие как Claude Desktop, Cursor и другие). Рассмотрим эти три роли подробнее, чтобы понять, как они работают вместе.

MCP Server

MCP Server — это программа, которая предоставляет инструменты и возможности доступа к данным для использования LLM. В отличие от традиционных удалённых API-серверов, MCP Server может работать как локальное приложение на устройстве пользователя или быть развернутым на удалённом сервере.

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

MCP Client

MCP Client — это мост, соединяющий LLM и MCP Server. Встраивается в LLM, он отвечает за:

  • Получение запросов от LLM
  • Перенаправление запросов на соответствующий MCP Server
  • Возвращение результатов от MCP Server обратно в LLM

Вы можете посмотреть Разработать MCP Client, чтобы узнать больше об интеграции MCP Client с LLM.

MCP Hosts

Такие программы, как Claude Desktop, IDE (Cursor и так далее), или AI инструменты, которые хотят получить доступ к данным через MCP. Эти приложения предоставляют пользователям интерфейсы для взаимодействия с LLM, интегрируя MCP Client для подключения к MCP Server, чтобы расширять возможности LLM, используя инструменты, предоставленные MCP Server.

MCP Workflow

Три вышеупомянутые роли в конечном итоге формируют AI приложение, основанное на MCP.

Пример рабочего процесса этой системы следующий:

Как создать MCP Server

MCP Server — самая критически важная связь в системе MCP. Он определяет, какие инструменты LLM могут использовать для доступа к каким данным, напрямую влияя на функциональные границы и возможности AI приложения.

Чтобы начать построение собственного MCP Server, рекомендуется сначала прочитать официальный MCP гид по быстрому старту, который подробно описывает весь процесс от настройки окружения до реализации и использования MCP Server. Мы объясним только основные детали реализации.

Определение инструментов, предоставляемых MCP Server

Ключевой функционал MCP Server заключается в определении инструментов через метод server.tool(). Эти инструменты — это функции, которые LLM может вызывать для получения внешних данных или выполнения специфических операций. Рассмотрим упрощённый пример на Node.js:

В этом примере мы определяем инструмент, называемый search-documents, который принимает строку запроса и максимальное количество результатов как параметры. Реализация инструмента будет подключаться к системе базы знаний и возвращать результаты запроса.

LLM примет решение, использовать ли этот инструмент, на основе его определения и вопроса пользователя. Если необходимо, LLM вызовет этот инструмент, получит результаты и сгенерирует ответ, объединяя результаты с вопросом пользователя.

Лучшие практики для определения инструментов

При создании таких инструментов вы можете следовать этим лучшим практикам:

  • Чёткие описания: Предоставляйте детальные и точные описания для каждого инструмента, ясно излагая его функциональность, применимые сценарии и ограничения. Это поможет LLM выбрать правильный инструмент и повысит понимание и обслуживание кода разработчиками.
  • Проверка параметров: Используйте Zod или аналогичные библиотеки для строгой проверки входных параметров, обеспечивая правильные типы, разумные диапазоны значений и отклонение некорректных данных. Это предотвратит ошибки, передающиеся в серверную систему, и повысит общую стабильность.
  • Обработка ошибок: Реализуйте комплексные стратегии обработки ошибок, улавливайте возможные исключения и возвращайте понятные пользователю сообщения об ошибках. Это улучшает опыт пользователя и позволяет LLM предоставлять содержательные ответы на основе условий ошибок, а не просто сбоить.
  • Контроль доступа к данным: Убедитесь, что API бекэнда имеют надёжные механизмы аутентификации и авторизации, и внимательно проектируйте области разрешений, чтобы MCP Server мог доступать и возвращать только те данные, на которые пользователь имеет авторизацию. Это предотвратит утечки конфиденциальной информации и обеспечит безопасность данных.

Как обеспечить безопасность обмена данными между MCP (моделями ИИ) и внешними системами

При реализации MCP Server, которые подключают модели ИИ к внешним системам, существуют две ключевые проблемы безопасности при реализации MCP:

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

Ключевым решением этих проблем является реализация Персональных токенов доступа (PAT). PAT предлагают безопасный способ для пользователей предоставлять доступ без обмена своими учетными данными или необходимости интерактивного входа в систему.

Примерно так работает рабочий процесс:

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

Вы можете обратиться к статье в блоге: Расширьте возможности своего бизнеса: Подключите AI инструменты к существующему сервису с контролем доступа с полным примером исходного кода, чтобы узнать, как использовать Персональные токены доступа (PAT) от Logto в сочетании с Контролем доступа на основе ролей (RBAC) для ограничения ресурсов, к которым MCP может получить доступ от серверных сервисов.

Резюме

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

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