MCP (Model Context Protocol) — це відкритий протокол, який стандартизує спосіб підключення AI-застосунків до зовнішніх інструментів, даних і сервісів. Простими словами, він допомагає моделі не лише відповідати з наданого контексту, а й коректно працювати з файлами, базами даних, API, пошуком, репозиторіями, CRM або іншими системами через контрольований проміжний шар.
Важливо: зазвичай ШІ не підключається до сервісу напряму. Модель може запропонувати виклик інструмента, але застосунок, у якому вона працює, перевіряє дозволи, виконує запит через MCP-клієнт і повертає результат назад моделі. Саме тому MCP варто сприймати не як «нову модель» чи «автономного агента», а як стандарт обміну повідомленнями між AI-застосунком і зовнішніми системами.
Що таке MCP простими словами
Model Context Protocol, або протокол контексту моделі, описує єдиний спосіб, за яким AI-застосунок може дізнатися, які зовнішні можливості доступні, як їх викликати, які параметри передати та який результат очікувати.
Протокол спочатку створила Anthropic. Публічний запуск MCP відбувся 25 листопада 2024 року: тоді компанія представила його як відкритий стандарт для підключення AI-застосунків до даних та інструментів, опублікувала специфікацію, SDK і приклади серверів. Детальніше про запуск можна прочитати в офіційному анонсі Anthropic.
Головна ідея MCP — прибрати хаос із точкових інтеграцій. Без спільного протоколу кожне поєднання «AI-застосунок — зовнішній сервіс» потребує окремого конектора. MCP пропонує спільну мову взаємодії: сервер описує свої можливості, клієнт підключається до сервера, а хост керує тим, що саме можна показати моделі й виконати від імені користувача.
При цьому MCP не є:
- окремою мовною моделлю;
- самостійним AI-агентом;
- базою даних;
- універсальним API-шлюзом, який автоматично відкриває доступ до всіх систем;
- гарантією безпеки конкретного сервера.
Це саме протокол: набір правил, за якими компоненти обмінюються повідомленнями та описують доступні можливості.
Навіщо MCP потрібен AI-застосункам
Мовна модель сама по собі працює з тим контекстом, який їй передали. Якщо користувач просить: «Знайди в нашій базі останнє замовлення клієнта» або «Проаналізуй файл у проєкті», модель не може самостійно отримати доступ до CRM, файлової системи чи репозиторію. Їй потрібен безпечний і зрозумілий механізм доступу.
До появи спільного підходу розробникам доводилося створювати окремі інтеграції: одну — для пошуку в документах, іншу — для бази даних, третю — для Git, четверту — для внутрішнього API. MCP стандартизує цей шар. Якщо сервіс надає MCP-сервер, AI-застосунок може підключатися до нього за передбачуваними правилами.
Це корисно для сценаріїв, де модель має працювати не лише з текстом запиту, а й із живими або локальними даними:
- пошук інформації у внутрішніх документах;
- читання файлів у локальному або проєктному середовищі;
- отримання даних із бази;
- аналіз репозиторію чи історії змін;
- звернення до зовнішнього API;
- робота з CRM або іншою бізнес-системою.
Ключова перевага не в тому, що MCP «робить ШІ розумнішим», а в тому, що він дає стандартизований спосіб підключити модель до корисного контексту й дій.
Архітектура MCP: хто за що відповідає
У класичній архітектурі MCP є три основні ролі: host, MCP client і MCP server. У специфікації MCP редакції 2025-06-18 підкреслюється, що хост керує підключеннями до серверів, ізолює їх і контролює дозволи.
Host — AI-застосунок
Host — це застосунок, у якому користувач взаємодіє з моделлю. Наприклад, це може бути чат-інтерфейс або інструмент для роботи з кодом. Саме хост керує контекстом, дозволами, підключеннями й тим, як результат зовнішнього інструмента буде передано моделі.
Хост не просто «пропускає» все, що хоче модель. Він має вирішувати, які сервери підключені, які інструменти доступні, чи потрібно питати підтвердження користувача та як обробляти результат.
MCP client — клієнт усередині хоста
MCP client — це компонент у хості, який підтримує з’єднання з конкретним MCP-сервером. Зазвичай один клієнт відповідає одному серверу. Якщо AI-застосунок підключений до сервера файлової системи, сервера пошуку документів і сервера CRM, для кожного з них може бути окремий клієнт.
Завдання клієнта — вести протокольну взаємодію: підключитися, отримати опис можливостей, надіслати запит, прийняти відповідь або помилку.
MCP server — міст до зовнішньої системи
MCP server — це програма або віддалений сервіс, який відкриває стандартизований доступ до певної системи. Він може працювати локально або віддалено. Сервер не обов’язково зберігає дані сам: часто він лише надає контрольований доступ до API, бази даних, файлової системи чи іншого інструмента.
Спрощений ланцюжок виглядає так:
Користувач
↓
AI-застосунок / host
↓
Модель
↓
MCP client
↓
MCP server
↓
Зовнішній API, база даних, файлова система або інший інструмент
Головне уточнення: модель зазвичай не ходить у зовнішній сервіс напряму. Вона може запропонувати використати інструмент, але фактичний виклик виконує хост через MCP-клієнт і MCP-сервер.
Що MCP-сервер може надати моделі
У документації MCP для серверів редакції 2025-06-18 описані три основні типи примітивів: інструменти, ресурси та промпти. Їх часто плутають, хоча вони виконують різні ролі.
| Примітив | Що це означає | Приклад | Хто переважно контролює |
|---|---|---|---|
| Tools | Функції, які можуть отримувати дані або виконувати дію | search_documents, запит до CRM, пошук у базі |
Модель через хост |
| Resources | Дані або контент, які застосунок може прочитати | Файл, документ, історія Git | Застосунок |
| Prompts | Готові шаблони інструкцій і сценаріїв | Промпт для аналізу коду або документа | Користувач |
Tools потрібні тоді, коли модель має щось зробити: знайти документ, виконати запит, отримати список записів. Resources — це радше доступ до вмісту, який можна показати або використати як контекст. Prompts допомагають стандартизувати повторювані сценарії, наприклад аналіз коду за певною структурою.
Таке розділення важливе для безпеки та керованості. Читання файлу й виконання дії в зовнішній системі мають різні ризики, тому їх не варто змішувати в одну абстракцію.
Як ШІ викликає зовнішній інструмент через MCP
Типовий сценарій роботи виглядає так:
- MCP-клієнт у хості підключається до MCP-сервера.
- Сервер повідомляє, які можливості доступні: інструменти, ресурси, промпти.
- Хост передає моделі описи інструментів і схеми параметрів.
- Користувач ставить запит.
- Модель визначає, що для відповіді потрібен зовнішній інструмент.
- Хост може попросити користувача підтвердити дію.
- MCP-клієнт надсилає серверу стандартизований запит.
- Сервер виконує операцію й повертає структурований результат.
- Модель використовує результат для відповіді або наступного кроку.
Повідомлення MCP базуються на JSON-RPC 2.0. У базовій специфікації редакції 2025-06-18 описані запити, відповіді, повідомлення про помилки та односторонні сповіщення.
Уявімо запит користувача: «Знайди в документах інструкцію з онбордингу й коротко підсумуй її». Модель розуміє, що потрібен пошук у документах. Вона не відкриває сховище напряму, а пропонує виклик інструмента на кшталт search_documents. Хост перевіряє, чи цей інструмент доступний, за потреби питає підтвердження, MCP-клієнт надсилає запит на сервер, сервер повертає результати, а модель уже формує зрозумілу відповідь.
Інший сценарій: користувач просить проаналізувати файл у проєкті. У цьому випадку MCP-сервер може надати ресурс із вмістом файлу, а модель використає цей контекст для пояснення або аналізу. Якщо ж потрібно не лише прочитати, а й виконати дію, наприклад звернутися до API, це вже буде інструмент.
Транспорти MCP: локально й віддалено
MCP описує не лише логіку повідомлень, а й способи їх передавання. У документації та SDK згадуються різні транспорти. Офіційний TypeScript SDK рекомендує stdio для локальних процесів, а Streamable HTTP — для віддалених серверів. HTTP+SSE зберігається переважно для сумісності зі старішими реалізаціями, але для нових реалізацій позначається як застарілий підхід. Це описано в документації MCP TypeScript SDK.
| Транспорт | Коли доречний | Що варто врахувати |
|---|---|---|
| stdio | Локальні MCP-сервери, які запускаються як процес | Підходить для локальної взаємодії через стандартні потоки |
| Streamable HTTP | Віддалені MCP-сервери | Рекомендований сучасний варіант для HTTP-підключень |
| HTTP+SSE | Старіші реалізації | Не варто обирати для нових інтеграцій без потреби сумісності |
Вибір транспорту — не формальність. Якщо сервер працює локально, немає сенсу ускладнювати архітектуру віддаленим HTTP-підключенням. Якщо ж потрібно підключити зовнішній сервіс, важливими стають авторизація, HTTPS, робота з токенами й контроль доступу.
Авторизація та безпека: що MCP вирішує, а що ні
MCP задає правила взаємодії, але не робить будь-який сервер автоматично безпечним. Безпека залежить від того, як розроблено хост, сервер, схеми дозволів і сценарії підтвердження дій.
Для HTTP-підключень MCP описує механізми авторизації на основі OAuth. У специфікації авторизації редакції 2025-11-25 ідеться, зокрема, про:
- виявлення authorization server;
- захищені метадані ресурсу;
- перевірку призначення токена;
- використання HTTPS;
- PKCE для захисту authorization code flow;
- заборону некоректного передавання отриманого токена далі.
Окремо важливо правило про токени: MCP-сервер не повинен просто приймати токен, виданий для іншого сервісу, і пересилати його в зовнішню систему без належної перевірки. Це зменшує ризик атаки типу confused deputy, або «заплутаного заступника», коли компонент із доступом ненавмисно виконує дію не в тому контексті або не для того ресурсу.
Для локального підключення через stdio офіційна специфікація редакції 2025-06-18 не рекомендує використовувати описаний HTTP/OAuth-механізм. Локальні реалізації зазвичай отримують облікові дані з оточення або конфігурації.
Практичний висновок простий: MCP допомагає стандартизувати доступ, але не скасовує базові принципи безпеки. Не варто відкривати моделі інструменти з надмірними правами, змішувати читання й небезпечні дії або пропускати підтвердження там, де дія може змінити дані.
Приклади сценаріїв застосування MCP
Пошук у документах
MCP-сервер може надати інструмент для пошуку в документах. Користувач ставить запит природною мовою, модель визначає, що потрібен зовнішній пошук, пропонує виклик відповідного інструмента, а хост виконує його через MCP-клієнт. Після цього сервер повертає результати, і модель формує відповідь. Такий сценарій корисний там, де знання зберігаються не в моделі, а в окремому сховищі документів.
Робота з файлами
Якщо MCP-сервер відкриває доступ до файлової системи або окремих файлів, модель може отримувати потрібний контекст для аналізу. Наприклад, вона може пояснити зміст документа або допомогти розібратися з файлом у проєкті. Тут важливо обмежити доступ лише потрібними ресурсами, а не відкривати всю файлову систему без контролю.
Аналіз репозиторію
Сервер може надавати ресурси, пов’язані з репозиторієм або історією Git. У такому разі модель отримує контекст для пояснення змін, аналізу структури або підготовки підсумку. MCP у цьому випадку не замінює систему контролю версій, а лише стандартизує доступ AI-застосунку до потрібної інформації.
Звернення до CRM або API
MCP-сервер може бути шаром між AI-застосунком і CRM чи зовнішнім API. Наприклад, інструмент може отримати дані про клієнта, знайти запис або повернути структурований результат. Якщо дія потенційно змінює дані, хост має контролювати дозволи й за потреби просити підтвердження користувача.
MCP, API, плагіни й агенти: у чому різниця
Читачі часто плутають MCP із API, плагінами або агентами. Ці поняття пов’язані, але не тотожні.
API — це інтерфейс конкретного сервісу. Він описує, як звертатися саме до цього сервісу: які ендпоїнти є, які параметри потрібні, які відповіді повертаються. MCP може бути шаром, який робить доступ до різних API зрозумілим для AI-застосунків, але не замінює всі API.
Плагін або конектор — це конкретна інтеграція. MCP натомість задає спільний протокол для таких інтеграцій. Завдяки цьому хост може працювати з різними MCP-серверами за схожою логікою.
Агент — це ширше поняття: система, яка може планувати кроки, використовувати інструменти й рухатися до цілі. MCP не є агентом. Він лише дає агентному або звичайному AI-застосунку стандартний спосіб підключатися до інструментів.
Тому коректніше казати не «MCP виконує завдання замість моделі», а «MCP надає моделі та хосту стандартизований канал для роботи із зовнішніми можливостями».
Як вирішити, чи потрібен MCP у вашому проєкті
MCP варто розглядати, якщо AI-застосунок має регулярно працювати із зовнішніми даними або сервісами, а не лише відповідати на основі тексту, який користувач вставив у чат.
Практичний алгоритм прийняття рішення:
- Опишіть задачу. Що саме має робити AI-застосунок: читати документи, шукати в базі, працювати з API, аналізувати код?
- Визначте тип доступу. Це читання даних, виконання дій чи обидва сценарії?
- Розділіть можливості. Що має бути інструментом, що ресурсом, а що готовим промптом?
- Оберіть транспорт. Для локального процесу логічний
stdio, для віддаленого сервера — Streamable HTTP. - Продумайте авторизацію. Для HTTP-підключень врахуйте OAuth, HTTPS, призначення токенів і PKCE.
- Обмежте права. Не відкривайте більше, ніж потрібно для конкретного сценарію.
- Передбачте підтвердження. Якщо інструмент може змінити дані або виконати значущу дію, користувач має розуміти, що саме буде зроблено.
- Перевірте обробку помилок. MCP працює через структуровані повідомлення, тому важливо коректно обробляти не лише успішні відповіді, а й помилки.
- Перевірте версію специфікації. MCP швидко розвивається, тому інтеграція має спиратися на конкретну редакцію документації або SDK.
Якщо застосунок не потребує зовнішніх інструментів, MCP може бути зайвим ускладненням. Наприклад, для простого чат-бота, який відповідає лише на основі введеного користувачем тексту, окрема MCP-архітектура не завжди потрібна.
Типові помилки під час роботи з MCP
Вважати MCP прямим доступом моделі до всього
Найнебезпечніше хибне уявлення — що MCP «підключає модель до всіх систем». Насправді доступ має бути явно описаний сервером, підключений клієнтом і контрольований хостом. Якщо відкрити надто широкі можливості, ризики створює не сам протокол, а неправильна реалізація.
Плутати tools і resources
Файл або документ не завжди має бути інструментом. Якщо потрібно лише надати контент, це ресурс. Якщо потрібно виконати дію або запит із параметрами, це інструмент. Неправильне розділення ускладнює контроль доступу й робить поведінку системи менш передбачуваною.
Обирати транспорт без урахування середовища
Для локального процесу доречний stdio, для віддаленого сервера — Streamable HTTP. Використання HTTP+SSE у новій реалізації без потреби сумісності може створити зайве технічне навантаження, оскільки цей підхід у поточній документації зберігається переважно для старіших реалізацій.
Передавати токени без перевірки призначення
Якщо сервер приймає токен, виданий для іншого сервісу, і просто пересилає його далі, виникає ризик некоректного використання доступу. Саме тому в специфікації авторизації наголошується на перевірці призначення токена й захисті від сценаріїв confused deputy.
Ігнорувати версії специфікації
MCP швидко розвивається. У документації та SDK можуть одночасно зустрічатися різні редакції: наприклад, архітектурні розділи редакції 2025-06-18 і авторизаційні положення редакції 2025-11-25. Для розробки важливо перевіряти, на яку саме версію специфікації або SDK спирається інтеграція.
Що може змінюватися в екосистемі MCP
MCP — відкритий протокол, який активно розвивається. Можуть змінюватися редакції специфікації, рекомендації SDK, підтримка транспортів, деталі авторизації та можливості конкретних платформ.
Наприклад, 21 травня 2025 року OpenAI оголосила підтримку віддалених MCP-серверів у Responses API та повідомила про приєднання до керівного комітету MCP. Це важлива подія для екосистеми, але вона не означає, що всі продукти OpenAI або всі моделі автоматично підтримують усі можливості MCP. Підтримка залежить від конкретного продукту, API та режиму роботи.
Тому під час планування інтеграції варто перевіряти не лише сам факт підтримки MCP, а й конкретні умови: які транспорти доступні, які типи серверів підтримуються, як працює авторизація і які обмеження має обрана платформа.
Короткий підсумок
MCP — це відкритий стандарт для підключення AI-застосунків до зовнішніх інструментів, даних і сервісів. Він не є моделлю, агентом або базою даних. Його роль — стандартизувати обмін повідомленнями між хостом, MCP-клієнтом і MCP-сервером.
Модель зазвичай не звертається до зовнішньої системи напряму. Вона пропонує виклик інструмента, хост контролює дозволи й контекст, MCP-клієнт надсилає запит серверу, а сервер повертає структурований результат. Сервери можуть надавати інструменти, ресурси та промпти; повідомлення базуються на JSON-RPC 2.0; для локальних процесів використовується stdio, а для віддалених серверів рекомендований Streamable HTTP.
Найбільша користь MCP — у проєктах, де ШІ має працювати з реальними зовнішніми даними: документами, файлами, репозиторіями, базами, API або CRM. Найбільші ризики виникають не через сам протокол, а через надмірні дозволи, неправильну авторизацію, плутанину між типами можливостей і використання застарілих підходів без потреби.
Оновлено 09.09.2026

