Розуміння MCP та його значення
Оскільки AI Агенти та помічники стають дедалі важливішими для сучасних застосунків та досвіду, потреба у безперебійній та безпечній інтеграції із зовнішніми інструментами та джерелами даних є критичнішою, ніж будь-коли. Протокол Контексту Моделі (MCP) постає як ключовий відкритий стандарт, що уможливлює ці інтеграції, дозволяючи AI моделям взаємодіяти з API, базами даних та іншими сервісами у послідовний та масштабований спосіб.
Розуміння MCP
MCP використовує клієнт-хост-серверну архітектуру, побудовану на JSON-RPC 2.0 для обміну повідомленнями. Комунікація між клієнтами та серверами відбувається через визначені транспортні рівні, переважно:
- stdio: Стандартний ввід/вивід, що підходить для ефективної комунікації, коли клієнт і сервер працюють на одній машині.
- HTTP з Server-Sent Events (SSE): Використовує HTTP POST для повідомлень від клієнта до сервера та SSE для повідомлень від сервера до клієнта, забезпечуючи комунікацію через мережі, включаючи віддалені сервери.
Чому MCP має значення
Хоча великі мовні моделі (LLM) є потужними, їхня корисність часто обмежена їхньою нездатністю отримувати доступ до даних у реальному часі або власних даних. Традиційно інтеграція нових джерел даних або інструментів вимагала спеціальних конекторів/реалізацій та значних інженерних зусиль. MCP вирішує цю проблему, надаючи уніфікований протокол для підключення агентів як до локальних, так і до віддалених джерел даних, уніфікуючи та спрощуючи інтеграції.
Використання Azure API Management для віддалених MCP серверів
Azure API Management є повністю керованою платформою для публікації, захисту та моніторингу API. Розглядаючи кінцеві точки MCP сервера як інші внутрішні API, організації можуть застосовувати знайомі засоби керування, безпеки та операційного контролю. З прийняттям MCP потреба в надійному управлінні цими внутрішніми сервісами зростатиме. API Management зберігає важливу роль в управлінні цими базовими активами шляхом:
- Застосування засобів контролю безпеки для захисту внутрішніх ресурсів.
- Забезпечення надійності.
- Ефективного моніторингу та усунення несправностей за допомогою відстеження запитів та потоку контексту.
Практичний приклад: Автоматизація Тріажу Проблем
Щоб слідкувати за цим сценарієм, будь ласка, ознайомтеся з лабораторією MCP, доступною за посиланням AI-Gateway/labs/model-context-protocol.
Перейдемо від теорії до практики, дослідивши, як MCP, Azure API Management (APIM) та GitHub Copilot можуть трансформувати типовий інженерний робочий процес. Уявіть, що ви інженерний менеджер, який прагне оптимізувати процес тріажу проблем вашої команди, зменшивши кількість ручних кроків та підвищивши ефективність.
Приклад робочого процесу:
- Інженери реєструють помилки/запити на нові функції як GitHub issues.
- Після ручного перегляду у ServiceNow створюється відповідний інцидентний тікет.
Ця ручна передача є неефективною та схильною до помилок. Давайте подивимося, як ми можемо автоматизувати цей процес, безпечно підключивши GitHub та ServiceNow, дозволивши AI Агенту (GitHub Copilot у VS Code) обробляти завдання тріажу від вашого імені.
Значною проблемою цієї інтеграції є безпечне керування делегованим доступом до внутрішніх API, таких як GitHub та ServiceNow, з вашого MCP сервера. Менеджер облікових даних Azure API Management вирішує цю проблему, централізуючи безпечне зберігання облікових даних та сприяючи безпечному створенню підключень до ваших сторонніх API.
Створення та розгортання ваших MCP серверів
Ми почнемо зі створення двох MCP серверів:
1. GitHub Issues MCP Server
Надає інструменти для аутентифікації в GitHub (authorize_github), отримання інформації про користувача (get_user) та переліку issues для вказаного репозиторію (list_issues).
2. ServiceNow Incidents MCP Server
Надає інструменти для аутентифікації в ServiceNow (authorize_servicenow), переліку існуючих інцидентів (list_incidents) та створення нових інцидентів (create_incident).
Ми використовуємо Azure API Management для захисту обох MCP серверів, які побудовані за допомогою Azure Container Apps. Менеджер облікових даних Azure API Management централізує безпечне зберігання облікових даних та сприяє безпечному створенню підключень до ваших сторонніх API.
Авторизація Клієнта:
Ви можете використовувати API Management підписку для генерації ключів, що надають клієнтам доступ до цих API.
Додатково, для підвищення безпеки кінцевих точок /sse та /messages, ми застосовуємо політику validate-jwt, щоб гарантувати, що лише клієнти, які надають дійсний JWT, можуть отримати доступ до цих кінцевих точок, запобігаючи несанкціонованому доступу. (див.: AI-Gateway/labs/model-context-protocol/src/github/apim-api/auth-client-policy.xml)
Після реєстрації OAuth-застосунків у GitHub та ServiceNow, ми оновлюємо менеджер облікових даних APIM відповідними Client IDs та Client Secrets. Це дозволяє APIM виконувати OAuth-потоки від імені користувачів, безпечно зберігаючи та керуючи токенами для внутрішніх викликів до GitHub та ServiceNow.
Підключення вашого MCP Сервера у VS Code
Після розгортання та захисту ваших MCP серверів за допомогою Azure API Management, наступним кроком є їх підключення до вашого робочого процесу розробки. Visual Studio Code тепер підтримує MCP, дозволяючи режиму агента GitHub Copilot підключатися до будь-якого сумісного з MCP сервера та розширювати його можливості.
1. Відкрийте палітру команд і введіть MCP: Add Server ...
2. Виберіть тип сервера HTTP (HTTP або Server-Sent Events).
3. Вставте URL сервера.
4. Вкажіть ID сервера.
Цей процес автоматично оновлює ваш settings.json конфігурацією MCP сервера.
Після додавання GitHub Copilot може підключатися до ваших MCP серверів та отримувати доступ до визначених інструментів, уможливлюючи агентні робочі процеси, такі як тріаж та автоматизація проблем. Ви можете повторити ці кроки, щоб додати ServiceNow MCP Server.
Розуміння Аутентифікації та Авторизації за допомогою Менеджера Облікових Даних
Коли користувач ініціює робочий процес аутентифікації (наприклад, через інструмент authorize_github), GitHub Copilot запускає MCP сервер для генерації запиту на авторизацію та унікальної URL-адреси для входу. Користувача перенаправляють на сторінку згоди, де їхній зареєстрований OAuth-застосунок запитує дозволи на доступ до їхнього облікового запису GitHub. Azure API Management виступає як безпечний посередник, керуючи потоком OAuth та зберіганням токенів.
Потік authorize_github:
- Крок 1 — Ініціація підключення: Агент GitHub Copilot викликає sse-підключення до API Management через MCP Client (VS Code).
- Крок 2 — Виявлення інструментів: APIM пересилає запит на GitHub MCP Server, який відповідає доступними інструментами.
- Крок 3 — Запит на авторизацію: GitHub Copilot вибирає та виконує інструмент authorize_github. MCP сервер генерує authorization_id для сеансу чату.
- Крок 4 — Згода користувача: Якщо це перший вхід, APIM запитує URL-адресу перенаправлення для входу з MCP сервера.
- MCP сервер надсилає URL-адресу входу клієнту, пропонуючи користувачеві пройти аутентифікацію в GitHub.
- Після успішного входу GitHub перенаправляє клієнта з кодом авторизації.
- APIM обмінює код на токени доступу та оновлення від GitHub.
- APIM безпечно зберігає токен та створює список контролю доступу (ACL) для суб’єкта-служби.
Ознайомтеся з логікою Python для реалізації: AI-Gateway/labs/model-context-protocol/src/github/mcp-server/mcp-server.py.
Розуміння Виклику Інструментів за допомогою Базових API в API Management
Використовуючи інструмент list_issues:
- Підтвердження підключення: APIM підтверджує підключення до MCP Client.
- Отримання issues:
- MCP Client запитує issues у MCP сервера.
- MCP Server додає authorization_id як заголовок та пересилає запит до APIM.
- Список issues повертається агенту.
Ви можете використовувати той самий процес, щоб додати ServiceNow MCP Server. Після підключення обох серверів GitHub Copilot Agent може витягувати issues з приватного репозиторію в GitHub та створювати нові інциденти в ServiceNow, автоматизуючи ваш робочий процес тріажу. Ви можете визначити додаткові інструменти, такі як suggest_assignee, assign_engineer, update_incident_status, notify_engineer, request_feedback та інші, щоб продемонструвати справді замкнутий, автоматизований інженерний робочий процес — від створення issue до вирішення та отримання відгуку.
Перегляньте цю коротку демонстрацію, що показує весь процес.
Підсумок
Azure API Management (APIM) є важливим інструментом для корпоративних клієнтів, які прагнуть інтегрувати AI моделі із зовнішніми інструментами за допомогою Протоколу Контексту Моделі (MCP). Я продемонстрував, як менеджер облікових даних Azure API Management вирішує проблему безпечного створення підключень до ваших внутрішніх API. Інтегруючи MCP сервери з VS Code та використовуючи APIM для OAuth-потоків та керування токенами, ви можете забезпечити безпечну, агентну автоматизацію у всіх ваших інженерних інструментах. Цей підхід не лише оптимізує такі робочі процеси, як тріаж проблем та створення інцидентів, але й забезпечує безпеку та керування корпоративного рівня для всіх API.
1 коментар
Додати коментар Підписатись на коментаріВідписатись від коментарів