Как работает MCP: внешний разум для вашей LLM

Когда мы говорим о современных языковых моделях вроде GPT или Claude, легко забыть, что всё, что они знают — это текст, который они когда-то прочитали. А значит, всё, чего они не знают, остаётся за пределами их внимания. И вот тут появляется MCP — Model Context Protocol. Это способ «расширить сознание» модели, подключив её к живым данным, инструментам и действиям.

Эта статья отвечает на важные вопросы, которые возникают, когда ты впервые сталкиваешься с MCP:

  • Что именно он делает?
  • Чем он отличается от API?
  • Как модель узнаёт, какие инструменты есть?
  • Где лежат адреса, авторизация и прочее?
  • Можно ли через MCP совершать не только запросы, но и действия?

MCP на пальцах: таблица-пример

Для начала — суть в одной таблице:

Пример запросаКак и через что AI обращаетсяИсточник ответа или действия
“Что такое квантовая запутанность?”Внутренние знания моделиПараметры самой LLM
“Что случилось в Иране сегодня?”Вызов через веб-поиск, API или плагинИнтернет
“Сколько заказов мы сделали в марте?”Вызов sql_query через MCPВнутренняя база данных
“Найди договор, где срок подписания — июль 2023”Векторный поиск через MCP-инструмент vector_searchВаша база документов
“Построй график продаж за год”Последовательность: sql_query → plot_dataКомбинация базы и визуализатора
“Выполни расчёт по Excel-файлу”Сначала file_extract, затем code_execute через MCPExcel-файл или его копия
“Отправь СМС клиенту”Вызов инструмента send_sms с номером и текстомВнешний сервис сообщений (например, Twilio)

Что делает MCP на самом деле

С технической точки зрения, MCP — это протокол общения между LLM и внешними источниками данных или действиями. Он описывает, как модель может:

  • обратиться к SQL-базе;
  • извлечь файл;
  • вызвать API;
  • отправить сообщение;
  • выполнить код;
  • и даже скомбинировать несколько действий последовательно.

Главная идея: модель не знает, как устроен внешний мир, но умеет формировать запросы в едином формате, а MCP-сервер знает, как их обработать и что вернуть обратно.

MCP — это не просто API

Сразу возникает логичный вопрос: а чем MCP отличается от обычного API?

Ответ: уровнем абстракции.

Обычный API — это конкретная реализация с конкретной документацией.

MCP — это унифицированный способ описания и исполнения любых API. Вся магия MCP в том, что:

  1. Модель видит инструмент как «псевдофункцию» с описанием.
  2. MCP-сервер сам знает, как эту функцию реализовать.
  3. Протокол позволяет строить последовательности действий (например, “спроси в базе — потом построй график”).

А как модель знает, какие есть инструменты?

Модель не «знает» заранее. При старте сессии или при подключении плагина ей передаётся так называемый Tool Manifest — описание всех доступных инструментов. Обычно это JSON, в котором указано:

  • название инструмента (send_sms, sql_query);
  • описание;
  • параметры и их типы.

Пример:

{

  «name»: «send_sms»,

  «description»: «Sends an SMS to the specified phone number»,

  «parameters»: {

    «number»: «string»,

    «text»: «string»

  }

}

Модель читает этот список и потом сама решает, какой инструмент использовать и какие параметры подставить.

А как она узнаёт, где находится MCP-сервер?

Вот тут кроется то, чего пока не хватает в большинстве реализаций: механизма подключения MCP-серверов.

У OpenAI есть .well-known/ai-plugin.json. У Anthropic — tool-use manifest. У LangChain — ToolLoader.

У MCP должен быть публичный манифест MCP-сервера, в котором указано:

  • mcp_url — куда слать запросы;
  • auth — какая авторизация нужна (Bearer, API Key, OAuth);
  • tools_manifest_url — где взять список инструментов.

То есть подключение MCP-сервера должно выглядеть примерно так:

{

  «name»: «Internal Tools MCP»,

  «mcp_url»: «https://mcp.mycompany.com/api»,

  «auth»: {

    «type»: «bearer»,

    «token»: «sk-xyz»

  },

  «tools_manifest_url»: «https://mcp.mycompany.com/api/tools»

}

Пока нет единого глобального репозитория MCP-серверов, но такая идея витает в воздухе — и обязательно появится.

А можно ли через MCP не просто получать данные, а делать что-то?

Да. И это один из самых важных и недооценённых аспектов.

Пример — отправка СМС. Модель не знает, что такое Twilio, какие там нужны ключи, заголовки и URL. Она просто вызывает send_sms с нужными параметрами. А дальше:

  1. MCP-сервер подставляет токен.
  2. Отправляет POST-запрос на нужный адрес.
  3. Возвращает модели { «status»: «sent» }.

Модель как бы управляет миром — через интерфейс MCP.

Вывод

MCP — это мост между языковой моделью и реальным миром.

Он не заменяет API, он делает их доступными, понятными и управляемыми для моделей. MCP позволяет строить LLM-агентов, которые не просто болтают, а действуют, получают доступ к данным, комбинируют инструменты и работают в рамках заданной архитектуры.

Если раньше вы ограничивались ответами из головы модели — теперь можно подключить к ней всё, что у вас есть: от баз до внешних сервисов, от PDF до внутренних CRM. И всё это — в едином протоколе.