Запись архива

MCP: как Model Context Protocol меняет взаимодействие AI-агентов

Разбираемся, что такое Model Context Protocol от Anthropic, зачем он нужен разработчикам AI-агентов и как он упрощает интеграцию внешних инструментов и данных.

Схема работы Model Context Protocol: AI-агент подключается к MCP-серверу для доступа к данным и инструментам
Схема работы Model Context Protocol: AI-агент подключается к MCP-серверу для доступа к данным и инструментам
College of DuPage Hosts Career Fair 2016 5 | by COD Newsroom | openverse | by

В апреле 2025 года Anthropic представила Model Context Protocol (MCP) — открытый протокол, который должен стандартизировать подключение внешних инструментов и источников данных к большим языковым моделям. До MCP каждое приложение вынуждено было писать собственные «прокладки» для интеграции с API, базами данных, файловыми системами и другими сервисами. Протокол обещает стать универсальным интерфейсом, по аналогии с тем, как USB упростил подключение периферии к компьютерам.

Зачем нужен MCP

Современные AI-агенты работают эффективно, только когда могут получать актуальные данные из внешних систем и выполнять действия: читать письма, редактировать файлы, запускать запросы к базам данных, вызывать сторонние API. Без стандартного протокола разработчикам приходится для каждого нового инструмента писать отдельный адаптер, поддерживать его и обрабатывать разнородные форматы ошибок. MCP определяет единый контракт: сервер предоставляет ресурсы (данные) и инструменты (действия), а клиент (агент или модель) запрашивает их через JSON-RPC.

Протокол состоит из нескольких ключевых компонентов:

  • MCP-сервер — легковесный процесс, который предоставляет доступ к одному или нескольким ресурсам/инструментам. Например, сервер для PostgreSQL, для Google Drive, для Slack.
  • MCP-клиент — приложение, которое инициирует подключение: AI-агент, IDE-ассистент (например, Claude Desktop) или фреймворк.
  • Транспорт — по умолчанию используется stdio (для локальных процессов) или SSE (для удалённых серверов). Поддерживается также потоковая передача.

Как это работает на практике

Сценарий: разработчик хочет дать своему агенту возможность читать почту и создавать задачи в Jira. Вместо того чтобы писать два отдельных модуля с парсингом IMAP и вызовом REST API Jira, он запускает два MCP-сервера (например, `mcp-email` и `mcp-jira`). Агент, понимающий протокол, подключается к ним через клиент, получает список доступных инструментов и вызывает их по мере необходимости.

Пример конфигурации для Claude Desktop (файл `claude_desktop_config.json`):

json
{
“mcpServers”: {
“email”: {
“command”: “python”,
“args”: [“-m”, “mcp_email_server”]
},
“jira”: {
“command”: “npx”,
“args”: [“-y”, “@atlassian/mcp-jira-server”]
}
}
}

После этого ассистент может выполнять команды вида «найди письма с пометкой срочно и создай задачу в Jira с описанием из письма».

Сравнение с альтернативами

До появления MCP разработчики использовали собственные решения или фреймворки, такие как LangChain Toolkits, OpenAI Function Calling и пользовательские плагины. В таблице ниже — основные отличия.

Параметр MCP (Anthropic) OpenAI Function Calling LangChain Toolkits
Тип Открытый протокол с серверной архитектурой Встроенный механизм модели Фреймворк с абстракциями
Зависимость от модели Нет, любой LLM, поддерживающий протокол Только модели OpenAI Любые модели, но через LangChain
Масштабирование Легко добавлять новые серверы Требуется обновлять код агента Зависит от структуры цепочек
Стандартизация Единый контракт для всех инструментов Каждый вызов функции описывается вручную Разные подходы для разных инструментов
Поддержка сообщества Растёт, Anthropic публикует SDK Полная только для OpenAI Широкая, но без единого протокола

MCP выигрывает в переносимости: один и тот же сервер можно использовать с любым клиентом, поддерживающим протокол. Например, после запуска MCP-сервера для базы данных его можно вызывать из Claude Desktop, из собственного Python-бота, из тестового скрипта — без переписывания кода.

Ограничения и оговорки

Протокол находится в активной разработке. На момент написания статьи актуальная версия — 2025-04-29 (кандидат на стабильный релиз). Основные текущие ограничения:

  • Безопасность: MCP-серверы имеют полный доступ к тем ресурсам, которые им предоставлены. Нет встроенной системы разграничения прав на уровне протокола — это ответственность разработчика сервера.
  • Совместимость: Пока не все Open Source модели поддерживают MCP напрямую. Для использования с моделями, не имеющими встроенного MCP-клиента, потребуется промежуточный слой (например, агентный фреймворк).
  • Документация: Официальные SDK существуют для Python, TypeScript и Java, но примеры для других языков единичны.

Anthropic опубликовала спецификацию и SDK на GitHub (github.com/modelcontextprotocol), а также примеры готовых серверов для популярных сервисов: GitHub, Slack, Google Drive, SQLite, PostgreSQL, Filesystem, Puppeteer.

Что стоит проверить разработчику

Если вы работаете с AI-агентами, попробуйте развернуть один из референсных серверов и подключить его к своему агенту. Это займёт от 15 минут (если вы используете готовый сервер из списка Anthropic) до нескольких часов (написание собственного сервера на Python SDK). Обратите внимание на безопасность: не запускайте MCP-серверы с доступом к критичным данным без явного ограничения области видимости.

Для новичков полезно начать с официального quickstart-репозитория — там есть пошаговая инструкция по запуску простого сервера и клиента. Следите за changelog на GitHub: протокол активно дорабатывается, и в ближайшие месяцы могут появиться важные изменения, например, поддержка авторизации и версионирования.