
Разработчики AI-агентов быстро упираются в одну и ту же проблему: каждый сервис, база данных или API требует собственного способа интеграции с языковой моделью. Anthropic предложил решение — Model Context Protocol (MCP). Этот открытый протокол превращает подключение внешних инструментов в стандартизованный процесс, похожий на то, как USB упростил подключение периферии.
Что такое MCP
Model Context Protocol — это протокол прикладного уровня, построенный на JSON-RPC. Он определяет единый способ, которым LLM-хост (например, приложение или агент) может запрашивать контекст и выполнять действия через MCP-серверы. Протокол поддерживает три ключевые возможности:
- Ресурсы — файлы, записи баз данных, веб-страницы, которые модель может читать.
- Инструменты — функции, которые модель может вызывать (например, отправка email, поиск в CRM).
- Промпты — шаблоны подсказок, которые сервер может динамически предлагать агенту.
MCP не привязан к конкретному провайдеру LLM — он работает с любыми моделями, поддерживающими функцию вызова инструментов. На стороне хоста используется MCP-клиент, который подключается к одному или нескольким MCP-серверам.
Как MCP работает
Архитектура состоит из трёх уровней:
LLM-хост — приложение, которое запускает модель (например, Claude Desktop, собственный агент).
2. MCP-клиент — компонент внутри хоста, устанавливающий соединение с серверами.
3. MCP-сервер — отдельный процесс, предоставляющий ресурсы, инструменты и промпты через JSON-RPC.
Сервер может быть локальным (запущен на том же устройстве) или удалённым (через HTTP). Для каждого сервера хост должен знать способ подключения (например, путь к исполняемому файлу или URL). Во время сессии хост отправляет запросы `resources/list`, `tools/call` и другие. Сервер отвечает структурированными данными, которые модель интерпретирует.
Сравнение MCP с традиционными подходами
| Аспект | Традиционное function calling (OpenAI, Anthropic) | MCP (Model Context Protocol) |
|---|---|---|
| Стандартизация | Каждый провайдер определяет свой формат описания функций | Единый JSON-RPC интерфейс для всех серверов |
| Обнаружение возможностей | Разработчик вручную прописывает все инструменты в коде | Сервер сам сообщает список доступных ресурсов и инструментов |
| Повторное использование | Инструменты привязаны к конкретному приложению | Один MCP-сервер можно использовать с любым MCP-совместимым хостом |
| Обновление | Требует пересборки приложения | Сервер обновляется независимо, хост получает новый список при следующем подключении |
MCP особенно удобен, когда у агента много потенциальных инструментов, которые меняются со временем, — например, в корпоративных средах с десятками внутренних API.
Практические примеры
- Claude Desktop — первое официальное приложение, поддерживающее MCP. Пользователь может подключить сервер для работы с локальными файлами, базой данных SQLite или GitHub API. Пример: «Создай файл Readme.md на основе содержимого папки» — агент использует файловый сервер.
- Собственный агент на Python — используя библиотеку `mcp` (официальный SDK), можно запустить MCP-сервер, который предоставляет доступ к внутренней CRM. Агент через хост отправляет запрос `tools/call` с параметрами, сервер выполняет запрос в CRM и возвращает результат.
- Интеграция с CI/CD — MCP-сервер может быть триггером для деплоя: агент получает задачу «выкатить тестовую версию на staging» и вызывает инструмент сервера, который запускает пайплайн.
Преимущества и ограничения
Плюсы
– Упрощает архитектуру — вместо написания адаптеров для каждой модели используется один протокол.
– Открытость — спецификация и SDK на GitHub, любой может создать свой сервер.
– Безопасность — хост контролирует, какие серверы подключать, и может ограничивать права инструментов.
Минусы
– Протокол всё ещё развивается (версия 0.1 на момент написания), возможны несовместимые изменения.
– MCP требует запуска отдельных серверов — это дополнительная инфраструктура.
– Не все LLM поддерживают гибкие вызовы инструментов, нужные для работы с произвольными JSON-RPC схемами.
Как начать
Установите Claude Desktop или используйте официальный SDK для Python/Node.js.
Найдите готовые серверы на GitHub (репозиторий `modelcontextprotocol/servers` содержит файловый, SQLite, Git и другие).
3. Запустите сервер локально, укажите его путь в настройках хоста.
4. Попробуйте простой запрос, например «покажи список файлов в текущей папке» — агент должен вызвать соответствующий инструмент.
Для самостоятельной разработки сервера изучите спецификацию на modelcontextprotocol.io и примеры в репозитории. Протокол использует обычные stdin/stdout или HTTP — порог входа низкий, если вы знакомы с JSON-RPC.
Что ещё стоит проверить
Прежде чем внедрять MCP в продуктивную среду, обратите внимание на несколько моментов:
- В официальной документации уточните, поддерживает ли ваш LLM-хост протокол (на данный момент только Claude Desktop имеет полную поддержку).
- Для серверов, открывающих доступ к реальным данным, обязательно настройте ограничения прав — MCP не добавляет собственной аутентификации.
- Следите за обновлениями репозитория — протокол может менять формат сообщений, и ваши серверы придётся обновлять.
MCP — это шаг к унификации взаимодействия LLM с внешним миром. Если вы строите сложных агентов, этот протокол стоит хотя бы протестировать на одном из ваших сценариев.