JavaRush /Курси /Claude Code SELF /Радар сам добуває дані: MCP

Радар сам добуває дані: MCP

Claude Code SELF
Рівень 7 , Лекція 3
Відкрита

1. Що таке MCP і навіщо він потрібен поверх API

— Слухай, з цим API все зрозуміло, — пише Тьома. — Є USGS, є адреса цього віконця, є JSON. Скажу ШІ: завітай за цією адресою, забери свіжі поштовхи, віддай Сашкові в радар. Він же сходить?

— Сходить, — погоджується Льоха. — ШІ це вміє: смикнути відкриту адресу, забрати відповідь. Тут ти правий, жодної магії. Питання не в тому, чи сходить він, а як ви робитимете це щодня.

— У сенсі щодня?

— А ти подумай. Сьогодні попросив — сходив, приніс. Завтра потрібні свіжі поштовхи — і знову руками пишеш йому: «Сходи за адресою earthquakes.usgs.gov/..., ось формат, ось поля». Післязавтра захотів показати курс біткоїна — лізеш шукати адресу біржі, знову диктуєш ШІ, де віконце і що там у відповіді. Для кожного сервісу заново пояснюй машині, куди стукати і як розбирати відповідь. Це як щоразу малювати курʼєрові карту від руки.

— Ну… клопітно, так, — погоджується Тьома. — А можна якось простіше?

— Можна і простіше — один раз налаштовуєш ШІ готове підʼєднання до сервісу, а далі просто кажеш словами: «Принеси поштовхи». Адреса, формат, поля — усе вже всередині підʼєднання, ШІ не треба нічого пояснювати. Ось ця штука і називається MCP.

— MCP. А розшифровується як?

— Model Context Protocol. Але не запамʼятовуй: сама розшифровка тобі нічого не дає. За змістом — це спосіб один раз підʼєднати до ШІ зовнішній сервіс, щоб далі смикати його словами, а не пояснювати щоразу всі деталі заново. Підʼєднав такий «кабель» до землетрусів — і в ШІ зʼявилася готова кнопка «принеси поштовхи». Підʼєднав до GitHub — кнопка «покажи задачі». Підʼєднав до парсера сайтів — кнопка «завітай на сайт і забери звідти потрібне».

2. Чим MCP відрізняється від API

— Тобто це типу розумного API? — уточнює Тьома.

— Розумію, чому так здається, — близько, але повз. І цю різницю важливо не змазати. API живе в сервісі — це його віконце видачі, і ним користуються всі: хоч застосунок стукає, хоч ти руками. А MCP є і в ШІ, і в сервісі — це те, чим ШІ звертається до цього API. За MCP-підʼєднанням і командою «принеси поштовхи» стоїть усе той самий звичайний API геологів. MCP його не замінює і не «покращує» — він просто стандартизує підʼєднання до ШІ, щоб тобі не доводилося диктувати машині формат запитів вручну. Давайте розкладемо, хто де стоїть:

Що Де живе Навіщо
API у сервісі (USGS) віконце, через яке сервіс віддає дані — будь-якому застосунку
MCP у ШІ, у сервісі кабель, яким ШІ сам підʼєднується до віконця, без ваших пояснень
ти руками людина курʼєр: сам збігав, скопіював, приніс

API — це КУДИ стукати. MCP — це ЧИМ ШІ туди стукає замість тебе.

— Тобто, — міркує вголос Тьома, — раніше курʼєром був я: сам сходив на сайт, скопіював, приніс Сашкові. А з MCP-кабелем курʼєром стає ШІ?

— Точно. І тобі більше не треба щоразу малювати карту — MCP-кабель її вже знає.

3. MCP як єдиний стандарт — USB

Тьома киває, але тут же морщиться — щось усе одно не сходиться.

— Погоди. Якщо за MCP-підʼєднанням усе одно стоїть звичайний API, і ШІ до API й так уміє ходити… навіщо взагалі будувати окремий MCP? Чим погано просто дати йому адресу?

— Гарне питання, в саму точку. Дивись. У USGS свої правила, у GitHub свої, у біржі свої — кожен сервіс має свій API і свою документацію до нього. Без MCP-кабелю виходить, що під кожен сервіс ШІ треба заново налаштовувати весь процес спілкування: де адреса, який формат, які поля, чи потрібен ключ. А MCP-кабель — це коли все це один раз упакували в стандартну форму, зрозумілу будь-якому ШІ. Ідеальний приклад для цієї ситуації — USB.

— USB? Як флешка?

— Ага. Дивись: флешка, миша, камера, принтер — пристрої зовсім різні, а втикаються в один і той самий розʼєм, і компʼютер кожен розуміє. Ніхто не паяє для миші окремий дріт, хоча колись саме так і робили. USB — це спільна домовленість про те, як усе це підʼєднувати. MCP — рівно такий самий спільний розʼєм, тільки для ШІ та сервісів. Той, хто робить сервіс, один раз налаштовує до нього MCP-підʼєднання — і далі будь-який ШІ зможе працювати з ним за єдиними правилами. Ви просто втикаєте — і у ШІ зʼявляється нова здатність.

MCP — це «USB» для ШІ: єдиний розʼєм, у який втикаються різні сервіси.

— А в Claude Code це де? Він такі MCP-кабелі розуміє?

— Більше ніж: Claude Code вміє втикати такі кабелі з коробки. Підʼєднувати MCP-сервери — його вбудована фіча. Один MCP-розʼєм — один новий підʼєднаний сервіс: сервер землетрусів дає нам «поштовхи», сервер парсера сайтів — фічу «спарси сайт». Підʼєднав MCP-кабель — і в агента стало на одну «руку» більше. Зараз покажу на прикладі.

— А підʼєднувати складно? Чи як із флешкою? Спочатку неправильно, потім перевернути, потім знову перевернути. І нарешті — добре :)

— Чимось схоже, так.

4. Як підʼєднати MCP-сервер у Claude Code

— Давай спеціально візьмемо найпростіший приклад, — пропонує Льоха, — без ключа, щоб ти відчув саму суть, а не потонув у налаштуваннях. Землетруси якраз віддаються публічно. Відкриваєш звичайний термінал і пишеш команду:

# підʼєднуємо MCP-сервер відкритих даних. Імʼя "quakes" — будь-яке, придумуєш сам.
claude mcp add --transport http quakes <адреса-MCP-сервера-відкритих-даних>

— А можна подробиці?

— Зараз будуть. Дивись, claude mcp add — це «Claude, додай mcp-кабель». --transport http — спілкуємося з ним через мережу, а не як із локальним застосунком. quakes — імʼя, під яким ми його запамʼятаємо, сам придумав. Далі — адреса самого MCP-кабелю. Натиснув Enter — кабель додано. Перевіряємо, що підʼєдналося:

claude mcp list

У списку зʼявляється quakes зі статусом ✓ Connected. Немає статусу або є помилка — насамперед дивишся сюди: чи правильна адреса, чи живий сервер. Це і є супернавичка «полагодити MCP-кабель». А потім запускаєш claude і пишеш у сесії команду /mcp:

/mcp          # команда всередині сесії: показує кабелі та їхні кнопки-інструменти

— І там буде мій quakes?

— І там буде твій quakes, а поруч — список його «дій/кнопок». Це те, що ШІ тепер уміє викликати. І все, далі ти просто просиш словами.

Тьома не витримує — пробує прямо зараз. Пише агенту:

Дістань через quakes землетруси за останню годину, візьми з кожного
mag, coordinates, time і збери радар: магнітуда → розмір точки,
свіжість → яскравість, координати → куди ставити.

Палець зависає над Enter. Тисне.

Секунда — і на екрані біжить стрічка запиту. Радар, який досі показував вигадані точки, блимає — і запалює першу справжню. На іншому боці планети кілька хвилин тому здригнулася земля, і ось вона — точка на його екрані.

— Це що, реально?! — Тьома тицяє пальцем у монітор. — Там просто зараз землетрус?

— Щойно тряхнуло, — озивається Льоха. — Кабель тягне все, що здригнулося за останню годину. І зверни увагу: ти не диктував ШІ ні адреси, ні формату JSON. Сказав «дістань через quakes» — він сам сходив до віконця, сам забрав відповідь, сам розібрав поля. Курʼєр більше не ти.

Тьома відкидається на спинку і кілька секунд просто дивиться.

— Слухай, це ж бомба, — видихає він. І тут же загоряється: — А я тоді зможу так підʼєднатися до будь-чого? Ось хочу ролики з YouTube качати через ШІ — зможу?

— Гальмуй, — фиркає Льоха. — Підʼєднати кабель — це не «дати ШІ весь інтернет». Кожен кабель відкриває рівно один сервіс. Той, що до землетрусів, дає землетруси — і більше нічого. Ні твій банк, ні YouTube, ні чужу базу він не відкриє. Потрібен інший сервіс — підʼєднуєш окремий кабель саме до нього.

І додає:

— І навіть усередині одного кабелю ШІ може робити лише те, що йому дозволено. Дали ключ тільки на читання — видалити нічого не зможе, хоч трісни. Це не «відкрили весь світ», це «відкрили одні конкретні двері».

5. Сервіс із ключем доступу

— Гаразд, вважатиму, що зрозумів, — киває Тьома. — А ось подивись. Радар працює, але виглядає слабенько — якийсь сірий, надто примітивний. Хочу, щоб виглядав дорого, красиво, як Stripe, наприклад. Бачив їхній сайт? От прямо в такому ж стилі. ШІ може залізти туди й скопіювати їхній стиль?

— Ти не повіриш... У землетрусів було готове віконце — API. А в чужого сайту немає віконця «віддай мені свій дизайн». Ніхто такого API не робив. Скопіювати стиль можна одним способом — піти на сам сайт і розпарсити його. Дістати вживу те, у чого віконця немає.

— І ШІ так уміє?

— Сам по собі — не дуже, але в нас є чарівний кабель на цей випадок. Беремо Firecrawl — сервіс, який уміє читати чужі сайти. Підʼєднується MCP-кабелем, як землетруси, але з невеликою різницею: Firecrawl просить ключ. Без нього нічого не віддасть. Ось він, твій перший живий токен.

— А де мені його взяти? Купувати?

— Реєструєшся на firecrawl.dev, отримуєш ключ виду fc-.... Там є безплатний тариф, без картки — нам на пару запитів вистачить із запасом. Без ключа MCP-кабель не запуститься. Отримав — підʼєднуєш його, а ключ кладеш просто в адресу кабелю:

claude mcp add --transport http firecrawl "https://mcp.firecrawl.dev/fc-ТВІЙ_КЛЮЧ/v2/mcp"

— Слухай, а claude ж сам може все підʼєднати. Наскільки я знаю. Давай я йому ключ скину. Зараз я його скопіюю в чат.

— Стій! — обриває Льоха ще до того, як палець дотиснув Enter. — Не в чат.

Тьома завмирає, руки над клавіатурою.

— А куди? Ти ж сам сказав, що ключ потрібно додати в адресу.

— У команду — так, в адресу кабелю. А от у листуванні з ШІ ключ не вставляють як звичайний текст. І ще одна пастка, на ній усі обпікаються. Бачиш, MCP-кабель за замовчуванням ставиться тільки тобі і тільки в цій папці. Якщо додати прапорець -s project під час додавання MCP — тоді налаштування з твоїм ключем запишеться у файл проєкту і поїде в спільний git-репозиторій, де його побачать усі. Ключ — це перепустка, оплачена тобою.

— Тобто ключ — повз чат і повз репозиторій.

— Саме так. Запамʼятай три речі, які в листування з ШІ не вставляють як звичайний текст: ключі доступу, паролі, чужі особисті дані. Заведи правило й рахуй дні, коли не порушив його. Сьогодні, вважай, перший день без злитого ключа. Не обнуляй.

Тьома перевіряє, що підʼєдналося:

claude mcp list           # firecrawl → ✓ Підʼєднано

— Готово. І що далі?

— Тепер просиш словами, як із поштовхами. Тільки цього разу — завітати на сайт і скопіювати стиль:

Через firecrawl скопіюй стиль stripe.com — кольори, типографіку, структуру —
і перероби мій радар у цьому дусі.

Тьома тисне. Агент іде на пару секунд — і повертається. Сірий радар перетворюється: глибокий фон, чиста типографіка, мʼякі градієнти. Схоже на Stripe, але не копія — свій.

— Опа, — Тьома подається до екрана. — Він реально заліз на їхній сайт?

— Заліз і здер стиль, — усміхається Льоха. — Відчуваєш різницю? До землетрусів у ШІ було готове віконце — він просто взяв дані. А до Stripe віконця немає — ШІ сам сходив на реальний сайт і здер звідти дизайн. Два способи, а суть одна: у ШІ зʼявилися нові зовнішні руки. Однією він бере через готове вікно, іншою лізе туди, де вікна немає.

— Коротше, — підсумовує Тьома, — є віконце у сервісу — MCP-кабель приносить дані. Немає віконця — MCP іде на сайт і бере сам. А ключ — повз чат і повз репозиторій.

— Красунчик. Оце вже можна і попрацювати, — озивається Льоха.

Коментарі
ЩОБ ПОДИВИТИСЯ ВСІ КОМЕНТАРІ АБО ЗАЛИШИТИ КОМЕНТАР,
ПЕРЕЙДІТЬ В ПОВНУ ВЕРСІЮ