Skip to content

Latest commit

 

History

History
272 lines (178 loc) · 19.7 KB

File metadata and controls

272 lines (178 loc) · 19.7 KB

Практична реалізація

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

Чи розробляєте ви інтелектуальних помічників, інтегруєте ШІ у бізнес-процеси або створюєте інструменти для обробки даних, MCP забезпечує гнучку основу. Його мова-незалежний дизайн та офіційні SDK для популярних мов програмування роблять його доступним для широкого кола розробників. Використовуючи ці SDK, ви можете швидко створювати прототипи, ітерувати та масштабувати свої рішення на різних платформах і середовищах.

У наступних розділах ви знайдете практичні приклади, зразки коду та стратегії розгортання, які демонструють, як реалізувати MCP на C#, Java, TypeScript, JavaScript та Python. Ви також дізнаєтеся, як налагоджувати та тестувати MCP-сервери, керувати API та розгортати рішення в хмарі за допомогою Azure. Ці практичні ресурси створені, щоб прискорити ваше навчання і допомогти впевнено створювати надійні MCP-додатки, готові до виробництва.

Огляд

Цей урок зосереджений на практичних аспектах реалізації MCP на різних мовах програмування. Ми розглянемо, як використовувати MCP SDK на C#, Java, TypeScript, JavaScript та Python для створення надійних додатків, налагодження та тестування MCP-серверів, а також створення повторно використовуваних ресурсів, промптів і інструментів.

Цілі навчання

До кінця цього уроку ви зможете:

  • Реалізовувати MCP-рішення за допомогою офіційних SDK на різних мовах програмування
  • Систематично налагоджувати та тестувати MCP-сервери
  • Створювати та використовувати серверні функції (Resources, Prompts і Tools)
  • Проєктувати ефективні MCP-робочі процеси для складних завдань
  • Оптимізувати реалізації MCP для продуктивності та надійності

Офіційні SDK

Model Context Protocol пропонує офіційні SDK для кількох мов:

Робота з MCP SDK

У цьому розділі наведено практичні приклади реалізації MCP на різних мовах програмування. Зразки коду можна знайти в каталозі samples, організованому за мовами.

Доступні зразки

Репозиторій містить приклади реалізацій на таких мовах:

Кожен приклад демонструє ключові концепції MCP та шаблони реалізації для конкретної мови та екосистеми.

Основні функції сервера

MCP-сервери можуть реалізовувати будь-яке поєднання цих функцій:

Resources

Resources надають контекст і дані для користувача або моделі ШІ:

  • Репозиторії документів
  • Бази знань
  • Структуровані джерела даних
  • Файлові системи

Prompts

Prompts — це шаблонізовані повідомлення та робочі процеси для користувачів:

  • Попередньо визначені шаблони розмов
  • Керовані патерни взаємодії
  • Спеціалізовані структури діалогів

Tools

Tools — це функції, які модель ШІ може виконувати:

  • Утиліти для обробки даних
  • Інтеграції з зовнішніми API
  • Обчислювальні можливості
  • Функції пошуку

Приклади реалізації: C#

Офіційний репозиторій C# SDK містить кілька прикладів, що демонструють різні аспекти MCP:

  • Basic MCP Client: Простий приклад створення MCP-клієнта та виклику інструментів
  • Basic MCP Server: Мінімальна реалізація сервера з базовою реєстрацією інструментів
  • Advanced MCP Server: Повнофункціональний сервер з реєстрацією інструментів, автентифікацією та обробкою помилок
  • ASP.NET Integration: Приклади інтеграції з ASP.NET Core
  • Tool Implementation Patterns: Різні патерни реалізації інструментів з різним рівнем складності

MCP C# SDK знаходиться в прев’ю, і API можуть змінюватися. Ми будемо регулярно оновлювати цей блог у міру розвитку SDK.

Ключові функції

Для повних прикладів реалізації на C# відвідайте офіційний репозиторій зразків C# SDK

Приклад реалізації: Java

Java SDK пропонує надійні можливості реалізації MCP з корпоративними функціями.

Ключові функції

  • Інтеграція зі Spring Framework
  • Сильна типізація
  • Підтримка реактивного програмування
  • Комплексна обробка помилок

Для повного прикладу реалізації на Java дивіться Java sample у каталозі зразків.

Приклад реалізації: JavaScript

JavaScript SDK забезпечує легкий і гнучкий підхід до реалізації MCP.

Ключові функції

  • Підтримка Node.js та браузера
  • API на основі Promise
  • Легка інтеграція з Express та іншими фреймворками
  • Підтримка WebSocket для стрімінгу

Для повного прикладу реалізації на JavaScript дивіться JavaScript sample у каталозі зразків.

Приклад реалізації: Python

Python SDK пропонує «пітонічний» підхід до реалізації MCP з відмінною інтеграцією ML-фреймворків.

Ключові функції

  • Підтримка async/await з asyncio
  • Інтеграція з FastAPI
  • Проста реєстрація інструментів
  • Рідна інтеграція з популярними ML-бібліотеками

Для повного прикладу реалізації на Python дивіться Python sample у каталозі зразків.

Керування API

Azure API Management — відмінне рішення для захисту MCP-серверів. Ідея полягає в тому, щоб розмістити інстанс Azure API Management перед вашим MCP-сервером і дозволити йому обробляти функції, які вам можуть знадобитися, такі як:

  • обмеження швидкості запитів
  • керування токенами
  • моніторинг
  • балансування навантаження
  • безпека

Приклад Azure

Ось приклад Azure, який робить саме це, тобто створює MCP-сервер і захищає його за допомогою Azure API Management.

Дивіться, як відбувається процес авторизації на зображенні нижче:

APIM-MCP

На наведеному зображенні відбувається наступне:

  • Аутентифікація/авторизація здійснюється за допомогою Microsoft Entra.
  • Azure API Management виступає шлюзом і використовує політики для керування трафіком.
  • Azure Monitor веде журнал усіх запитів для подальшого аналізу.

Потік авторизації

Розглянемо детальніше потік авторизації:

Sequence Diagram

Специфікація авторизації MCP

Дізнайтеся більше про специфікацію авторизації MCP

Розгортання віддаленого MCP-сервера в Azure

Давайте спробуємо розгорнути приклад, який ми згадували раніше:

  1. Клонуйте репозиторій

    git clone https://github.com/Azure-Samples/remote-mcp-apim-functions-python.git
    cd remote-mcp-apim-functions-python
  2. Зареєструйте провайдера ресурсів Microsoft.App.

    • Якщо ви використовуєте Azure CLI, виконайте az provider register --namespace Microsoft.App --wait.
    • Якщо ви використовуєте Azure PowerShell, виконайте Register-AzResourceProvider -ProviderNamespace Microsoft.App. Потім через деякий час перевірте стан реєстрації командою (Get-AzResourceProvider -ProviderNamespace Microsoft.App).RegistrationState.
  3. Виконайте цю команду azd для створення служби API Management, функціонального додатку (з кодом) та всіх інших необхідних ресурсів Azure

    azd up

    Ця команда має розгорнути всі хмарні ресурси в Azure

Тестування вашого сервера за допомогою MCP Inspector

  1. У новому вікні терміналу встановіть і запустіть MCP Inspector

    npx @modelcontextprotocol/inspector

    Ви побачите інтерфейс, схожий на:

    Connect to Node inspector

  2. CTRL-клікніть, щоб завантажити веб-додаток MCP Inspector за URL, який відображає додаток (наприклад, http://127.0.0.1:6274/#resources)

  3. Встановіть тип транспорту SSE

  4. Встановіть URL на ваш поточний SSE-ендпоінт API Management, який відображається після azd up, і натисніть Connect:

    https://<apim-servicename-from-azd-output>.azure-api.net/mcp/sse
  5. Список інструментів. Клікніть на інструмент і натисніть Run Tool.

Якщо всі кроки виконані правильно, ви тепер підключені до MCP-сервера і змогли викликати інструмент.

MCP-сервери для Azure

Remote-mcp-functions: цей набір репозиторіїв є шаблоном швидкого старту для створення та розгортання кастомних віддалених MCP (Model Context Protocol) серверів за допомогою Azure Functions на Python, C# .NET або Node/TypeScript.

Зразки надають повне рішення, яке дозволяє розробникам:

  • Розробляти та запускати локально: розробляти та налагоджувати MCP-сервер на локальній машині
  • Розгортати в Azure: легко розгортати в хмарі за допомогою простої команди azd up
  • Підключатися з клієнтів: підключатися до MCP-сервера з різних клієнтів, включно з режимом агента Copilot у VS Code та інструментом MCP Inspector

Ключові особливості:

  • Безпека за замовчуванням: MCP-сервер захищений за допомогою ключів і HTTPS
  • Варіанти автентифікації: підтримка OAuth із вбудованою автентифікацією та/або API Management
  • Ізоляція мережі: підтримка ізоляції мережі за допомогою Azure Virtual Networks (VNET)
  • Безсерверна архітектура: використання Azure Functions для масштабованого виконання на основі подій
  • Локальна розробка: повна підтримка локальної розробки та налагодження
  • Просте розгортання: оптимізований процес розгортання в Azure

Репозиторій містить усі необхідні конфігураційні файли, вихідний код і визначення інфраструктури, щоб швидко почати роботу з MCP-сервером, готовим до виробництва.

Основні висновки

  • MCP SDK надають мовно-специфічні інструменти для реалізації надійних MCP-рішень
  • Процес налагодження та тестування критично важливий для стабільних MCP-додатків
  • Повторно використовувані шаблони промптів забезпечують послідовну взаємодію з ШІ
  • Добре спроєктовані робочі процеси можуть координувати складні завдання з використанням кількох інструментів
  • Реалізація MCP-рішень вимагає уваги до безпеки, продуктивності та обробки помилок

Вправа

Спроєктуйте практичний MCP-робочий процес, який вирішує реальну проблему у вашій сфері:

  1. Визначте 3-4 інструменти, які були б корисними для розв’язання цієї проблеми
  2. Створіть діаграму робочого процесу, що показує, як ці інструменти взаємодіють
  3. Реалізуйте базову версію одного з інструментів на обраній мові
  4. Створіть шаблон промпту, який допоможе моделі ефективно використовувати ваш інструмент

Додаткові ресурси


Далі: Розширені теми

Відмова від відповідальності:
Цей документ було перекладено за допомогою сервісу автоматичного перекладу Co-op Translator. Хоча ми прагнемо до точності, будь ласка, майте на увазі, що автоматичні переклади можуть містити помилки або неточності. Оригінальний документ рідною мовою слід вважати авторитетним джерелом. Для критично важливої інформації рекомендується звертатися до професійного людського перекладу. Ми не несемо відповідальності за будь-які непорозуміння або неправильні тлумачення, що виникли внаслідок використання цього перекладу.