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 - це доступ до твоїх даних. Підключай лише те, чому довіряєш, і давай мінімум прав.
- Писати сервер руками тобі майже ніколи не потрібно - потрібний уже написали до тебе.