Системный аналитик

Курсы по REST API: учимся проектировать микросервисы, валидировать запросы и тестировать нагрузку. Паттерны, антипаттерны и боль SOAP в legacy-банках

Что такое Model Context Protocol (MCP)? Почему о нем все говорят?

MCP

Что такое MCP?

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

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

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

  1. Host (Хост)
    Это приложение на базе ИИ (например, Claude), которое обеспечивает среду для взаимодействия с инструментами и данными. Хост запускает MCP Client.
    Пример: Вы используете Claude для анализа данных. Claude выступает в роли хоста, предоставляя интерфейс для ваших запросов.
  2. MCP Client (Клиент)
    Компонент внутри ИИ-модели, отвечающий за обмен данными с MCP Server. Например, если Claude нужны данные из PostgreSQL, клиент форматирует запрос в структурированное сообщение для сервера.
    Пример: Вы просите Claude: «Покажи последние заказы». Клиент преобразует эту фразу в SQL-запрос и отправляет серверу.
  3. MCP Server (Сервер)
    Посредник между ИИ и внешними системами (базами данных, API и т.д.). Например, сервер для PostgreSQL получает запрос от Claude, выполняет его в базе и возвращает результат.
    Пример: Сервер принимает SQL-запрос от Claude, получает данные из PostgreSQL и передает их обратно в удобном для модели формате.

Основные элементы MCP

Система строится на пяти «кирпичиках» (примитивах), распределенных между клиентом и сервером:

На стороне клиента:

  • Roots — безопасный доступ к файлам.
    Пример: Claude может запросить доступ к отчету в Google Drive, используя Roots для авторизации.
  • Sampling — запросы ИИ на выполнение задач (например, генерация SQL-запроса).
    Пример: «Сгенерируй запрос к базе, чтобы найти клиентов с просроченными платежами».

На стороне сервера:

  • Prompts — инструкции для ИИ (как обрабатывать данные).
    Пример: «Всегда проверяй наличие дубликатов перед добавлением новых записей в базу».
  • Resources — объекты данных, доступные ИИ (таблицы, документы).
    Пример: Таблица «Sales_2023» в PostgreSQL, которую Claude использует для прогноза выручки.
  • Tools — функции, которые может вызывать ИИ (например, выполнение запроса).
    Пример: Инструмент «run_query», который запускает SQL-код в базе и возвращает результат.

MCP — не шина данных (ESB)

В какой то момент я запутался в понятиях, считая что MCP — это шина данных. Но это не так! MCP — это не классическая шина данных, но он выполняет часть ее функций в контексте взаимодействия ИИ с внешними системами.

Почему MCP не является шиной данных?

  1. Шина данных — это инфраструктура, MCP — протокол с логикой
    • Шина данных (например, Kafka, RabbitMQ) — это канал для передачи данных между компонентами системы без встроенной логики обработки.MCP — это протокол, который управляет запросами, преобразует их (например, в SQL), контролирует доступ к ресурсам и выполняет задачи через Tools.
    Пример:
    Если шина данных — это «труба», по которой течет вода, то MCP — это «умный кран», который фильтрует воду, регулирует напор и подключается к разным источникам.
  2. MCP включает элементы управления и безопасности
    • Шина данных не занимается авторизацией (Roots) или генерацией запросов (Sampling).
    • MCP же интегрирует логику работы ИИ: от преобразования естественного языка в структурированные команды до выполнения функций через Tools.
  3. Цель применения
    • Шина данных универсальна и используется для любых систем.
    • MCP создан специфически для ИИ-моделей, чтобы упростить их взаимодействие с внешним миром.

Что общего?

MCP частично выполняет роль «посредника», как шина данных:

  • Передача запросов: MCP Client отправляет запросы к серверам.
  • Стандартизация: Как шина, MCP обеспечивает единый интерфейс для подключения к разным системам (PostgreSQL, Slack и т.д.).

Аналогия для понимания

Представьте, что ИИ-модель (Claude) — это водитель такси, а MCP — диспетчерская служба:

  • Шина данных — это «радиоканал», по которому водитель связывается с диспетчером.
  • MCP — это вся диспетчерская система: она не только передает запросы, но и:
    • Находит ближайших клиентов (Sampling),
    • Проверяет права водителя (Roots),
    • Дает инструкции по маршруту (Prompts),

Зачем это нужно?

MCP решает две главные проблемы:

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

Реальный сценарий:
Допустим, вы хотите, чтобы Claude подготовил отчет на основе данных из Google Таблиц и отправил его в Slack. Без MCP пришлось бы писать код для подключения к обеим платформам. С MCP достаточно настроить серверы для Google Таблиц и Slack — Claude сделает все сам через клиент.