Технічний огляд Remote GitHub MCP Server: архітектура та принципи роботи

💡 Усі статті, обговорення, новини про AI — в одному місці. Приєднуйтесь до AI спільноти!

Для ефективної роботи AI-асистенти, такі як GitHub Copilot, потребують доступу до контексту розробника: кодової бази, списку задач, пул-реквестів тощо. Щоб стандартизувати цей доступ, було створено Model Context Protocol (MCP). Нещодавно GitHub представив Remote GitHub MCP Server — хмарну реалізацію MCP-провайдера, що пропонує альтернативу локальному розгортанню та централізує керування доступом до даних GitHub.

Ця стаття розглядає архітектурні відмінності між локальним та віддаленим серверами, протоколи автентифікації та поточні обмеження інтеграції.

Репозиторій проєкту

Основи: Model Context Protocol (MCP)

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

  • AI Host (клієнт): Інструмент, наприклад, GitHub Copilot в IDE, який потребує даних.
  • MCP Server (провайдер): Сервіс, який надає доступ до інструментів та даних за визначеним протоколом (наприклад, доступ до API GitHub).

Такий підхід дозволяє AI-хостам бути агностичними до джерела даних. Достатньо підключити новий MCP-сервер, щоб навчити асистента працювати з новими інструментами, не змінюючи його внутрішню логіку. GitHub MCP Server є конкретною реалізацією такого провайдера для екосистеми GitHub.

Архітектура: локальний vs. віддалений сервер

Розробники можуть обирати між двома моделями розгортання MCP-сервера.

1. Локальний сервер (Local Server) Це open-source застосунок, який розробник запускає на власній машині.

  • Принцип роботи: Сервер піднімається на localhost. AI-хост (наприклад, Copilot в JetBrains) звертається до цього локального ендпоінту для отримання даних.
  • Автентифікація: Зазвичай використовує Personal Access Tokens (PAT), які зберігаються локально.
  • Оновлення: Потребує ручного оновлення версії шляхом завантаження з репозиторію.
  • Сценарій використання: Середовища, що не підтримують віддалені MCP-сервери, або коли потрібен повний контроль над процесом.

2. Віддалений сервер (Remote Server) Це керований сервіс (managed service), розміщений на інфраструктурі GitHub.

  • Принцип роботи: AI-хост підключається до публічного URL сервера. Це усуває необхідність локального розгортання.
  • Централізоване оновлення: Версія сервера та набір інструментів оновлюються на стороні GitHub, що гарантує актуальність функціоналу для всіх клієнтів.
  • Безпека та автентифікація: Основний метод — OAuth 2.0, що дозволяє гнучко керувати правами доступу (scopes) та інтегруватися з механізмами SSO (наприклад, SAML).

Протоколи автентифікації та безпека

Remote MCP Server підтримує два механізми автентифікації:

  • OAuth 2.0 (рекомендовано): Цей підхід є більш безпечним, оскільки дозволяє видавати тимчасові токени з чітко обмеженими правами. Це унеможливлює ситуацію, коли токен з надлишковими привілеями скомпрометовано.
    • SAML Enforcement: Інтеграція з системами єдиного входу для організацій.
    • PKCE (Proof Key for Code Exchange): Підтримка очікується найближчим часом. Це розширення для OAuth 2.0, що підвищує безпеку для публічних клієнтів (таких як десктопні застосунки) і є частиною нової специфікації авторизації MCP та стандарту OAuth 2.1.
  • Personal Access Tokens (PAT): Також підтримуються, але їх використання пов’язане з ризиками. PAT часто мають тривалий термін дії та широкі дозволи, що робить їх привабливою ціллю для зловмисників.

Поточні обмеження та вимоги до інтеграції

На етапі публічного прев’ю існують певні технічні обмеження:

  • Політика Editor Preview Policy: Для використання Remote MCP Server з Copilot у VS Code або Visual Studio, адміністратор організації GitHub повинен активувати цю політику. Вимога буде скасована після офіційного релізу (GA).
  • Сумісність IDE: Наразі Remote MCP Server підтримується лише в VS Code та Visual Studio. Інтеграції для IDE від JetBrains, а також Xcode та Eclipse, працюють тільки з локальним сервером. Підтримка віддаленого сервера для них у розробці.
  • Сторонні AI-хости: Підтримка віддалених серверів та OAuth 2.0 залежить від реалізації конкретного хоста. Необхідно звертатися до документації відповідного інструмента.

Практичне підключення

Процес підключення до віддаленого сервера виглядає так:

  1. Отримати URL сервера: URL доступний у репозиторії GitHub MCP server.
  2. Налаштувати AI-хост: В налаштуваннях сумісного хоста (наприклад, розширення для VS Code) вказати URL віддаленого сервера.
  3. Пройти потік OAuth 2.0: Хост перенаправить вас на сторінку автентифікації GitHub для підтвердження доступу та вибору необхідних прав (scopes).
  4. Почати роботу: Після успішної автентифікації хост зможе надсилати запити до сервера та використовувати інструменти GitHub.

Проєкт розвивається відкрито, і розробники заохочують спільноту долучатися з пропозиціями та звітами про помилки для подальшого вдосконалення специфікації та реалізації сервера.

👍ПодобаєтьсяСподобалось1
До обраногоВ обраному1
LinkedIn
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter

Підписатись на коментарі