MCP для агента: что это и как подключить инструменты
Воткнул разъём - и у агента появились руки в реальном мире
MCP простыми словами: единый разъём, через который ИИ-агент получает инструменты, данные и шаблоны. Зачем это вайбкодеру, как подключить сервер и не словить беду.
MCP простыми словами: розетки на кухне агента
Помнишь аналогию из прошлых глав? Модель - гениальный повар, а мы строим вокруг него кухню (харнесс). Так вот, MCP - это стандартные розетки на этой кухне. Воткнул в розетку блендер - повар умеет смузи. Воткнул мясорубку - умеет фарш. А сам повар не поменялся ни на грамм. У него просто появился новый прибор.
Теперь по-умному. MCP MCP (Model Context Protocol) - единый стандарт, по которому агент подключается к внешним инструментам и данным. Как USB: одна форма разъёма - и в неё подходят тысячи разных устройств. - это протокол, по которому ИИ-агент подключается к внешним умениям: вызвать инструмент, прочитать данные, взять готовый шаблон команды. Вся соль в одном слове - стандартный. Раньше каждую интеграцию пилили вручную, с нуля, каждый раз заново. А теперь форма разъёма одна. И в неё подходят сотни готовых «устройств».
Зачем MCP вайбкодеру
Ты вайбкодер. Сервер руками тебе писать не надо - хотя в конце урока подсмотрим, как он устроен изнутри. Но понимать MCP важно. Именно через него агент вылезает из чата в реальный мир.
- Хочешь, чтобы агент сам читал почту и раскладывал её по полкам? Подключаешь MCP почты.
- Хочешь, чтобы он брал свежие данные из интернета, а не сочинял на ходу? Подключаешь MCP поиска.
- Хочешь, чтобы он работал с твоим проектом, базой, дизайном? На всё это уже есть готовые серверы.
Разница между «агент в чате красиво болтает» и «агент реально делает за меня дела» - это почти всегда правильно подключённые MCP-серверы. Вот она, та самая суперсила из названия главы.
Что внутри MCP: инструменты, ресурсы, промпты
Каждый сервер даёт агенту три типа «умений». Запомни их - и считай, весь словарь MCP у тебя в кармане.
Инструменты - агент ДЕЛАЕТ действие
Инструменты Инструмент (tool) в MCP - действие, которое агент может выполнить: отправить письмо, запустить тест, найти что-то. Это глагол: агент его вызывает и получает результат. - это глаголы. «Отправь письмо», «запусти тесты», «найди клиента в базе», «заведи задачу». Агент сам решает, когда позвать нужный инструмент, передаёт ему данные и получает назад результат.
Хороший инструмент похож на хорошую кнопку на пульте: узкое имя, одна понятная задача. А плохой - это «мега-кнопка на всё», после которой агент чешет затылок и не понимает, что вообще произошло.
Ресурсы - агент ЧИТАЕТ данные
Ресурсы - это существительные. Данные только на чтение: содержимое файла, ответ от API, строки из таблицы. Агент их не трогает. Он просто подглядывает, чтобы понять контекст. Обычно у ресурса есть свой адрес (uri) - как ссылка, по которой агент достаёт нужный кусок.
Промпты - готовые шаблоны команд
Промпты в MCP - это заготовленные шаблоны запросов с дырками под параметры. Грубо говоря, «составь отчёт за месяц X по проекту Y». Клиент (например, твоё приложение) показывает тебе такой шаблон, ты подставляешь значения - и не печатаешь одну и ту же длинную команду по сто раз.
Локальный и удалённый MCP-сервер: куда втыкать разъём
Сервер MCP может жить в двух местах. Разница тут простая.
- Локальный - крутится прямо на твоём компьютере. Связь идёт через stdio stdio - простой канал, по которому две программы на одном компьютере обмениваются текстом напрямую, без интернета. Для MCP это способ связать локальный сервер с агентом. - две программы просто перекидываются текстом друг другу. Так, например, подключают агента к Claude Desktop.
- Удалённый - живёт где-то в облаке, и агент ходит к нему по интернету через HTTP. Современный стандарт для этого - Streamable HTTP: один аккуратный веб-адрес на весь сервер. Старый способ через SSE держат уже только ради совместимости.
Как отличить хороший MCP-инструмент от плохого
Когда будешь выбирать или настраивать MCP - вот как на глаз отличить нормальный сервер от мучительного. Это прямые правила из практики разработки MCP-серверов.
- Узкое имя, одна задача: «отправить письмо», «найти заказ». Сразу ясно, что делает.
- Есть схема входа: чётко описано, какие данные принимает и что вернёт.
- В ответе - понятный результат и подсказка «что дальше», а не сырой технический мусор.
- Не боится повторов: позвал дважды - ничего не сломалось и не задвоилось.
- Один «мега-инструмент на всё» - агент путается, что и когда звать.
- Молча падает или вываливает стек ошибок, по которому агент не понимает, что чинить.
- Нет описания параметров - агент гадает на кофейной гуще, что в него класть.
- Дёргает платный внешний API без всяких лимитов - привет, неожиданный счёт.
Пример: агент читает почту через MCP
Ты просишь агента: «глянь, что мне сегодня написали клиенты, и сделай короткую сводку». В обычном чате агент честно разведёт руками: «у меня нет доступа к твоей почте». Тупик.
А теперь подключаем MCP-сервер почты - и тот же запрос превращается в магию. Агент сам открывает входящие (это ресурс - читает), достаёт сегодняшние письма, делает сводку, а если попросишь - пишет за тебя черновик ответа (это уже инструмент - действие).
Чтобы магия не обернулась катастрофой, командуй ему вот так.
У тебя подключён доступ к моей почте через MCP. Сделай так:
- Прочитай только письма за сегодня. Ничего не удаляй и не отправляй без моего разрешения.
- Сгруппируй их по темам и дай короткую сводку: от кого, о чём, насколько срочно.
- Для двух самых срочных подготовь черновик ответа, но НЕ отправляй - сначала покажи мне.
- Если какого-то инструмента не хватает или доступ не сработал - честно скажи об этом, не выдумывай содержимое писем.
Как устроен MCP-сервер изнутри (одним глазком)
Руками тебе это писать не придётся, но полезно увидеть, что «магия» - это обычный код. Сервер MCP на TypeScript заводится буквально в пару строк:
- ставишь пакет:
npm install @modelcontextprotocol/sdk zod; - создаёшь сервер с именем и версией;
- регистрируешь инструменты и ресурсы, описываешь их вход через Zod Zod - библиотека, которая проверяет, что данные на входе правильной формы (например, что email - это строка). В MCP ей описывают, что принимает инструмент. - это просто «вышибала на входе»: проверяет, что агент передал данные нужного вида, а не что попало.
Частые ошибки новичка с MCP
- Подключать всё подряд. Каждый сервер видит твои данные. Ставь только тех, кому доверяешь, и читай, какие права просят.
- Давать максимум прав «чтобы точно работало». Дай минимум: нужно только читать почту - не выдавай право удалять и отправлять.
- Ждать, что MCP сделает модель умнее. Он даёт умения и доступ, а не интеллект. Кривую задачу агент и через MCP сделает криво, просто быстрее.
- Один «мега-инструмент на всё». Агент путается. Лучше несколько узких инструментов с понятными именами.
- Верить, что агент точно всё сделал. Если инструмент молча упал, агент может «дорисовать» ответ. Проси честно сообщать о сбоях и сверяй важное сам.
- Писать сервер с нуля, когда готовый уже есть. Сначала поищи существующий MCP под задачу - скорее всего, его уже написали и причесали.
TL;DR - если коротко
- MCP - это «USB-разъём» для агента. Воткнул сервер - агент умеет читать почту, ходить в базу, гуглить.
- Внутри три штуки: инструменты (агент действует), ресурсы (агент читает) и промпты (готовые шаблоны команд).
- Сервер бывает локальный (на твоём компе, через stdio) и удалённый (в облаке, через HTTP). В облаке стандарт - Streamable HTTP.
- Хороший инструмент: узкое имя, одна задача, внятный ответ. Один «мега-инструмент на всё» - это боль.
- MCP - это доступ к твоим данным. Подключай только то, чему доверяешь, и давай минимум прав.
- Писать сервер руками тебе почти никогда не нужно - нужный уже написали до тебя.