MCP-сервери — підключення зовнішніх інструментів
Нотатки до презентації та структура виступу для Блоку 09.
Тривалість: ~10 хвилин Мета: Студенти розуміють, що таке MCP, як працюють сервери та як налаштувати Claude Code для використання зовнішніх інструментів.
Слайд 1: Проблема інтеграції
Ось ваш щоденний робочий процес як розробника:
- Прочитати GitHub issue
- Відкрити кодову базу в редакторі
- Внести зміни
- Запустити тести
- Запушити гілку
- Відкрити PR з посиланням на issue
- Відповісти на коментарі рев’ю
- Написати оновлення в Slack
Кроки 2-4? Claude Code справляється з ними чудово. Але кроки 1, 5-8? Claude не бачить ваші GitHub issues. Не може відкривати PR. Не знає, що Slack існує. Він замкнений у вашому локальному терміналі.
Це проблема інтеграції. Claude чудово працює з кодом, але код не існує у вакуумі. Він існує всередині робочого процесу, що охоплює кілька інструментів, платформ та сервісів. Без доступу до цих інструментів Claude — як шеф-кухар, який може приготувати що завгодно, але не може прочитати меню чи подати страву.
MCP вирішує цю проблему.
Слайд 2: Що таке MCP насправді
MCP = Model Context Protocol. Це відкритий стандарт, що визначає, як AI-моделі підключаються до зовнішніх інструментів та джерел даних.
Уявіть це як USB для AI. До USB кожен периферійний пристрій мав свій роз’єм — принтери, клавіатури, миші, камери використовували різні кабелі. USB сказав “один стандартний роз’єм, все підключається однаково.” MCP робить те саме для AI-інтеграцій.
До MCP: З MCP:
Claude ──custom code──> GitHub Claude ──MCP──> GitHub
Claude ──custom code──> Slack Claude ──MCP──> Slack
Claude ──custom code──> Jira Claude ──MCP──> Linear
Claude ──custom code──> Database Claude ──MCP──> PostgreSQL
(Кожна потребує побудови та підтримки кастомної інтеграції)
(Один протокол. Підключай будь-який сервер.)
MCP сервер — це невеликий процес, який:
- Надає набір інструментів (функцій, які Claude може викликати)
- Спілкується з Claude через протокол MCP
- Обробляє фактичні API-виклики до зовнішнього сервісу
З точки зору Claude, MCP-інструменти виглядають і працюють точно як вбудовані. Він не знає (і не турбується), що create_issue приходить від MCP-сервера, а не вбудований у бінарник. У нього просто є більше доступних інструментів.
Слайд 3: Доступні MCP-сервери
Екосистема MCP швидко зростає. Ось сервери, з якими ви зустрінетесь найчастіше:
Офіційні / добре підтримувані сервери
| Сервер | Що надає | Випадок використання |
|---|---|---|
| GitHub | Issues, PR, рев’ю, коментарі, управління репозиторієм | Повний GitHub-воркфлоу з Claude |
| Filesystem | Читання/запис файлів у додаткових директоріях | Доступ до файлів за межами проєкту |
| PostgreSQL | Запити та інспекція баз даних | Дебаг проблем з даними, дослідження схем |
| Slack | Надсилання повідомлень, читання каналів | Комунікація з командою |
| Linear | Issues, проєкти, цикли | Управління проєктами |
| Docker | Управління контейнерами | Білд, запуск, інспекція контейнерів |
| Puppeteer | Автоматизація браузера | Тестування, скріншоти |
Community-сервери
Спільнота створила 50+ MCP-серверів для всього, від Notion до Google Drive та AWS. Якість різна — перевіряйте кількість зірок на GitHub, дату останнього коміту та відповідальність мейнтейнера.
Де їх знайти: https://github.com/modelcontextprotocol/servers — офіційний список. Також перевірте https://mcp.so для пошукового каталогу.
Слайд 4: Конфігурація — .mcp.json
MCP-сервери налаштовуються у JSON-файлі. Ось структура:
{
"mcpServers": {
"github": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/server-github"
],
"env": {
"GITHUB_PERSONAL_ACCESS_TOKEN": "<your-token>"
}
},
"filesystem": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/server-filesystem",
"/path/to/allowed/directory"
]
}
}
}
Кожен запис сервера має:
command— що запускати (зазвичайnpxдля Node-based серверів)args— аргументи, що передаються команді (назва пакета плюс специфічна конфігурація сервера)env(опціонально) — змінні оточення, які потрібні серверу (API-токени тощо)
Цей файл живе як .mcp.json для конфігурації на рівні проєкту. Конфігурація на рівні користувача зберігається у ~/.claude.json (керується автоматично через claude mcp add --scope user).
Коли Claude Code запускається (або коли ви перезапускаєте сесію), він запускає кожен налаштований MCP-сервер як фоновий процес. Сервери працюють протягом усієї сесії.
Слайд 5: Як Claude використовує MCP-інструменти
Після налаштування MCP-сервера його інструменти автоматично з’являються у наборі Claude. Ось як це виглядає на практиці:
Ви кажете: “Перелічи всі відкриті issues на репозиторії ai-coderrank з міткою bug”
Claude думає: “У мене є інструмент list_issues від GitHub MCP-сервера. Давайте його використаю.”
Що відбувається:
- Claude викликає інструмент
list_issuesз параметрами{owner: "your-name", repo: "ai-coderrank", state: "open", labels: ["bug"]} - MCP-сервер отримує виклик
- Сервер робить фактичний GitHub API-запит
- Результати повертаються до Claude
- Claude представляє issues вам у зручному форматі
Ви не писали жодного коду. Не налаштовували жодних API-викликів. Ви просто поставили питання, і Claude використав правильний інструмент, щоб відповісти.
Той самий потік працює для створення issues, коментування PR, читання файлів з інших директорій, запитів до баз даних — будь-якого інструмента, який надає будь-який налаштований MCP-сервер.
Слайд 6: Дозволи — контроль доступу MCP
Ось в чому справа, коли даєте Claude доступ до вашого GitHub-акаунту: можливо, ви не хочете, щоб він робив все. Може, вам нормально, що він читає issues, але некомфортно, що він пушить код. Може, він може переглядати PR, але не повинен їх мержити.
Саме тут допомагають дозволи. Команда /permissions у Claude Code показує та керує доступом до інструментів:
> /permissions
Allowed:
- mcp__github__list_issues
- mcp__github__get_issue
- mcp__github__create_issue
- mcp__github__list_pull_requests
Denied:
- mcp__github__merge_pull_request
- mcp__github__delete_branch
MCP-інструменти слідують конвенції іменування mcp__<server>__<tool>. Ви можете дозволити або заборонити кожен окремо, або використовувати патерни:
- Дозволити всі GitHub-операції читання:
mcp__github__get_*,mcp__github__list_* - Заблокувати всі деструктивні операції: заборонити
mcp__github__delete_*,mcp__github__merge_*
Це дає вам гранулярний контроль. Claude може бути корисним асистентом, який читає issues та відкриває PR, без можливості мержити в main або видаляти гілки.
Правило: Починайте з доступу лише для читання. Додавайте дозволи на запис по мірі зростання довіри. Ніколи не автоматично схвалюйте деструктивні операції.
Ключові висновки
| Концепція | Що це | Чому це важливо |
|---|---|---|
| MCP | Model Context Protocol — стандарт плагінів для AI | Один протокол для підключення будь-якого інструмента |
| MCP-сервер | Процес, що надає інструменти через MCP | Кожен сервер додає можливості Claude |
.mcp.json |
Конфігураційний файл MCP | Де ви оголошуєте, які сервери запускати |
| MCP-інструменти | Функції, що надаються MCP-серверами | Claude викликає їх як вбудовані інструменти |
/permissions |
Управління доступом до інструментів | Контроль того, що саме може робити Claude |
mcp__server__tool |
Конвенція іменування MCP-інструментів | Використовується для гранулярних правил дозволів |
Перехід: Час все підключити. Зараз ви з’єднаєте Claude з GitHub і побачите, як він створює issues, коментує PR та навігує по вашому робочому процесу управління проєктом — все з терміналу.
Готові перевірити свої знання?
Пройти тест →