База знаний

MCP (Model Context Protocol) — стандарт подключения ИИ к внешним системам

Справочник по Model Context Protocol: архитектура, примитивы, транспорты, популярные серверы и клиенты, примеры использования и ссылки на спецификацию.

Опубликовано

MCP (Model Context Protocol) — открытый стандарт, разработанный Anthropic, который определяет единый способ подключения ИИ-приложений к внешним системам: базам данных, файлам, API, инструментам и рабочим процессам.

💡
Аналогия. MCP — это «USB-C для ИИ». Вместо того чтобы писать отдельный коннектор для каждого сервиса, вы реализуете один протокол — и получаете совместимость сразу со всей экосистемой.

Зачем нужен 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Программа, которая предоставляет контекст, инструменты или данные через протокол MCPNotion MCP Server, файловый сервер, Sentry MCP

Один хост может одновременно подключаться к нескольким серверам. Для каждого сервера хост создаёт отдельный экземпляр клиента с выделенным соединением.

Два уровня протокола

MCP состоит из двух слоёв:

Data Layer (уровень данных)

Определяет формат сообщений на основе JSON-RPC 2.0:

💡
JSON-RPC 2.0 — лёгкий протокол удалённого вызова процедур. Каждое сообщение — JSON-объект с полями method, params и id. MCP использует его как базовый формат, добавляя свои типы сообщений поверх.
  • Lifecycle management — инициализация соединения, согласование возможностей (capabilities), завершение сессии
  • Примитивы сервера — tools, resources, prompts (подробнее ниже)
  • Примитивы клиента — sampling (запрос к LLM хоста), elicitation (запрос ввода от пользователя), logging
  • Уведомления — real-time нотификации об изменениях (например, обновление списка доступных инструментов)

Transport Layer (транспортный уровень)

Отвечает за доставку сообщений между клиентом и сервером. Поддерживаются два механизма:

ТранспортКак работаетКогда использовать
STDIOОбмен через stdin/stdout локального процессаЛокальные серверы на той же машине (минимальная задержка, без сетевых накладных)
Streamable HTTPHTTP POST для запросов + Server-Sent Events для стримингаУдалённые серверы, облачные сервисы, сценарии с авторизацией (OAuth, API-ключи)

Примитивы MCP

Примитивы — ядро протокола. Они определяют, какие типы контекста сервер может предоставить клиенту.

Tools (инструменты)

Исполняемые функции, которые ИИ может вызывать для выполнения действий: запросы к API, операции с файлами, работа с базами данных.

Пример: MCP-сервер базы данных предоставляет инструмент query_database, который принимает SQL-запрос и возвращает результат.

⚠️
Безопасность. Инструменты выполняют действия — от чтения файлов до удаления данных. Всегда проверяйте, какие разрешения запрашивает MCP-сервер, и используйте принцип минимальных привилегий.

Resources (ресурсы)

Источники данных, которые дают ИИ контекстную информацию: содержимое файлов, записи из баз, ответы API.

Пример: тот же сервер базы данных предоставляет ресурс со схемой таблиц, чтобы ИИ знал, какие поля доступны.

Prompts (шаблоны)

Многоразовые шаблоны для взаимодействия с языковыми моделями: системные промпты, few-shot примеры, инструкции.

Пример: сервер предоставляет промпт с примерами SQL-запросов, чтобы ИИ точнее формулировал обращения к инструменту.

Жизненный цикл соединения

Соединение между клиентом и сервером проходит три фазы:

  1. Инициализация — клиент отправляет initialize с указанием версии протокола и своих capabilities. Сервер отвечает своими capabilities. Это рукопожатие определяет, какие примитивы доступны.
  2. Работа — клиент обнаруживает доступные инструменты (tools/list), ресурсы (resources/list) и промпты (prompts/list), а затем вызывает их по мере необходимости (tools/call, resources/read). Сервер может отправлять уведомления об изменениях.
  3. Завершение — закрытие соединения.

Популярные 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 может читать и анализировать файлы из указанной папки.

Ссылки

По теме