Що таке 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: архітектура
↺ Результат повертається тим самим шляхом: сервер → клієнт → модель, яка вирішує, що робити далі.
Хост, клієнт і сервер
У 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 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.
У багатьох туторіалах ви побачите 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 на кшталт «робить пошук» або десятки схожих інструментів ускладнюють вибір. Пишіть коротко й конкретно, що інструмент робить і що повертає.
Які навички потрібні, щоб створювати MCP-сервери
Щоб підключати готові сервери, достатньо впевнено працювати з терміналом і конфігураційними файлами. Щоб писати власні — потрібні навички звичайного 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.
Хочете писати власні AI-інструменти на Python?
Курс Python Developer + AI від Prog Academy — програма, акредитована в ЄС: від першої програми й основ мови до ООП, баз даних, Django та AI-інструментів для розробника. Практичні завдання з перевіркою викладача, проєкт для портфоліо, онлайн у групі або індивідуально.
Дізнатися більше про курс Python
