Skip to content

Latest commit

 

History

History
272 lines (178 loc) · 20.4 KB

File metadata and controls

272 lines (178 loc) · 20.4 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-серверы
  • Создавать и использовать функции сервера (Ресурсы, Подсказки и Инструменты)
  • Проектировать эффективные рабочие процессы MCP для сложных задач
  • Оптимизировать реализации MCP по производительности и надежности

Официальные SDK

Model Context Protocol предлагает официальные SDK для нескольких языков:

Работа с MCP SDK

В этом разделе представлены практические примеры реализации MCP на разных языках программирования. Образцы кода находятся в каталоге samples, организованном по языкам.

Доступные примеры

В репозитории есть примерные реализации на следующих языках:

Каждый пример демонстрирует ключевые концепции MCP и шаблоны реализации для конкретного языка и экосистемы.

Основные функции сервера

MCP-серверы могут реализовывать любую комбинацию следующих функций:

Ресурсы

Ресурсы предоставляют контекст и данные для пользователя или модели ИИ:

  • Репозитории документов
  • Базы знаний
  • Структурированные источники данных
  • Файловые системы

Подсказки

Подсказки — это шаблоны сообщений и рабочих процессов для пользователей:

  • Предопределённые шаблоны диалогов
  • Руководства по взаимодействию
  • Специализированные структуры диалогов

Инструменты

Инструменты — это функции, которые модель ИИ может выполнять:

  • Утилиты для обработки данных
  • Интеграции с внешними API
  • Вычислительные возможности
  • Функции поиска

Примеры реализации: C#

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

  • Базовый MCP клиент: простой пример создания MCP клиента и вызова инструментов
  • Базовый MCP сервер: минимальная реализация сервера с базовой регистрацией инструментов
  • Продвинутый MCP сервер: полнофункциональный сервер с регистрацией инструментов, аутентификацией и обработкой ошибок
  • Интеграция с ASP.NET: примеры интеграции с ASP.NET Core
  • Шаблоны реализации инструментов: различные подходы к реализации инструментов разной сложности

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, function app (с кодом) и всех необходимых ресурсов 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. Несмотря на наши усилия по обеспечению точности, просим учитывать, что автоматические переводы могут содержать ошибки или неточности. Оригинальный документ на его исходном языке следует считать авторитетным источником. Для получения критически важной информации рекомендуется обращаться к профессиональному человеческому переводу. Мы не несем ответственности за любые недоразумения или неправильные толкования, возникшие в результате использования данного перевода.