MCP — протокол взаимодействия ИИ-агентов с инструментами¶
MCP (Model Context Protocol) — это открытый протокол, разработанный компанией Anthropic и представленный в ноябре 2024 года, предназначенный для стандартизации способа подключения языковых моделей и ИИ-агентов к внешним источникам данных, инструментам и системам. Протокол описывает единый интерфейс, через который LLM может запрашивать контекст, вызывать функции и управлять ресурсами без необходимости написания индивидуальных интеграций для каждого сервиса.
¶Идея и назначение
До появления MCP интеграция языковых моделей с внешними системами выполнялась индивидуально: для каждой пары «модель — сервис» разрабатывался собственный адаптер. При N моделях и M сервисах требовалось порядка N×M интеграций. MCP использует подход «модели» (в отличие от «модели»): единый протокол позволяет подключать любую совместимую модель к любому совместимому серверу инструментов.
Основные задачи протокола:
- предоставление моделям доступа к актуальным данным (файлы, базы данных, API);
- вызов внешних инструментов (код, поиск, выполнение запросов);
- поддержка контекста разговора и состояния между сессиями;
- единый формат описания возможностей инструментов для LLM.
¶Архитектура
MCP построен по клиент-серверной модели. Ключевые роли:
| Роль | Описание |
|---|---|
| Хост (Host) | Приложение с ИИ (например, IDE, чат-бот), которое управляет сессией и вызывает модели |
| Клиент (Client) | Компонент хоста, устанавливающий соединение с одним MCP-сервером |
| Сервер (Server) | Процесс, предоставляющий доступ к ресурсам, инструментам и промптам |
Сервер может работать локально (например, как дочерний процесс) или подключаться удалённо. Протокол поддерживает три базовых примитива:
- Ресурсы (Resources) — данные, доступные для чтения (файлы, строки базы, содержимое API);
- Инструменты (Tools) — функции, которые модель может вызывать (запуск кода, выполнение HTTP-запроса, поиск);
- Промпты (Prompts) — переиспользуемые шаблоны взаимодействия.
¶Транспорт и формат сообщений
Обмен сообщениями между клиентом и сервером выполняется по транспортному слою. Стандартная спецификация определяет два основных транспорта:
- stdio — обмен через стандартные потоки ввода-вывода, удобен для локальных серверов;
- Streamable HTTP — HTTP-эндпоинт с поддержкой потоковой передачи (SSE), применяемый для удалённых серверов.
Формат сообщений — JSON-RPC 2.0. Каждый запрос имеет идентификатор, метод и параметры; ответ содержит результат или ошибку. Сессия инициализируется обменом информацией о возможностях (capabilities) и версии протокола.
¶Реализации и экосистема
Официальные SDK доступны для TypeScript, Python, Java, Kotlin, C#, Swift и других языков. Существуют готовые серверы для популярных систем: файловой системы, Git, баз данных PostgreSQL, Slack, Google Drive, Puppeteer и других. Сообщество поддерживает каталоги серверов, где разработчики публикуют свои реализации.
MCP поддерживают основные поставщики ИИ-инструментов: Anthropic (Claude), OpenAI (включая ChatGPT и API), Google DeepMind (Gemini), Microsoft (Copilot Studio), а также ряд IDE и агентных фреймворков. В 2025 году протокол стал фактическим стандартом для организации «агентных» интеграций.
¶Применение
MCP применяется в следующих сценариях:
- Интеграция с корпоративными данными — модели получают доступ к внутренним базам и документам через единый интерфейс;
- Агентные системы — ИИ-агенты выполняют многошаговые задачи, вызывая инструменты по протоколу;
- Разработка ПО — IDE с ИИ получают доступ к репозиториям, тестам и CI/CD через MCP-серверы;
- Автоматизация — модели управляют внешними сервисами (почта, задачи, мониторинг) в рамках разрешённых инструментов.
¶Ограничения и безопасность
MCP не решает вопросов доверия к внешним инструментам: сервер может предоставлять опасные функции (выполнение произвольного кода, запись в файлы). Спецификация рекомендует применять механизмы подтверждения действий пользователя и ограничение прав доступа, однако конкретные меры остаются на усмотрение реализации. Также отмечается риск «промпт-инъекций» через контент, предоставляемый ресурсами сервера.
¶См. также
- Языковая модель
- ИИ-агент
- Функциональные вызовы (function calling)
- JSON-RPC
¶История
Протокол был анонсирован Anthropic 25 ноября 2024 года как способ решить проблему фрагментации интеграций. В марте 2025 года спецификация была обновлена: добавлен транспорт Streamable HTTP, уточнены механизмы аутентификации. В течение 2025 года к поддержке протокола присоединились OpenAI, Google и Microsoft, что закрепило его статус отраслевого стандарта для взаимодействия ИИ с внешними инструментами.
