Model Context Protocol¶
Model Context Protocol (MCP) — открытый протокол, разработанный компанией Anthropic в ноябре 2024 года для стандартизации подключения языковых моделей к внешним источникам данных и инструментам. Протокол описывает единый способ, которым клиент (обычно ассистент на базе LLM) обнаруживает возможности сервера, вызывает его инструменты, читает ресурсы и выполняет промпты. MCP построен по модели клиент-сервер и заменяет множество разрозненных интеграций, создаваемых отдельно для каждого приложения и модели.
¶История
Протокол был представлен Anthropic 25 ноября 2024 года как открытый стандарт для интеграции AI-ассистентов с внешними системами. Идея заключалась в том, чтобы вместо написания отдельных коннекторов для каждого сочетания «модель — сервис» создать один универсальный интерфейс. Вскоре поддержку MCP объявили другие разработчики AI-инструментов, включая OpenAI и Google DeepMind, что закрепило статус протокола как межплатформенного стандарта. Референсные реализации SDK опубликованы под открытыми лицензиями для TypeScript, Python, Java, Kotlin, C#, Ruby и других языков.
¶Архитектура
MCP использует клиент-серверную модель. Клиентом выступает хост — приложение с языковой моделью (например, настольный ассистент или IDE). Сервер — это отдельный процесс, предоставляющий доступ к конкретному ресурсу: файловой системе, базе данных, API внешнего сервиса. Между ними устанавливается соединение по одному из транспортов:
- stdio — обмен сообщениями через стандартные потоки ввода-вывода, когда сервер запускается как дочерний процесс;
- HTTP с Server-Sent Events — для удалённых серверов;
- Streamable HTTP — более новый транспорт, заменяющий SSE-вариант, с поддержкой потоковых ответов и сессий.
Обмен данными выполняется в формате JSON-RPC 2.0. Все сообщения делятся на запросы, ответы и уведомления.
¶Возможности сервера
Сервер MCP предоставляет клиенту три основных типа объектов:
| Объект | Назначение |
|---|---|
| Инструменты (tools) | Вызываемые функции с описанием и схемой аргументов; выполняют действия — запрос к API, запись в базу, запуск команды |
| Ресурсы (resources) | Адресуемые данные, предоставляемые модели для чтения — файлы, содержимое базы, результаты запросов |
| Промпты (prompts) | Переиспользуемые шаблоны инструкций, помогающие стандартизировать взаимодействие |
Дополнительно протокол определяет механизм сэмплов (sampling), при котором сервер может запросить у клиента генерацию текста моделью, и уведомлений об изменении списка инструментов или ресурсов.
¶Примеры серверов
Референсные серверы от Anthropic включают доступ к локальной файловой системе, к репозиториям Git, к базе данных SQLite, к поиску в интернете через Brave Search, а также к Slack и Google Drive. Сообщество создало сотни серверов для Postgres, GitHub, Puppeteer, Kubernetes и других систем. Существуют каталоги и реестры, где публикуются готовые реализации.
¶Применение
Основная область применения MCP — подключение ассистентов к корпоративным и персональным данным без написания индивидуальных интеграций. В разработке протокол используется для доступа к репозиториям, задачам в трекерах и документации. В аналитике — для запросов к базам данных и BI-системам. В России протокол также получил распространение в локальных решениях на базе открытых моделей, где MCP-серверы обеспечивают доступ к внутренним сервисам организации.
¶Критика и ограничения
К основным замечаниям относятся вопросы безопасности: сервер имеет доступ к данным и инструментам хоста, поэтому доверять следует только проверенным реализациям. Протокол также не решает проблему авторизации — механизмы доступа к внешним API остаются на стороне конкретного сервера. Отдельные специалисты отмечают раннюю стадию стандарта: спецификация активно развивается, и часть API может меняться между версиями.
¶Источники
- Официальная документация Model Context Protocol (modelcontextprotocol.io)
- Анонс MCP от Anthropic, ноябрь 2024
- Референсные серверы и SDK в репозитории modelcontextprotocol
