Prog Academy
RU UA
Що таке MCP (Model Context Protocol): пояснення простими словами та перший MCP-сервер на Python
AI

Що таке MCP (Model Context Protocol): пояснення простими словами та перший MCP-сервер на Python

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

За два роки MCP пройшов шлях від експериментального протоколу Anthropic до галузевого стандарту: його підтримують Claude, ChatGPT, Gemini, Microsoft Copilot, Cursor і Visual Studio Code, а розвиває протокол Agentic AI Foundation під егідою Linux Foundation. Тому «вміє підключати MCP-сервери» поступово з'являється у вимогах до розробників, тестувальників і фахівців з AI-автоматизації.

У цій статті ми пояснимо, що таке MCP простими словами, як влаштовані MCP-клієнт і MCP-сервер, чим протокол відрізняється від звичайного API та RAG і що змінилося в актуальній специфікації 2026 року. А в практичній частині ви напишете власний MCP-сервер на Python — близько 70 рядків коду — і підключите його до Claude Desktop і Claude Code. Весь код у статті запущено й перевірено на актуальній версії офіційного SDK.

Коротко: що буде в статті

  • Що таке MCP і яку проблему він вирішує — з аналогією та схемою.
  • Архітектура: хост, клієнт, сервер, інструменти, ресурси, промпти й транспорти.
  • MCP, API, function calling і RAG: порівняльна таблиця.
  • Робочий MCP-сервер на Python, перевірка без AI і підключення до Claude.
  • Безпека, типові помилки та навички, потрібні для власних MCP-серверів.

Що таке MCP простими словами?

MCP (Model Context Protocol) — це відкритий протокол, який стандартизує, як AI-застосунки отримують доступ до зовнішніх даних і дій. Сама мовна модель знає лише те, що бачила під час навчання, і те, що ви передали їй у розмові. MCP дає їй «руки й очі»: можливість прочитати файл, знайти запис у базі, створити задачу чи надіслати повідомлення — через сервери, які ви самі обрали й підключили.

Аналогія: USB-C для штучного інтелекту

Автори протоколу порівнюють MCP з USB-C. Колись кожен пристрій мав власний роз'єм і власний кабель. USB-C замінив їх одним стандартом: ноутбук не знає, що саме до нього підключили — монітор, диск чи телефон, — але вміє з цим працювати. Так само AI-застосунок, що підтримує MCP, не потребує окремого коду для GitHub, Google Drive чи вашої CRM: достатньо підключити відповідний MCP-сервер.

Яку проблему вирішує MCP

До появи MCP розробники стикалися з так званою проблемою «N×M». Якщо є N AI-застосунків (чат-боти, IDE, агенти) і M сервісів (бази даних, таск-трекери, месенджери), то для повного покриття потрібно N×M окремих інтеграцій, кожна зі своїм форматом опису інструментів, своєю авторизацією й своїми помилками. MCP перетворює це на N+M: кожен застосунок один раз реалізує MCP-клієнт, кожен сервіс один раз отримує MCP-сервер — і вони працюють разом.

Коротка історія MCP

  • Листопад 2024 — Anthropic публікує MCP як відкритий протокол разом з SDK і першими серверами.
  • 2025 — підтримку додають ChatGPT, Gemini, Microsoft Copilot, Cursor, Visual Studio Code та інші продукти.
  • Грудень 2025 — Anthropic передає MCP в Agentic AI Foundation під егідою Linux Foundation. Співзасновники фонду — Anthropic, Block і OpenAI, підтримку надають Google, Microsoft, AWS, Cloudflare і Bloomberg. На той момент Anthropic повідомляла про понад 10 000 активних публічних MCP-серверів і понад 97 млн завантажень SDK для Python і TypeScript на місяць.
  • Липень 2026 — виходить специфікація 2026-07-28, найбільше оновлення протоколу: MCP стає stateless, тобто не зберігає сесію між запитами, — про це нижче.

Коротке визначення та пов'язані терміни є і в нашому глосарії: MCP, MCP-сервер, function calling.

Як працює MCP: архітектура

1. ХостAI-застосунок: Claude Desktop, Claude Code, IDE, ваш агент
2. MCP-клієнтОтримує список інструментів і передає виклики від моделі
3. ПротоколПовідомлення JSON-RPC через stdio або Streamable HTTP
4. MCP-серверПрограма з інструментами, ресурсами й промптами
5. Дані й сервісиФайли, база даних, GitHub, CRM, будь-яке API

↺ Результат повертається тим самим шляхом: сервер → клієнт → модель, яка вирішує, що робити далі.

Хост, клієнт і сервер

У MCP три ролі:

  • Хост — AI-застосунок, з яким працює людина: Claude Desktop, Claude Code, Cursor, VS Code або ваш власний агент. Хост керує моделлю й вирішує, які сервери підключено.
  • MCP-клієнт — компонент усередині хоста. На кожен підключений сервер хост створює окремого клієнта, який дізнається, що вміє сервер, і передає йому виклики.
  • MCP-сервер — окрема програма, що надає доступ до конкретних даних чи дій. Сервер може працювати локально на вашому комп'ютері або віддалено, як вебсервіс.

Важливий момент: сервер не викликає модель і не «думає». Він лише описує свої можливості та виконує запити. Рішення, який інструмент викликати й з якими параметрами, ухвалює модель у хості — так само, як в AI-агентах з function calling.

Три можливості сервера: інструменти, ресурси, промпти

МожливістьЩо цеХто ініціюєПриклад
Інструменти (tools)Функції, які виконують дію або обчисленняМодельСтворити задачу, знайти нотатки, виконати SQL-запит
Ресурси (resources)Дані для читання з власною адресою (URI)Застосунок або користувачТекст файлу, схема бази даних, запис із CRM
Промпти (prompts)Готові шаблони запитів з параметрамиКористувач«Підсумок нотаток за темою», «Код-рев'ю змін»

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

Транспорти: stdio і Streamable HTTP

Повідомлення між клієнтом і сервером передаються у форматі JSON-RPC 2.0. Для доставки специфікація визначає два стандартні транспорти:

  • stdio — хост запускає сервер як дочірній процес на вашому комп'ютері й обмінюється з ним повідомленнями через стандартні потоки вводу й виводу. Так працюють локальні сервери: доступ до файлів, локальної бази, інструментів розробника.
  • Streamable HTTP — сервер працює як вебсервіс за адресою на кшталт https://example.com/mcp. Так підключаються хмарні сервіси, часто з авторизацією через OAuth.

Старий транспорт HTTP+SSE має статус Deprecated — у нових проєктах його не використовують.

Що змінилося в специфікації 2026-07-28

Актуальна версія протоколу суттєво спростила його внутрішню роботу. Основні зміни:

  • Протокол став stateless. Зникли рукостискання initialize і заголовок сесії Mcp-Session-Id: кожен запит сам несе версію протоколу й можливості клієнта. Віддалені сервери стало простіше масштабувати й ставити за балансувальником навантаження.
  • Новий метод server/discover, через який сервер повідомляє підтримувані версії протоколу та свої можливості.
  • Запити з кількома етапами (Multi Round-Trip Requests). Якщо серверу бракує даних — наприклад, підтвердження від користувача, — він повертає проміжний результат із запитом, а клієнт повторює виклик з відповіддю.
  • Застаріли можливості Roots, Sampling і Logging. Вони ще працюють, але нові реалізації їх не додають: шляхи передають параметрами інструментів, а логи пишуть у stderr чи OpenTelemetry.

Для початківця головне ось що: туторіали 2025 року можуть показувати застарілий синтаксис. Офіційний Python SDK версії 2 реалізує нову специфікацію, і код у практичній частині написано саме для нього.

MCP, API, function calling і RAG: у чому різниця

Ці терміни часто плутають, хоча вони описують різні рівні однієї системи:

ПідхідЩо цеКоли потрібен
APIІнтерфейс конкретного сервісу для програмістів; у кожного сервісу свійБудь-яка інтеграція програм між собою
Function callingМеханізм моделі: замість тексту вона повертає запит «виклич функцію X з параметрами Y»Коли ви самі пишете агента й описуєте функції в коді
MCPСтандарт, як описати й передати такі функції та дані будь-якому AI-застосункуКоли інструменти мають працювати в різних клієнтах без переписування
RAGПошук релевантних фрагментів документів і додавання їх у промптКоли модель має відповідати на основі великої бази знань

Ці підходи не конкурують, а доповнюють один одного. MCP-сервер усередині звертається до звичайного API сервісу. Модель викликає інструменти MCP через той самий механізм function calling. А пошук по документах у стилі RAG можна оформити як MCP-інструмент search_docs і підключити до будь-якого клієнта. Як працює function calling без MCP, показано в туторіалі «Як створити AI-агента на Python»: там інструменти описані прямо в коді агента. MCP виносить їх в окремий сервер, який можна перевикористати.

Де вже використовують MCP

Клієнти. MCP підтримують Claude (вебверсія, Claude Desktop і Claude Code), ChatGPT, Gemini, Microsoft Copilot, Cursor, Visual Studio Code та багато інших AI-застосунків і фреймворків для агентів. Платформи автоматизації теж його підтримують: n8n уміє і підключатися до MCP-серверів, і сам виступати сервером — порівняння платформ є в статті «n8n vs Make vs Zapier».

Сервери. Готові MCP-сервери існують для файлової системи, Git і GitHub, баз даних (PostgreSQL, SQLite), браузерної автоматизації, Slack, Google Drive, Notion, Jira, Sentry, платіжних і хмарних сервісів. Багато компаній публікують офіційні сервери для своїх продуктів, а для пошуку є офіційний реєстр MCP-серверів.

Типові сценарії:

  • Розробка. AI-асистент в IDE читає задачу з таск-трекера, дивиться логи помилок у Sentry, перевіряє схему бази й готує зміни в коді.
  • Тестування. Агент через MCP-сервер браузерної автоматизації відкриває застосунок, проходить сценарій і описує знайдені баги.
  • Аналітика даних. Модель виконує SQL-запити до бази в режимі лише читання й будує висновки на реальних даних, а не на прикладах.
  • Бізнес-процеси. Асистент знаходить клієнта в CRM, перевіряє історію замовлень і готує відповідь, яку менеджер підтверджує перед надсиланням.

Ідеї MCP виходять і за межі десктопних застосунків. Google та Microsoft розробляють у спільноті W3C пропозицію WebMCP: вебсайти зможуть самі оголошувати інструменти для браузерних AI-агентів, щоб агентам не доводилося «клікати» по сторінці. Поки це ранній експериментальний проєкт, але напрям зрозумілий: інтерфейси для AI-агентів стають такою ж частиною продукту, як інтерфейси для людей.

AI

Хочете підключати AI до своїх сервісів і автоматизувати процеси?

На курсі AI Automation від Prog Academy ви працюєте з Claude Code, будуєте автоматизації в n8n і Make, створюєте Telegram-ботів з AI та особистого AI-асистента з підключенням сторонніх API.

Переглянути програму курсу

Практика: створюємо перший MCP-сервер на Python

Теорії достатньо — напишемо власний сервер. Він дасть AI-асистенту доступ до папки з навчальними нотатками й покаже всі три можливості MCP:

  • інструменти list_notes, search_notes і add_note — переглянути, знайти й створити нотатку;
  • ресурс notes://{name} — повний текст нотатки за назвою;
  • промпт weekly_review — шаблон «підсумуй, що я вивчив за темою».

Сервер працює лише з однією папкою, не дозволяє вийти за її межі через ../ і не перезаписує наявні нотатки. API-ключ не потрібен: сервер нічого не платить за модель, модель надає застосунок, до якого ви його підключите.

Крок 1. Python і віртуальне середовище

Офіційний SDK потребує Python 3.10 або новішого. Перевірте версію командою python3 --version (у Windows — python --version). Потім створіть папку проєкту й віртуальне середовище:

mkdir mcp-notes
cd mcp-notes
python3 -m venv .venv
source .venv/bin/activate

У Windows PowerShell:

mkdir mcp-notes
cd mcp-notes
python -m venv .venv
.venv\Scripts\Activate.ps1

Крок 2. Встановіть MCP SDK

pip install "mcp[cli]"

Додаток [cli] встановлює ще й консольну утиліту mcp для налагодження. Код у статті перевірено на версії SDK 2.3.0.

FastMCP тепер називається MCPServer

У багатьох туторіалах ви побачите from mcp.server.fastmcp import FastMCP. Це синтаксис першої версії SDK. У версії 2 клас перейменовано на MCPServer, і старий імпорт завершується помилкою ModuleNotFoundError. Якщо потрібно запустити старий код без змін, встановіть pip install "mcp<2".

Крок 3. Напишіть код сервера

Створіть файл notes_server.py:

"""MCP-сервер «Нотатки»: дає AI-асистенту доступ до папки з нотатками."""

import re
from datetime import date
from pathlib import Path

from mcp.server import MCPServer
from mcp.server.mcpserver.exceptions import ResourceNotFoundError, ToolError

# Сервер працює ТІЛЬКИ з цією папкою — поза нею він нічого не бачить.
NOTES_DIR = Path(__file__).parent / "notes"
NOTES_DIR.mkdir(exist_ok=True)

mcp = MCPServer("notes")


def note_path(name: str) -> Path | None:
    """Безпечний шлях до нотатки всередині NOTES_DIR або None, якщо назва недопустима."""
    # Лише літери, цифри, пробіл, '-' і '_': жодних '/' чи '..', щоб не вийти за межі папки.
    if not re.fullmatch(r"[\w\- ]{1,60}", name):
        return None
    return NOTES_DIR / f"{name.strip()}.md"


# ---------- Інструменти (tools): дії, які модель може виконати ----------

@mcp.tool()
def list_notes() -> list[str]:
    """Повертає назви всіх нотаток."""
    return sorted(p.stem for p in NOTES_DIR.glob("*.md"))


@mcp.tool()
def search_notes(query: str) -> list[str]:
    """Шукає нотатки, у тексті яких є query (без урахування регістру)."""
    query = query.strip().lower()
    if not query:
        raise ToolError("Порожній пошуковий запит")
    return sorted(
        p.stem for p in NOTES_DIR.glob("*.md")
        if query in p.read_text(encoding="utf-8").lower()
    )


@mcp.tool()
def add_note(name: str, text: str) -> str:
    """Створює нову нотатку. Існуючу нотатку не перезаписує."""
    path = note_path(name)
    if path is None:
        raise ToolError("Назва: лише літери, цифри, пробіл, '-' і '_', до 60 символів")
    if path.exists():
        raise ToolError(f"Нотатка «{name}» вже існує")
    path.write_text(f"# {name}\n\n{text}\n\n_Створено: {date.today()}_\n", encoding="utf-8")
    return f"Нотатку «{name}» збережено"


# ---------- Ресурс (resource): дані, які клієнт може прочитати ----------

@mcp.resource("notes://{name}")
def read_note(name: str) -> str:
    """Повний текст нотатки за її назвою."""
    path = note_path(name)
    if path is None or not path.exists():
        raise ResourceNotFoundError(f"Нотатку «{name}» не знайдено")
    return path.read_text(encoding="utf-8")


# ---------- Промпт (prompt): готовий шаблон запиту ----------

@mcp.prompt()
def weekly_review(topic: str) -> str:
    """Шаблон: підсумок нотаток за темою."""
    return (
        f"Знайди мої нотатки на тему «{topic}» інструментом search_notes, "
        "прочитай їх і склади короткий підсумок: що я вже вивчив, "
        "які питання залишилися відкритими і що повторити наступного тижня."
    )


if __name__ == "__main__":
    mcp.run()  # за замовчуванням — транспорт stdio

Як працює цей код

  • MCPServer("notes") створює сервер з назвою, яку побачить клієнт.
  • Декоратор @mcp.tool() перетворює звичайну функцію на MCP-інструмент. Описувати JSON Schema вручну не потрібно: SDK бере назви й типи параметрів з анотацій (query: str), а опис інструменту — з docstring. Саме цей опис читає модель, коли вирішує, який інструмент викликати, тому пишіть його зрозуміло.
  • @mcp.resource("notes://{name}") оголошує шаблон ресурсу: частина адреси {name} потрапляє в параметр функції.
  • @mcp.prompt() реєструє шаблон промпту з параметром topic.
  • ToolError — очікувана помилка. Її текст повертається моделі, і модель може виправити запит: обрати іншу назву чи уточнити пошук. Будь-який інший виняток SDK вважає збоєм і показує моделі лише загальне повідомлення.
  • Функція note_path — захист: назва нотатки проходить через регулярний вираз, тому шлях на кшталт ../../etc/passwd не пройде.
  • mcp.run() запускає сервер на транспорті stdio. Тому сервер ніколи не повинен писати у стандартний вивід через print(): stdout зайнятий повідомленнями протоколу. Для налагодження використовуйте logging — він пише в stderr.

Крок 4. Перевірте сервер без AI

Перш ніж підключати сервер до Claude, переконайтеся, що він працює. Найпростіше — написати маленький клієнт, який запустить сервер і викличе інструменти напряму. Створіть поруч файл test_client.py:

"""Перевірка MCP-сервера без AI: запускаємо його й викликаємо інструменти напряму."""

import asyncio
import sys

from mcp import Client, StdioServerParameters

server = StdioServerParameters(command=sys.executable, args=["notes_server.py"])


async def main():
    async with Client(server) as client:
        tools = await client.list_tools()
        print("Інструменти:", [t.name for t in tools.tools])

        result = await client.call_tool("add_note", {"name": "python-dict", "text": "Словник: dict, ключі унікальні."})
        print(result.content[0].text)

        result = await client.call_tool("search_notes", {"query": "словник"})
        print("Знайдено:", [block.text for block in result.content])

        note = await client.read_resource("notes://python-dict")
        print(note.contents[0].text)


asyncio.run(main())

Запустіть його:

python test_client.py

Очікуваний результат (дата буде сьогоднішньою):

Інструменти: ['list_notes', 'search_notes', 'add_note']
Нотатку «python-dict» збережено
Знайдено: ['python-dict']
# python-dict

Словник: dict, ключі унікальні.

_Створено: 2026-10-16_

Поруч зі скриптом з'явиться папка notes з файлом python-dict.md. Другий запуск покаже помилку «Нотатка «python-dict» вже існує» — так і має бути: сервер не перезаписує нотатки.

Альтернатива — візуальний налагоджувач MCP Inspector. Команда mcp dev notes_server.py відкриє його в браузері: там можна переглянути інструменти, ресурси й промпти та викликати їх вручну. Inspector запускається через npx, тому для нього потрібен встановлений Node.js.

Крок 5. Підключіть сервер до Claude Desktop

У Claude Desktop відкрийте Settings → Developer → Edit Config. Відкриється файл claude_desktop_config.json:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows: %APPDATA%\Claude\claude_desktop_config.json

Додайте сервер у розділ mcpServers. Шляхи мають бути абсолютними, а Python — саме з вашого віртуального середовища, де встановлено SDK. Для macOS (замініть you на ім'я свого користувача):

{
  "mcpServers": {
    "notes": {
      "command": "/Users/you/mcp-notes/.venv/bin/python",
      "args": ["/Users/you/mcp-notes/notes_server.py"]
    }
  }
}

Для Windows (зворотні слеші в JSON подвоюються):

{
  "mcpServers": {
    "notes": {
      "command": "C:\\Users\\you\\mcp-notes\\.venv\\Scripts\\python.exe",
      "args": ["C:\\Users\\you\\mcp-notes\\notes_server.py"]
    }
  }
}

Збережіть файл і повністю перезапустіть Claude Desktop. Сервер «notes» з'явиться в списку конекторів, а перед викликом його інструментів Claude проситиме вашого дозволу.

Крок 6. Підключіть сервер до Claude Code

У Claude Code сервер додається однією командою в терміналі. Усе після -- — це команда запуску сервера:

claude mcp add notes -- /Users/you/mcp-notes/.venv/bin/python /Users/you/mcp-notes/notes_server.py

Команда claude mcp list покаже підключені сервери, а команда /mcp всередині сесії Claude Code — їхній стан та інструменти. За замовчуванням сервер доступний лише в поточному проєкті; параметр --scope user робить його доступним у всіх ваших проєктах.

Перевірте результат

Спробуйте запити звичайною мовою:

  • «Створи нотатку python-loops: цикл for проходить по елементах послідовності, while — поки умова істинна».
  • «Які в мене є нотатки про словники?» — модель викличе search_notes.
  • «Підсумуй мої нотатки на тему Python» — або запустіть промпт weekly_review з меню застосунку.

Зверніть увагу: ви не писали жодного рядка коду для роботи з моделлю. Сервер лише описав, що він уміє, а рішення, коли й що викликати, ухвалює Claude. Цей самий сервер без змін підключається до будь-якого іншого клієнта з підтримкою MCP.

Як розвинути сервер далі

Додайте інструмент delete_note, перенесіть нотатки в SQLite, запустіть сервер як вебсервіс командою mcp run notes_server.py --transport streamable-http (за замовчуванням він стане доступним за адресою http://localhost:8000/mcp) або підключіть до інструментів зовнішнє API — наприклад, свій таск-трекер.

Безпека MCP: що важливо знати

MCP дає моделі реальний доступ до даних і дій, тому питання безпеки тут не формальність:

  • Сервер виконується з вашими правами. Локальний MCP-сервер може зробити все, що може ваш користувач у системі. Встановлюйте сервери лише з надійних джерел — офіційних репозиторіїв компаній чи перевірених авторів — і читайте код невідомих серверів перед запуском.
  • Мінімальні права. Давайте доступ лише до потрібних папок, використовуйте для бази даних користувача з правом лише на читання, а для API — токени з мінімальним набором дозволів.
  • Prompt injection. Шкідливі інструкції можуть прийти разом із даними: у тексті вебсторінки, листі, коментарі до задачі. Модель може сприйняти їх як команду. Тому дії, що змінюють або видаляють дані чи надсилають повідомлення, варто підтверджувати вручну.
  • Секрети — не в Git. API-ключі передавайте через змінні середовища (параметр env у конфігурації або -e у claude mcp add), а не записуйте у файли, які потрапляють у репозиторій.
  • Перевіряйте вхідні дані на сервері. Як у нашому прикладі: валідація назв, заборона перезапису, зрозумілі помилки. Модель не повинна мати змогу «обійти» обмеження, просто передавши незвичний аргумент.

Типові помилки початківців

Сервер не з'являється в Claude Desktop

Найчастіші причини: відносні шляхи в конфігурації, синтаксична помилка в JSON (зайва кома, одинарні зворотні слеші у Windows) або застосунок не перезапущено повністю. Логи MCP Claude Desktop пише в ~/Library/Logs/Claude на macOS і в %APPDATA%\Claude\logs у Windows: файл mcp-server-notes.log містить вивід вашого сервера.

ModuleNotFoundError: No module named 'mcp'

У конфігурації вказано системний Python, а SDK встановлено у віртуальне середовище. Вказуйте повний шлях до .venv/bin/python (або .venv\Scripts\python.exe у Windows).

No module named 'mcp.server.fastmcp'

Код написано для першої версії SDK. Замініть імпорт на from mcp.server import MCPServer або встановіть "mcp<2".

Помилка встановлення на старому Python

Повідомлення No matching distribution found for mcp зазвичай означає Python 3.9 або старіший. Встановіть Python 3.10+ і створіть віртуальне середовище заново.

print() ламає сервер

На транспорті stdio стандартний вивід зайнятий протоколом, тому зайвий print() псує повідомлення, і клієнт відключається. Пишіть налагоджувальні повідомлення через logging або в stderr.

Модель не викликає потрібний інструмент

Модель обирає інструменти за назвою й описом. Розмиті docstring на кшталт «робить пошук» або десятки схожих інструментів ускладнюють вибір. Пишіть коротко й конкретно, що інструмент робить і що повертає.

Щоб підключати готові сервери, достатньо впевнено працювати з терміналом і конфігураційними файлами. Щоб писати власні — потрібні навички звичайного Python-розробника:

  • Основи Python: змінні, умови, цикли, функції, словники та списки.
  • Анотації типів і docstring — з них SDK будує опис інструментів для моделі.
  • Робота з файлами, JSON і регулярними виразами — як у нашому прикладі.
  • Обробка винятків — щоб модель отримувала зрозумілі помилки, а не падіння сервера.
  • Робота з API та базами даних — більшість реальних MCP-серверів є «обгорткою» над API сервісу чи SQL-базою.
  • Віртуальні середовища та Git — щоб проєкт можна було відтворити на іншому комп'ютері. Як почати з Git, розповідає стаття «Git для початківців».

AI-асистент згенерує подібний сервер за хвилину, але перевірити його безпеку, знайти помилку в обробці шляху чи зрозуміти, чому клієнт відключається, може лише той, хто розуміє код. Почати можна з безкоштовного курсу Python. Для системного шляху з викладачем є курс Python Developer + AI: акредитована в ЄС програма на 4,5 місяця від основ мови до ООП, баз даних і Django, з модулем AI Start про AI-інструменти в роботі розробника. А якщо вас більше цікавить автоматизація бізнес-процесів за допомогою AI без глибокого програмування, подивіться курс AI Automation.

Переглянути програму курсу Python →

Часті запитання

Що таке MCP простими словами?

MCP (Model Context Protocol) — це відкритий стандарт, за яким AI-застосунок підключається до зовнішніх даних і сервісів: файлів, баз даних, таск-трекерів, CRM. Один раз написаний MCP-сервер працює з будь-яким клієнтом, що підтримує протокол, — Claude, ChatGPT, Cursor, VS Code та іншими. Часто його порівнюють з USB-C для AI: єдиний роз'єм замість окремого кабелю під кожен пристрій.

Хто створив MCP і чи він безкоштовний?

MCP представила компанія Anthropic наприкінці 2024 року як відкритий протокол. У грудні 2025 року Anthropic передала його в Agentic AI Foundation — фонд під егідою Linux Foundation, співзасновниками якого стали Anthropic, Block і OpenAI. Специфікація та офіційні SDK відкриті й безкоштовні.

Чим MCP відрізняється від звичайного API?

API — інтерфейс конкретного сервісу, у кожного він свій, і програміст заздалегідь читає документацію. MCP — спільний протокол поверх таких API: сервер описує свої інструменти так, щоб AI-модель сама зрозуміла, що вони роблять і з якими параметрами їх викликати. Усередині MCP-сервер часто звертається до звичайного API.

Чи потрібно вміти програмувати, щоб користуватися MCP?

Щоб підключити готовий MCP-сервер до Claude Desktop чи Claude Code, достатньо відредагувати конфігураційний файл або виконати одну команду. Програмування потрібне, щоб написати власний сервер — наприклад, для внутрішньої системи компанії, до якої немає готового конектора. Для цього достатньо базового Python: функції, типи, робота з файлами та JSON.

Яку мову програмування обрати для MCP-сервера?

Офіційні SDK є для Python, TypeScript, Java, Kotlin, C#, Go та інших мов. Для старту найпростіше взяти Python: сервер з кількома інструментами займає десятки рядків, а опис параметрів SDK будує автоматично з анотацій типів і docstring.

Чи безпечно підключати MCP-сервери?

MCP-сервер виконується з правами вашого користувача, тому підключайте лише сервери з надійних джерел, давайте мінімально потрібний доступ і не зберігайте секрети у файлах, які потрапляють у Git. Окремий ризик — prompt injection: шкідливі інструкції можуть прийти разом із даними, які сервер прочитав. Тому дії, що змінюють дані, варто підтверджувати вручну.

Що таке MCP-сервер і MCP-клієнт?

MCP-сервер — програма, яка надає AI-застосунку інструменти, ресурси й шаблони промптів: наприклад, доступ до папки з нотатками чи до бази даних. MCP-клієнт — компонент усередині AI-застосунку (хоста), який підключається до сервера, отримує список його можливостей і передає виклики від моделі. Один хост може одночасно працювати з багатьма серверами.

Висновок

MCP зробив для AI-застосунків те, що USB-C зробив для пристроїв: замість окремої інтеграції під кожну пару «застосунок — сервіс» з'явився спільний стандарт. Хост із моделлю вирішує, що робити, MCP-сервер надає інструменти, ресурси й промпти, а протокол поєднує їх незалежно від постачальника моделі. Головне, що варто винести зі статті: MCP-сервер — це звичайна програма з кількома функціями, а цінність їй надають дані й дії, до яких вона відкриває доступ, і обмеження, які ви в неї заклали.

Ви вже маєте робочий сервер на Python. Наступні кроки — підключити до нього власні дані, додати перевірку прав і спробувати віддалений транспорт. Кожен із цих кроків спирається на основи мови: функції, типи, винятки, роботу з файлами й API.

Py

Хочете писати власні AI-інструменти на Python?

Курс Python Developer + AI від Prog Academy — програма, акредитована в ЄС: від першої програми й основ мови до ООП, баз даних, Django та AI-інструментів для розробника. Практичні завдання з перевіркою викладача, проєкт для портфоліо, онлайн у групі або індивідуально.

Дізнатися більше про курс Python
Фото автора: Всеволод Євгієнко

Про автора

CEO та засновник Prog Academy

Розробник програмного забезпечення, фахівець з інформаційної безпеки та викладач Java. Керує Prog Academy і пише про програмування, дані та AI-інструменти.

Контакт

Записатися на консультацію

Вкажіть актуальний номер, ми зателефонуємо в будь яку країну :)