Блок 9 Презентація

MCP-сервери — підключення зовнішніх інструментів

Нотатки до презентації та структура виступу для Блоку 09.

Тривалість: ~10 хвилин Мета: Студенти розуміють, що таке MCP, як працюють сервери та як налаштувати Claude Code для використання зовнішніх інструментів.


Слайд 1: Проблема інтеграції

Ось ваш щоденний робочий процес як розробника:

  1. Прочитати GitHub issue
  2. Відкрити кодову базу в редакторі
  3. Внести зміни
  4. Запустити тести
  5. Запушити гілку
  6. Відкрити PR з посиланням на issue
  7. Відповісти на коментарі рев’ю
  8. Написати оновлення в 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 сервер — це невеликий процес, який:

  1. Надає набір інструментів (функцій, які Claude може викликати)
  2. Спілкується з Claude через протокол MCP
  3. Обробляє фактичні 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-сервера. Давайте його використаю.”

Що відбувається:

  1. Claude викликає інструмент list_issues з параметрами {owner: "your-name", repo: "ai-coderrank", state: "open", labels: ["bug"]}
  2. MCP-сервер отримує виклик
  3. Сервер робить фактичний GitHub API-запит
  4. Результати повертаються до Claude
  5. 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 та навігує по вашому робочому процесу управління проєктом — все з терміналу.


Готові перевірити свої знання?

Пройти тест →