AmigaОбучение ИИ
Модуль 2 · Что такое MCP · урок 2 из 14

Что такое MCP и зачем он нужен

9 мин чтения▶ есть видеоверсия

Если вы хоть раз слышали «подключи MCP-сервер» и кивали, не понимая, о чём речь, — этот урок для вас. К концу вы будете знать, что такое MCP, какую проблему он решает, что именно делает MCP-сервер и почему разработчикам стало проще давать Claude доступ к Jira, базе данных или внутренней вики.

Проблема: модель умна, но заперта

Языковая модель вроде Claude знает очень много, но у неё нет рук. Она не видит вашу таблицу в Google Sheets, не может заглянуть в задачу в трекере и не знает, что сегодня лежит в папке проекта. Всё, что она получает, — это текст, который вы ей прислали.

Первый способ дать модели «руки» появился давно: разработчик описывает функцию («получить задачу по номеру»), модель просит её вызвать, программа выполняет вызов и возвращает результат. Это называется вызовом инструментов (tool use), и оно прекрасно работает. Но у него есть неприятное свойство: каждую связку «приложение — сервис» приходится писать заново.

Представьте, что в агентстве пять приложений с ИИ (чат для аналитиков, помощник в IDE, бот в Telegram, скрипт для отчётов, ассистент в CRM) и пять сервисов (Jira, GitLab, Confluence, база клиентов, календарь). Чтобы каждое приложение умело работать с каждым сервисом, нужно двадцать пять интеграций. Добавили шестой сервис — ещё пять. Это та же проблема, которая была с зарядками для телефонов до появления единого разъёма.

Решение: один протокол вместо N×M интеграций

MCP (Model Context Protocol, протокол контекста модели) — открытый стандарт, который описывает, как приложение с ИИ и внешний сервис договариваются друг с другом. Сервис один раз оборачивают в MCP-сервер, а приложение один раз учат быть MCP-клиентом. После этого любой клиент работает с любым сервером.

Аналогия с USB здесь самая точная. Производитель клавиатуры не знает, к какому ноутбуку её подключат, а производитель ноутбука не знает, какие устройства в него воткнут. Они оба соблюдают стандарт, и этого достаточно. MCP — такой же разъём, только для ИИ-приложений.

Стандарт открытый: его опубликовала Anthropic в конце 2024 года, а сейчас его поддерживают Claude, Claude Code, Cursor, VS Code и десятки других инструментов. Спецификация и документация живут на modelcontextprotocol.io.

Три участника: хост, клиент, сервер

В MCP всегда три роли, и их легко перепутать.

Хост — приложение, с которым работает человек: приложение Claude, Claude Code, редактор кода. Именно хост запускает модель и решает, что ей показывать.

Клиент — компонент внутри хоста, который держит соединение с одним конкретным сервером. Если к Claude Code подключены три сервера, внутри него работают три клиента. Вы почти никогда не пишете клиент сами — он уже встроен в хост.

Сервер — небольшая программа, которая знает, как обращаться с конкретным сервисом, и выставляет наружу его возможности по правилам MCP. Сервер для GitLab умеет читать merge-request'ы, сервер для базы данных — выполнять запросы, сервер для файловой системы — читать и записывать файлы.

Слово «сервер» здесь сбивает с толку. Это не обязательно что-то большое в облаке. Чаще всего MCP-сервер — это скрипт на сотню строк, который хост запускает у вас на компьютере как обычный процесс и общается с ним через стандартный ввод-вывод. Об этом подробнее в уроке «Архитектура: хост, клиент, сервер».

Что сервер отдаёт наружу

Сервер может предложить хосту три вида вещей. В MCP их называют примитивами.

  • Инструменты (tools) — действия, которые модель может вызвать: «создать задачу», «выполнить SQL-запрос», «отправить сообщение». Инструменты выбирает и вызывает сама модель, когда решает, что это нужно.
  • Ресурсы (resources) — данные, которые можно прочитать: содержимое файла, страницу документации, запись из базы. Ресурсы обычно подключает человек или хост, чтобы дать модели контекст.
  • Промпты (prompts) — готовые шаблоны запросов, которые сервер предлагает пользователю: «проанализировать логи за сегодня», «подготовить релиз-ноты». Это ускорители для типовых сценариев.

Каждому примитиву посвящён отдельный урок, а сейчас достаточно запомнить: инструменты — это «сделать», ресурсы — «прочитать», промпты — «начать типовой разговор».

Как это выглядит в жизни

Разберём типичный сценарий. Тестировщик хочет, чтобы Claude Code воспроизвёл баг из трекера. Без MCP он копирует описание задачи, логи и скриншоты в чат вручную. С MCP-сервером для трекера он пишет: «Воспроизведи баг PROJ-1432 и предложи исправление».

Дальше происходит следующее:

  1. Claude Code (хост) при запуске подключился к серверу трекера и узнал, что тот умеет: у него есть инструмент «получить задачу по ключу».
  2. Модель читает запрос, понимает, что ей нужно содержимое задачи, и просит хост вызвать этот инструмент с параметром PROJ-1432.
  3. Хост через клиент передаёт вызов серверу. Сервер ходит в API трекера, получает задачу и возвращает её текст.
  4. Модель получает описание бага, находит нужный код, воспроизводит проблему и предлагает патч.

Самое важное: пункт 2 модель делает сама. Никто не писал сценарий «сначала получи задачу, потом ищи код». Модель увидела список доступных инструментов и выбрала подходящий, как человек выбирает нужную вкладку в браузере.

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

Полезно очертить границы, чтобы не ждать от протокола лишнего.

MCP не делает модель умнее и не добавляет ей знаний. Он даёт доступ к данным и действиям, а решение, что с ними делать, по-прежнему принимает модель.

MCP не решает вопросы безопасности за вас. Сервер с инструментом «удалить все записи» будет послушно удалять записи, если модель его вызовет. Поэтому хосты спрашивают у человека подтверждение перед выполнением инструментов, а хорошие серверы делают опасные операции недоступными или требуют явного флага.

MCP не заменяет обычные API. Под капотом MCP-сервер сам ходит в обычный REST- или GraphQL-API сервиса. Протокол лишь стандартизирует то, как эти возможности описываются для модели.

Попробуйте сами

10–15 мин на рабочем месте
  1. Откройте настройки Claude (раздел с коннекторами) или Claude Code и посмотрите, какие MCP-серверы уже подключены. Для каждого попробуйте ответить: какие инструменты он даёт модели и какой сервис стоит за ним.
  2. Вспомните три сервиса, которыми вы пользуетесь каждый день (трекер, вики, таблицы, мессенджер). Для каждого напишите одну фразу, которую вы хотели бы сказать Claude, если бы у него был доступ к этому сервису. Это и есть будущие инструменты вашего MCP-сервера.
  3. Зайдите на modelcontextprotocol.io и найдите список готовых серверов. Отметьте те, которые пригодились бы команде прямо сейчас.

Коротко

  • MCP — открытый стандарт подключения ИИ-приложений к внешним сервисам, «USB для ИИ».
  • Он превращает задачу «N приложений × M сервисов» в «N клиентов + M серверов».
  • Три роли: хост (приложение), клиент (соединение внутри хоста), сервер (обёртка над сервисом).
  • Сервер предлагает инструменты (действия), ресурсы (данные) и промпты (шаблоны).
  • Модель сама решает, какой инструмент вызвать; хост спрашивает у человека подтверждение.
  • MCP-сервер — чаще всего маленький скрипт на вашем компьютере, а не облачный сервис.

Видеоверсия

Сценарий озвучки · 544 слова, ≈ 4 мин

Если вы когда-нибудь слышали фразу «подключи MCP-сервер» и делали вид, что всё понятно, — этот ролик для вас. За пять минут разберём, что это такое и зачем нужно.

Начнём с проблемы. Языковая модель вроде Claude знает очень много, но у неё нет рук. Она не видит вашу таблицу, не может открыть задачу в трекере и не знает, что лежит в папке проекта. Всё, что у неё есть, — это текст, который вы ей прислали.

Первое решение придумали давно: разработчик описывает функцию, например «получить задачу по номеру», модель просит её вызвать, программа выполняет и возвращает результат. Это называется вызов инструментов, и это работает. Но каждую связку между приложением и сервисом приходится писать заново. Пять приложений и пять сервисов — это двадцать пять интеграций. Добавили шестой сервис — пишите ещё пять. Точно так же было с зарядками для телефонов, пока не появился единый разъём.

MCP — это и есть такой разъём. Расшифровывается как Model Context Protocol, протокол контекста модели. Это открытый стандарт, который описывает, как приложение с ИИ и внешний сервис договариваются друг с другом. Сервис один раз оборачивают в MCP-сервер, приложение один раз учат быть MCP-клиентом, и дальше любой клиент работает с любым сервером. Производитель клавиатуры не знает, к какому ноутбуку её подключат, и ему это не нужно. Оба соблюдают стандарт — и всё работает.

В MCP три участника. Хост — это приложение, с которым работает человек: Claude, Claude Code, редактор кода. Клиент — это компонент внутри хоста, который держит соединение с одним сервером. И сервер — небольшая программа, которая знает, как обращаться с конкретным сервисом, и выставляет его возможности наружу по правилам протокола.

Слово «сервер» сбивает с толку. Это не обязательно что-то большое в облаке. Чаще всего MCP-сервер — это скрипт на сотню строк, который хост запускает прямо на вашем компьютере как обычный процесс.

Что сервер отдаёт наружу? Три вида вещей. Инструменты — это действия, которые модель может вызвать: создать задачу, выполнить запрос, отправить сообщение. Ресурсы — это данные, которые можно прочитать: файл, страница документации, запись из базы. И промпты — готовые шаблоны запросов для типовых сценариев. Запомните просто: инструменты — «сделать», ресурсы — «прочитать», промпты — «начать типовой разговор».

Посмотрим на живой пример. Тестировщик хочет, чтобы Claude Code воспроизвёл баг из трекера. Он пишет: «Воспроизведи баг номер тысяча четыреста тридцать два и предложи исправление». Claude Code ещё при запуске подключился к серверу трекера и знает, что у того есть инструмент «получить задачу по ключу». Модель читает запрос, понимает, что ей нужно содержимое задачи, и просит вызвать этот инструмент. Сервер идёт в трекер, забирает задачу и возвращает текст. Модель находит нужный код, воспроизводит проблему и предлагает патч.

Самое важное здесь — что выбор инструмента модель сделала сама. Никто не писал ей сценарий. Она увидела список доступных инструментов и взяла подходящий, как человек открывает нужную вкладку в браузере.

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

Итак, MCP — это USB для ИИ. Один стандарт вместо десятков интеграций, три роли — хост, клиент и сервер, и три примитива — инструменты, ресурсы и промпты. В следующем уроке разберём архитектуру подробнее и посмотрим, как хост и сервер на самом деле обмениваются сообщениями.

Отметка хранится только в вашем браузере