← MCP in Practice: Building Model Context Protocol Servers
01 / 07 · 35 min

Why MCP Exists: the N×M Integration Problem

Why every pair of AI app and data source used to need its own connector, and how MCP turns N×M integrations into N+M.

Lesson content is currently available in Russian.

What you will learn

  • →Формулировать проблему N×M и показывать, что именно сокращает стандарт.
  • →Различать роли host, MCP-клиента и MCP-сервера.
  • →Определять, когда MCP оправдан, а когда достаточно прямого function calling.

Проблема N×M: интеграционный взрыв

К 2024 году сложилась парадоксальная ситуация. Модели научились вызывать функции, но каждое AI-приложение подключалось к каждому источнику данных собственным кодом. Claude Desktop писал свой коннектор к GitHub, свой — к Postgres, свой — к Slack. Cursor писал те же коннекторы заново, под свой формат. Внутренний ассистент вашей компании — в третий раз. При N приложений и M систем получается N×M интеграций, и каждая живёт со своим форматом описания инструментов, своей аутентификацией, своей обработкой ошибок и своим циклом поддержки. Стоило GitHub поменять API — чинить приходилось всем и каждому.

Корень проблемы в том, что function calling у провайдеров — это только формат описания функции для модели. Он ничего не говорит о том, как приложение находит инструменты, кто их исполняет, где живут секреты и как доставляются данные. Вся эта обвязка каждый раз изобреталась заново.

MCP (Model Context Protocol), открытый Anthropic в ноябре 2024 года, решает задачу так же, как LSP когда-то решил проблему «каждый редактор × каждый язык программирования»: вводится один стандартный протокол между приложением и провайдером возможностей. Автор источника данных пишет один MCP-сервер — и он работает в Claude, Cursor, VS Code, Zed и любом другом совместимом клиенте. Автор приложения пишет один MCP-клиент — и получает всю экосистему серверов. N×M превращается в N+M.

Архитектура: host, клиент, сервер

В терминологии MCP участвуют три роли, и путать их нельзя.

Host — приложение, с которым разговаривает пользователь: Claude Desktop, Claude Code, Cursor, VS Code. Host управляет моделью, интерфейсом и — критично — согласием пользователя на действия.

MCP-клиент — компонент внутри host, который держит соединение с одним сервером. Соотношение строго 1:1 — на каждый подключённый сервер host создаёт отдельный клиент с собственной сессией.

MCP-сервер — процесс (локальный или удалённый), который предоставляет возможности: инструменты, ресурсы, промпты.

Host (Claude Code)
 ├── MCP-клиент ──► сервер GitHub    (tools: create_pr, search_issues)
 ├── MCP-клиент ──► сервер Postgres  (tools: query; resources: schema)
 └── MCP-клиент ──► сервер вашего продукта

Такое разделение даёт важные гарантии. Сервер не видит переписку пользователя с моделью — он получает только конкретные вызовы своих методов. Сервер не видит другие серверы — изоляция по умолчанию. Host остаётся единственной точкой, где принимаются решения: какие инструменты показать модели, спросить ли подтверждение перед разрушительным действием, какие результаты вернуть в контекст. Вы как автор сервера проектируете «розетку», а не «электростанцию»: определяете контракт возможностей, а оркестрацией занимается host.

Что даёт стандарт: экосистема и переносимость

Стандарт ценен экосистемой. В официальном репозитории modelcontextprotocol/servers лежат эталонные серверы — filesystem, git, fetch, memory, time — плюс сотни community-серверов: от Stripe и Sentry до внутренних CRM. Любой из них подключается к любому совместимому клиенту строчкой конфигурации. Написав сервер для API своего продукта один раз, вы мгновенно получаете присутствие во всех AI-инструментах, которые поддерживают MCP, — это дистрибуция, а не просто интеграция.

Протокол версионируется датами: 2024-11-05 — первая стабильная ревизия, 2025-03-26 добавила транспорт Streamable HTTP, 2025-06-18 — авторизацию уровня resource server, elicitation и structured output. Клиент и сервер согласуют версию при рукопожатии, поэтому старые серверы продолжают работать с новыми клиентами.

Честности ради: MCP не всегда нужен. Если у вас одно приложение, один API и один провайдер модели — прямой function calling внутри вашего кода проще: меньше процессов, меньше слоёв, меньше задержек. MCP окупается, когда выполняется хотя бы одно из условий: возможностью должны пользоваться несколько приложений; вы хотите отдать интеграцию чужим приложениям (Claude, Cursor); нужна изоляция секретов от кода агента; или вы строите внутреннюю платформу, где команды публикуют возможности независимо друг от друга. В этом курсе мы пройдём весь путь: от кадров протокола до публикации собственного сервера.

Practice

Карта интеграций вашего стека

Составьте инвентарь: какие AI-приложения (Claude Code, Cursor, внутренние боты) и какие источники данных/действий (API продукта, БД, трекер задач, CI) используются у вас в команде. Посчитайте, сколько связок нужно без стандарта (N×M) и со стандартом (N+M). Выберите один источник — лучшего кандидата на первый MCP-сервер — и обоснуйте выбор.

Deliverable

Таблица N×M против N+M для вашего стека и одностраничное обоснование первого MCP-сервера: какие инструменты он даст и каким клиентам.

Checkpoint

Объясните коллеге, почему MCP сравнивают с LSP и что именно сокращается с N×M до N+M. Разложите ответ по ролям host / клиент / сервер.

  • ✓ Названы обе стороны сокращения: приложения пишут один клиент, источники — один сервер.
  • ✓ Роли host, MCP-клиента и MCP-сервера различены корректно, включая соотношение клиент:сервер = 1:1.
  • ✓ Приведён хотя бы один случай, когда MCP избыточен и достаточно прямого function calling.

Check yourself

В чём суть проблемы N×M, которую решает MCP?

01В чём суть проблемы N×M, которую решает MCP?

Что из перечисленного является host в терминологии MCP?

02Что из перечисленного является host в терминологии MCP?

Почему MCP сравнивают с LSP (Language Server Protocol)?

03Почему MCP сравнивают с LSP (Language Server Protocol)?

В каком случае MCP скорее избыточен?

04В каком случае MCP скорее избыточен?

Sources

Why MCP Exists: the N×M Integration Problem · MCP in Practice: Building Model Context Protocol Servers · VORCL