Перейти к содержимому

MCP: единый протокол для инструментов

MCP (Model Context Protocol) — открытый стандарт, который описывает, как подключать инструменты, ресурсы и промпты к AI-приложениям. Его часто называют «USB-C для ИИ»: вместо отдельной интеграции под каждый клиент появляется один протокол.

Стандарт появился в Anthropic, сейчас развивается под Linux Foundation / Agentic AI Foundation. Поддерживается большинством крупных клиентов — Claude, Cursor, VS Code, ChatGPT и другими.

До MCP каждая связка «агент ↔ система» писалась отдельно: свой набор функций, свой формат описания, своя авторизация. Число интеграций растёт квадратично, поддержка — тоже.

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

без MCP: N клиентов × M систем = N×M интеграций
с MCP: N клиентов + M серверов = N+M интеграций

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

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

Транспорты различаются: локальный процесс по STDIO или удалённый сервер по HTTP. Для команды это означает выбор между «инструмент живёт рядом с проектом» и «инструмент общий для нескольких проектов».

  • Права доступа. Протокол описывает, как вызвать инструмент, но не решает, кому это можно. Авторизация остаётся задачей сервера.
  • Качество инструментов. Плохо описанный инструмент с размытой схемой остаётся плохим — MCP лишь делает его переносимым.
  • Наблюдаемость. Трассировка вызовов, стоимость и ошибки — отдельный слой, см. Наблюдаемость.
  • Безопасность контура. Подключение внешнего сервера расширяет поверхность атаки так же, как любой новый API-доступ.
  • Кто владеет сервером. Публичный MCP-сервер без владельца и обновлений — это неисправляемая дыра в правах.
  • Что открыто наружу. Инструмент, доступный по HTTP, требует отдельной аутентификации; локальный STDIO-сервер наследует права пользователя.
  • Есть ли список разрешённых инструментов. Явный allowlist безопаснее, чем «всё, что опубликовано».
  • Отделены ли записи от чтения. Публикация, изменение и удаление — отдельные инструменты с отдельными правами.