🔌 Що таке MCP?
The Model Context Protocol (MCP) це відкритий стандарт, опублікований Anthropic у грудні 2024 року, який визначає універсальний інтерфейс для підключення моделей ШІ до зовнішніх інструментів, джерел даних і сервісів. До MCP кожна інтеграція ШІ була індивідуальною реалізацією. MCP стандартизує, як AI-клієнти спілкуються із зовнішніми можливостями — тож одна інтеграція працює з будь-якою сумісною системою ШІ.
MCP — це клієнт-серверний протокол: MCP клієнти це системи ШІ (наприклад, Claude, Cursor, VS Code з Copilot), які хочуть використовувати зовнішні можливості. MCP сервери це сервіси, що надають ці можливості (GitHub, база даних, файловий простір, веб-браузер) через стандартизований API, який будь-який MCP клієнт може використовувати.
🔋 Метафора USB-C
До USB-C кожен пристрій мав свій пропрієтарний роз’єм — зарядний пристрій для телефону не підходив до ноутбука, кабель для дисплея не працював із пристроями зберігання. USB-C вирішив це одним універсальним стандартом: один порт, один кабель, безліч пристроїв.
Інтеграції ШІ до MCP були тією ж плутаниною. Підключення Claude до GitHub вимагало спеціального коду. Підключення GPT-4 до тієї ж GitHub API вимагало іншого спеціального коду. Додавання нового інструменту означало перебудову інтеграцій з нуля для кожної платформи ШІ.
MCP — це USB-C для ШІ. Один стандарт:
- Побудуйте MCP-сервер один раз — будь-який MCP-клієнт може його використовувати
- Прийміть нову модель ШІ — ваші існуючі MCP-сервери працюють негайно
- Екосистема MCP-серверів зростає незалежно від розробки моделей ШІ
⚙️ Як працює MCP
MCP використовує протокол JSON-RPC 2.0 поверх транспортного шару (stdio для локальних серверів, HTTP/SSE для віддалених серверів). Комунікація слідує життєвому циклу ініціалізації, виявлення можливостей та обробки запитів.
Три основні примітиви
| Primitive | Що він експонує | Example |
|---|---|---|
| Tools | Функції, які модель може викликати (керовані моделлю) | search_github_issues, run_sql_query, send_email |
| Resources | Дані, які модель може читати (керовані додатком) | file:///workspace/src, db://customers/schema |
| Prompts | Повторно використовувані шаблони підказок (керуються користувачем) | code-review, summarize-pr, explain-error |
Потік комунікації
- Ініціалізація: Клієнт підключається до сервера, обмінюється версією протоколу та можливостями
- Виявлення: Клієнт запитує список доступних інструментів, ресурсів і підказок
- Виклик: Модель ШІ вирішує викликати інструмент; клієнт надсилає запит на сервер
- Повернення: Сервер виконує дію і повертає структуровані результати клієнту
- Продовження: Модель ШІ використовує результати і продовжує міркування
Параметри транспорту
| Transport | Найкраще для | Notes |
|---|---|---|
| stdio | Локальні інструменти, інтеграції CLI | Клієнт запускає сервер як підпроцес; найпростіша налаштування |
| HTTP + SSE | Віддалені/хмарні сервіси, спільні команди | Сервер працює автономно; підтримує auth headers |
| WebSocket | Двонаправлений в реальному часі (чернетка) | Запропоновано для сценаріїв стрімінгу |
🔄 MCP проти Function Calling
Function calling (використання інструментів) — це функція, вбудована в певні AI API — OpenAI, Anthropic, Google — яка дозволяє визначати власні функції, які модель може викликати. MCP — це шар над або поруч із function calling, що стандартизує як ці функції виявляються і підключаються.
| Function Calling | MCP | |
|---|---|---|
| Scope | API-специфічне, на запит | Кросплатформність, стандартизовано |
| Discovery | Жорстко вбудоване в ваш API виклик | Динамічне — сервер рекламуватиме можливості |
| Portability | Прив’язане до одного провайдера ШІ | Працює з будь-яким клієнтом, сумісним з MCP |
| Resources | Не стандартизовано | Первинна примітива (файли, БД, URI) |
| Найкраще для | Прості випадки використання для одного провайдера | Системи виробництва з багатьма інструментами та моделями |
На практиці MCP-сервери часто використовують function calling внутрішньо — MCP надає шар виявлення та підключення, тоді як function calling обробляє фактичний виклик LLM до інструменту.
🏢 Хто підтримує MCP
Впровадження MCP швидко зросло з моменту запуску в грудні 2024 року. Станом на квітень 2026 року екосистема включає:
AI-клієнти з підтримкою MCP
- Claude (Anthropic) — рідна підтримка MCP в Claude.ai і Claude Code
- Cursor — MCP-сервери для коду та допомоги розробникам
- VS Code (GitHub Copilot) — інтеграція MCP в agent mode
- Windsurf (Codeium) — підтримка MCP-сервера
- Continue.dev — open-source IDE асистент з MCP
Популярні MCP-сервери
- Filesystem — читання/запис локальних файлів (офіційний Anthropic)
- GitHub — репозиторії, PR, issues, пошук коду
- PostgreSQL / SQLite — запитування бази даних та дослідження схеми
- Brave Search / Exa — веб-пошук без API ключів
- Puppeteer / Playwright — автоматизація браузера
- Slack / Linear / Notion — інтеграції інструментів продуктивності
🚀 Початок роботи з MCP
Варіант 1: Використати існуючі MCP-сервери (5 хвилин)
Найшвидший спосіб випробувати MCP — використовувати Claude Desktop з готовими серверами. Редагуйте ваш конфіг Claude Desktop у ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"filesystem": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-filesystem", "/Users/yourname/Documents"]
},
"github": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-github"],
"env": { "GITHUB_PERSONAL_ACCESS_TOKEN": "ghp_..." }
}
}
} Варіант 2: Побудувати MCP-сервер (30 хвилин)
Офіційні SDK доступні для TypeScript, Python і Kotlin:
// TypeScript MCP server example
import { Server } from "@modelcontextprotocol/sdk/server/index.js";
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
const server = new Server({ name: "my-server", version: "1.0.0" });
server.setRequestHandler("tools/list", async () => ({
tools: [{
name: "get_weather",
description: "Get current weather for a city",
inputSchema: {
type: "object",
properties: { city: { type: "string" } },
required: ["city"]
}
}]
}));
server.setRequestHandler("tools/call", async (request) => {
const { city } = request.params.arguments;
// ... fetch weather data
return { content: [{ type: "text", text: `Weather in ${city}: sunny, 22°C` }] };
});
const transport = new StdioServerTransport();
await server.connect(transport); 🔐 Міркування з безпеки MCP
Сила MCP — надання моделям ШІ доступу до інструментів, файлів і сервісів — також вводить ризики безпеки, які розробники повинні передбачати.
| Risk | Description | Mitigation |
|---|---|---|
| Ін’єкція підказок через MCP | Шкідливий вміст у результатах інструментів маніпулює ШІ | Очищуйте (sanitize) вивід інструментів; використовуйте окремі моделі для міркування і дій |
| Надмірно привілейовані сервери | MCP-сервер має більше прав, ніж потрібно | Принцип найменших привілеїв; де можливо — лише для читання |
| Проблема «заплутаного довірителя» (confused deputy) | ШІ діє від імені зловмисника без відома користувача | HITL-підтвердження для руйнівних/необоротних дій |
| Ланцюг постачання серверів | Шкідливий сторонній MCP-сервер викрадає дані | Використовуйте лише довірені, перевірені сервери; переглядайте код серверів |
Для глибшого занурення у вразливості безпеки ШІ — включаючи те, як ін’єкція підказок може бути зброєю через результати інструментів MCP — див. наш посібник: Пояснення ін’єкції підказок.