Що таке MCP? Model Context Protocol — пояснення

Відкритий стандарт, що підключає AI models до інструментів, файлів і сервісів — уявіть USB-C для AI інтеграцій

8 хв читання Оновлено: квітень 2026

🔌 Що таке MCP?

The Model Context Protocol (MCP) це відкритий стандарт, опублікований Anthropic у грудні 2024 року, який визначає універсальний інтерфейс для підключення моделей ШІ до зовнішніх інструментів, джерел даних і сервісів. До MCP кожна інтеграція ШІ була індивідуальною реалізацією. MCP стандартизує, як AI-клієнти спілкуються із зовнішніми можливостями — тож одна інтеграція працює з будь-якою сумісною системою ШІ.

MCP — це клієнт-серверний протокол: MCP клієнти це системи ШІ (наприклад, Claude, Cursor, VS Code з Copilot), які хочуть використовувати зовнішні можливості. MCP сервери це сервіси, що надають ці можливості (GitHub, база даних, файловий простір, веб-браузер) через стандартизований API, який будь-який MCP клієнт може використовувати.

💡 Ключовий висновок: MCP не робить ШІ розумнішим — воно робить ШІ краще підключеним. Інтелект залишається в моделі; 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

Потік комунікації

  1. Ініціалізація: Клієнт підключається до сервера, обмінюється версією протоколу та можливостями
  2. Виявлення: Клієнт запитує список доступних інструментів, ресурсів і підказок
  3. Виклик: Модель ШІ вирішує викликати інструмент; клієнт надсилає запит на сервер
  4. Повернення: Сервер виконує дію і повертає структуровані результати клієнту
  5. Продовження: Модель ШІ використовує результати і продовжує міркування

Параметри транспорту

TransportНайкраще дляNotes
stdio Локальні інструменти, інтеграції CLI Клієнт запускає сервер як підпроцес; найпростіша налаштування
HTTP + SSE Віддалені/хмарні сервіси, спільні команди Сервер працює автономно; підтримує auth headers
WebSocket Двонаправлений в реальному часі (чернетка) Запропоновано для сценаріїв стрімінгу

🔄 MCP проти Function Calling

Function calling (використання інструментів) — це функція, вбудована в певні AI API — OpenAI, Anthropic, Google — яка дозволяє визначати власні функції, які модель може викликати. MCP — це шар над або поруч із function calling, що стандартизує як ці функції виявляються і підключаються.

Function CallingMCP
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-серверів: The офіційний репозиторій MCP-серверів і спільнотні реєстри, як mcp.so, перераховують сотні доступних серверів.

🚀 Початок роботи з 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 — надання моделям ШІ доступу до інструментів, файлів і сервісів — також вводить ризики безпеки, які розробники повинні передбачати.

RiskDescriptionMitigation
Ін’єкція підказок через MCP Шкідливий вміст у результатах інструментів маніпулює ШІ Очищуйте (sanitize) вивід інструментів; використовуйте окремі моделі для міркування і дій
Надмірно привілейовані сервери MCP-сервер має більше прав, ніж потрібно Принцип найменших привілеїв; де можливо — лише для читання
Проблема «заплутаного довірителя» (confused deputy) ШІ діє від імені зловмисника без відома користувача HITL-підтвердження для руйнівних/необоротних дій
Ланцюг постачання серверів Шкідливий сторонній MCP-сервер викрадає дані Використовуйте лише довірені, перевірені сервери; переглядайте код серверів
⚠️ Ніколи не надавайте MCP-серверам доступ, який ви не дали б стажеру-розробнику. Якщо ви не дозволили б новому працівнику запускати довільні SQL-запити до бази даних, не давайте вашому MCP-серверу необмеженого доступу до бази. Проєктуйте дозволи MCP-сервера так само ретельно, як будь-який API.

Для глибшого занурення у вразливості безпеки ШІ — включаючи те, як ін’єкція підказок може бути зброєю через результати інструментів MCP — див. наш посібник: Пояснення ін’єкції підказок.