
В апреле 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: протокол активно дорабатывается, и в ближайшие месяцы могут появиться важные изменения, например, поддержка авторизации и версионирования.