База знаний
MCP (Model Context Protocol) — стандарт подключения ИИ к внешним системам
Справочник по Model Context Protocol: архитектура, примитивы, транспорты, популярные серверы и клиенты, примеры использования и ссылки на спецификацию.
MCP (Model Context Protocol) — открытый стандарт, разработанный Anthropic, который определяет единый способ подключения ИИ-приложений к внешним системам: базам данных, файлам, API, инструментам и рабочим процессам.
Зачем нужен MCP
Без MCP каждое подключение ИИ-приложения к внешнему сервису требует собственной реализации: свой формат запросов, своя авторизация, своя логика обработки ошибок. При масштабировании это превращается в комбинаторный взрыв — N приложений × M сервисов = N×M интеграций.
MCP решает эту проблему стандартизацией: один протокол на стороне клиента, один — на стороне сервера. Любой MCP-клиент может работать с любым MCP-сервером без дополнительного кода.
Архитектура
MCP построен на клиент-серверной модели с тремя ключевыми участниками:
| Участник | Роль | Пример |
| MCP Host | ИИ-приложение, которое координирует работу одного или нескольких MCP-клиентов | Claude Desktop, VS Code, Cursor, ChatGPT |
| MCP Client | Компонент внутри хоста, который поддерживает соединение с конкретным MCP-сервером | Встроенный клиент в Claude Code |
| MCP Server | Программа, которая предоставляет контекст, инструменты или данные через протокол MCP | Notion MCP Server, файловый сервер, Sentry MCP |
Один хост может одновременно подключаться к нескольким серверам. Для каждого сервера хост создаёт отдельный экземпляр клиента с выделенным соединением.
Два уровня протокола
MCP состоит из двух слоёв:
Data Layer (уровень данных)
Определяет формат сообщений на основе JSON-RPC 2.0:
method, params и id. MCP использует его как базовый формат, добавляя свои типы сообщений поверх.- Lifecycle management — инициализация соединения, согласование возможностей (capabilities), завершение сессии
- Примитивы сервера — tools, resources, prompts (подробнее ниже)
- Примитивы клиента — sampling (запрос к LLM хоста), elicitation (запрос ввода от пользователя), logging
- Уведомления — real-time нотификации об изменениях (например, обновление списка доступных инструментов)
Transport Layer (транспортный уровень)
Отвечает за доставку сообщений между клиентом и сервером. Поддерживаются два механизма:
| Транспорт | Как работает | Когда использовать |
| STDIO | Обмен через stdin/stdout локального процесса | Локальные серверы на той же машине (минимальная задержка, без сетевых накладных) |
| Streamable HTTP | HTTP POST для запросов + Server-Sent Events для стриминга | Удалённые серверы, облачные сервисы, сценарии с авторизацией (OAuth, API-ключи) |
Примитивы MCP
Примитивы — ядро протокола. Они определяют, какие типы контекста сервер может предоставить клиенту.
Tools (инструменты)
Исполняемые функции, которые ИИ может вызывать для выполнения действий: запросы к API, операции с файлами, работа с базами данных.
Пример: MCP-сервер базы данных предоставляет инструмент query_database, который принимает SQL-запрос и возвращает результат.
Resources (ресурсы)
Источники данных, которые дают ИИ контекстную информацию: содержимое файлов, записи из баз, ответы API.
Пример: тот же сервер базы данных предоставляет ресурс со схемой таблиц, чтобы ИИ знал, какие поля доступны.
Prompts (шаблоны)
Многоразовые шаблоны для взаимодействия с языковыми моделями: системные промпты, few-shot примеры, инструкции.
Пример: сервер предоставляет промпт с примерами SQL-запросов, чтобы ИИ точнее формулировал обращения к инструменту.
Жизненный цикл соединения
Соединение между клиентом и сервером проходит три фазы:
- Инициализация — клиент отправляет
initializeс указанием версии протокола и своих capabilities. Сервер отвечает своими capabilities. Это рукопожатие определяет, какие примитивы доступны. - Работа — клиент обнаруживает доступные инструменты (
tools/list), ресурсы (resources/list) и промпты (prompts/list), а затем вызывает их по мере необходимости (tools/call,resources/read). Сервер может отправлять уведомления об изменениях. - Завершение — закрытие соединения.
Популярные MCP-клиенты
MCP поддерживается широким спектром ИИ-приложений:
- Claude Desktop и Claude Code — нативная поддержка от Anthropic
- ChatGPT — поддержка MCP от OpenAI
- Cursor — AI-редактор кода с поддержкой MCP-серверов
- VS Code (GitHub Copilot) — поддержка MCP через расширения
- Windsurf — AI IDE с MCP
- Zed — редактор с поддержкой MCP через slash-команды
Полный список клиентов: modelcontextprotocol.io/clients
Популярные MCP-серверы
МCP-серверы дают ИИ доступ к конкретным сервисам и данным:
- Notion MCP — чтение и запись страниц, баз данных, записей встреч в Notion
- n8n MCP Server — запуск и создание автоматизаций n8n прямо из ИИ-агента
- OpenClaw — мультиплатформенный AI-агент, работающий как MCP-сервер для подключения к 50+ сервисам
- Файловая система — локальный доступ к файлам через STDIO
- GitHub — работа с репозиториями, issues, pull requests
- Sentry — доступ к данным об ошибках и мониторингу
- Базы данных (PostgreSQL, SQLite и др.) — выполнение запросов и получение схем
Антропик поддерживает открытый реестр референсных серверов на GitHub.
SDK и инструменты разработки
Для создания собственных MCP-серверов и клиентов доступны SDK:
- TypeScript SDK — основной SDK, на котором построена референсная реализация
- Python SDK — для Python-разработчиков
- MCP Inspector — инструмент для отладки и тестирования MCP-серверов
Все SDK реализуют полный цикл протокола: инициализацию, обнаружение примитивов, вызов инструментов и обработку уведомлений.
Практические сценарии
| Ситуация | Настройка | Результат |
| Нужен ассистент, который видит задачи, расписание и документы | Claude Desktop + MCP-серверы Notion, Google Calendar, файловая система | ИИ отвечает с учётом ваших реальных данных — задач, встреч, файлов |
| ИИ пишет код, но не знает структуру проекта и актуальные баги | Cursor / VS Code + MCP-серверы GitHub, Sentry, PostgreSQL | ИИ видит репозиторий, ошибки и схему БД — генерирует код с учётом контекста |
| Нужно автоматизировать рутину: письма, CRM, отчёты | ИИ-агент + n8n MCP Server | Агент запускает готовые workflow по команде — без ручного переключения между сервисами |
| Бот должен работать в Telegram, Discord и Slack одновременно | ИИ-агент + OpenClaw MCP Server | Один агент обслуживает 50+ платформ через единый MCP-интерфейс |
Ограничения
- Нет встроенной авторизации. MCP не определяет стандарт аутентификации — каждый сервер реализует её по-своему (OAuth, API-ключи, токены). Anthropic работает над спецификацией OAuth 2.1 для MCP.
- Безопасность зависит от сервера. MCP-сервер получает доступ к данным и инструментам, но уровень изоляции определяет разработчик сервера, а не протокол.
- Нет единого реестра. Официального каталога MCP-серверов с верификацией нет — используйте серверы из проверенных источников.
- Производительность. STDIO-транспорт быстрый, но работает только локально. Streamable HTTP добавляет сетевые задержки и требует управления соединениями.
- Экосистема в развитии. Протокол активно меняется — SDK и серверы могут отставать от актуальной спецификации.
Быстрый старт
Самый быстрый способ попробовать MCP — подключить готовый сервер к Claude Desktop.
1. Установите Claude Desktop
Скачайте с claude.ai/download и войдите в аккаунт.
2. Добавьте MCP-сервер файловой системы
Откройте настройки Claude Desktop → Developer → Edit Config и добавьте:
{
"mcpServers": {
"filesystem": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-filesystem", "/Users/your-name/Documents"]
}
}
}3. Перезапустите Claude Desktop
После перезапуска в интерфейсе появится иконка 🔌 — это список подключённых MCP-серверов. Теперь Claude может читать и анализировать файлы из указанной папки.
Ссылки
- Официальная спецификация MCP — актуальная версия протокола
- Документация MCP — руководство по началу работы
- Архитектура MCP — подробное описание архитектуры
- Реестр MCP-серверов — открытый список референсных серверов
- Список MCP-клиентов — приложения с поддержкой MCP
- Анонс Anthropic — оригинальный анонс протокола