Диагностика Mock-интервью
Главная · Агенты и инструменты

MCP: стандарт подключения инструментов

MCP (Model Context Protocol) — открытый стандарт, который соединяет LLM-приложения с инструментами и источниками данных: вместо N×M самодельных интеграций — N+M подключений к общему протоколу. Разбираем роли, жизненный цикл, JSON-RPC и риски чужих серверов.

Интуиция: проблема N×M

До стандарта каждое AI-приложение дружило с каждым источником данных отдельно. Чат-ассистент хочет читать файлы — пишем интеграцию. IDE-агент хочет ходить в базу — ещё одну. Появился третий продукт или четвёртый источник — и снова ручная работа: N приложений × M источников = N×M интеграций, каждая со своим форматом описаний тулов, своей авторизацией и своими багами. Количество работы растёт квадратично.

MCP (Model Context Protocol) — открытый стандарт, который Anthropic опубликовала в конце 2024 года, — решает это как USB-C решил проблему зарядок: единый разъём с обеих сторон. Приложение один раз реализует MCP-клиент, источник один раз оборачивается MCP-сервером — и любое приложение работает с любым источником. Вместо N×M интеграций — N+M подключений к общей «шине».

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

Роли в протоколе:

Сервер отдаёт клиенту три вида возможностей:

Транспорт — JSON-RPC 2.0: сообщения вида {"method": "tools/call", "params": {…}} поверх stdio (сервер запущен локально как процесс) или HTTP/SSE (сервер удалённый). Жизненный цикл соединения:

initialize → tools/list → tools/call → result

Сначала рукопожатие (initialize): клиент и сервер сверяют версии протокола и возможности. Потом обнаружение (discovery): клиент запрашивает tools/list и получает описания тулов с JSON-схемами. Дальше — рабочие вызовы tools/call и результаты. Ключевое свойство — динамическое обнаружение: подключил новый сервер — модель узнала о его тулах в рантайме, без перекомпиляции и правок кода приложения.

💡 Ключевая мысль MCP не меняет механику tool calling — он стандартизирует, откуда тулы берутся. Tool calling — «как модель просит», MCP — «как инструменты доставляются в приложение». Это разные уровни стека.

MCP или «просто tool calling»?

Самый частый вопрос: зачем MCP, если function calling уже есть в API моделей? Ответ — это разные уровни. Tool calling — механика вызова: формат, в котором модель просит выполнить действие, и цикл «вызов → исполнение → результат». MCP — стандарт доставки: откуда приложение берёт список тулов, их схемы и кто их исполняет. Без MCP разработчик хардкодит тулы в своём коде; с MCP приложение получает их от любых подключённых серверов — динамически, через tools/list. Внутри агентного цикла (agent loop) модель разницы не видит: для неё это те же описания инструментов в контексте.

Экосистема выросла быстро: тысячи открытых серверов (GitHub, Postgres, браузеры, поисковики), поддержка в SDK основных провайдеров и в популярных приложениях — от IDE до десктопных ассистентов.

Безопасность: сервер — это чужой код

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

Практика: наименьшие привилегии (доступ только к нужной папке/схеме БД), подтверждение опасных действий человеком, доверенные источники серверов и аудит того, что реально уходит по сети.

⚠️ Подводный камень «Подключу побольше MCP-серверов — агент станет умнее» не работает: десятки тулов с похожими описаниями засоряют контекст, модель путает инструменты, а каждый лишний сервер расширяет поверхность атаки. Подключай минимум, который нужен задаче.
🎤 На собеседовании
  • «Зачем MCP, если есть function calling?» — главный вопрос. Ответ: разные уровни — function calling описывает, как модель просит вызвать тул, MCP — откуда тулы берутся и как доставляются в приложение.
  • «Какую проблему решает MCP количественно?» — N приложений × M источников = N×M интеграций превращаются в N+M подключений к стандарту.
  • «Какие риски у стороннего MCP-сервера?» — чужой код с полномочиями: supply chain, prompt injection через результаты тулов, избыточные права. Лечится наименьшими привилегиями и подтверждением опасных действий.
  • «Что отдаёт MCP-сервер кроме тулов?» — resources (данные для контекста, читает приложение) и prompts (готовые шаблоны).