Evolution
Тема интерфейса

Развертывание MCP-сервера в контейнере

В этой лабораторной работе вы будете использовать репозиторий GitVerse с исходным кодом Node.js сервера для предоставления курсов валют Центрального банка России и инструментов конвертации валют через протокол Model Context Protocol (MCP). Сервер построен на TypeScript и Express, предоставляет эндпоинты для получения актуальных курсов валют и конвертации валют в российские рубли с кешированием данных и аутентификацией через Bearer-токен.

MCP-сервер — это специализированный сервер, который реализует протокол Model Context Protocol для предоставления структурированного доступа к ресурсам и инструментам через стандартизированный интерфейс. MCP-серверы используются в AI для расширения возможностей языковых моделей, предоставляя им доступ к внешним данным, API и инструментам через унифицированный протокол взаимодействия.

На примере развертывания MCP-сервера вы познакомитесь с дополнительными настройками сервиса Container Apps.

Шаги:

Перед началом работы

  1. Если вы уже зарегистрированы, войдите под своей учетной записью.

1. Подготовьте среду

Подготовьте среду, если не сделали этого ранее.

2. Клонируйте или скачайте репозиторий кода c GitVerse

Опциональный шаг.

Вы можете зарегистрироваться в GitVerse, если у вас еще нет аккаунта, и познакомиться с новой системой контроля версий. Этот шаг необязательный и не влияет на дальнейшее прохождение лабораторной работы.

В этом репозитории находится исходный код MCP-сервера, написанного на языке TypeScript. Код поможет вам познакомиться с особенностями построения MCP-серверов.

git clone https://gitverse.ru/cloudru/evo-container-apps-currency-exchange-mcp-server-lab.git

3. Соберите образ и присвойте тег

Внимание

Убедитесь, что Docker Desktop запущен и пользователь авторизован в приложении.

Используйте реестр, созданный в первой лабораторной работе, выполнив следующую команду:

docker build --tag <registry_name>.cr.cloud.ru/evo-container-apps-currency-exchange-mcp-server-lab https://gitverse.ru/cloudru/evo-container-apps-currency-exchange-mcp-server-lab.git#master --platform linux/amd64

Для создания контейнера Docker-образ должен быть собран под платформу linux/amd64, поэтому в команде используется флаг platform со значением linux/amd64.

4. Загрузите Docker-образ в реестр

  1. Загрузите образ в реестр Artifact Registry, выполнив команду:

    docker push <registry_name>.cr.cloud.ru/evo-container-apps-currency-exchange-mcp-server-lab

    Где:

    • <registry_name> — название реестра, которое вы указывали при его создании в Artifact Registry;

    • evo-container-apps-currency-exchange-mcp-server-lab — название будущего репозитория в Artifact Registry, соответствует имени Docker-образа.

  2. В личном кабинете перейдите в сервис Artifact Registry и убедитесь, что образ загружен.

5. Создайте и запустите контейнер

  1. Перейдите в сервис Container Apps через меню в левом верхнем углу экрана.

  2. Нажмите Создать.

  3. Заполните поля и активируйте опции:

    ../_images/container_app.png
    1. Название контейнера — глобально уникальное имя, на базе которого формируется адрес вашего приложения в домене *.containers.cloud.ru.

    2. URI образа — выберите образ, загруженный в Artifact Registry на шаге 4.

    3. Порт контейнера — порт контейнера, который должен совпадать с портом вашего приложения. В этой лабораторной работе используем порт 8080.

    4. vCPU/RAM — количество vCPU и RAM, которые выделяются для каждого экземпляра контейнера при обработке вызова. Выберите минимальную конфигурацию.

    5. Минимальное и максимальное количество экземпляров при масштабировании сервиса. По умолчанию происходит масштабирование с 0, что может вызывать небольшую задержку при старте вашего приложения. Установите минимальное количество экземпляров в значение 0, а максимальное — 1.

    6. Переменные — добавьте переменную MCP_TOKEN с уникальным значением.

    7. Публичный адрес — активируйте опцию, чтобы получить URL-адрес для вызова приложения из интернета.

    8. Автоматическое развертывание — активируйте опцию, чтобы каждый раз после загрузки в Artifact Registry новой версии образа на стороне Container Apps автоматически создавалась новая ревизия контейнера.

  4. Нажмите Создать.

    Контейнер будет запущен в течение нескольких секунд.

  5. Дождитесь, когда контейнер и ревизия перейдут в статус «Выполняется».

  6. Скопируйте Публичный URL.

6. Проверьте работоспособность развернутого приложения

  1. Установите Node.js на локальное рабочее окружение.

  2. Откройте командную строку.

  3. Установите MCP Inspector, используя команду:

    npx @modelcontextprotocol/inspector
  4. В открывшемся окне приложения MCP Inspector введите значения для подключения к MCP-серверу:

    1. URL — URL вашего MCP-сервера.

    2. Header Name — Authorization.

    3. Bearer Token — значение MCP_TOKEN из переменных окружения.

  5. Нажмите Connect.

  6. Убедитесь, что статус изменился на «Connected».

  7. Нажмите List Resources -> Latest exchange rates.

  8. Убедитесь, что данные о курсах загружаются корректно.

    ../_images/mcp_inspector_resources.png
  9. Нажмите Tools в верхнем меню.

  10. Нажмите List Tools -> convert.

  11. В поле from введите значение USD, в поле amount значение 10.

  12. Нажмите Run Tool.

  13. Убедитесь, что результат конвертации выведен корректно.

    ../_images/mcp_inspector_tools.png

Что дальше

В этой лабораторной работе вы научились:

  • запускать MCP-сервер для AI-ориентированных приложений;

  • создавать репозитории в существующих реестрах Artifact Registry;

  • создавать контейнер из интерфейса сервиса Container Apps;

  • управлять настройками масштабирования контейнера;

  • передавать переменные окружения в контейнер;

  • запускать MCP Inspector для анализа работы MCP-серверов.

Узнавайте больше о работе с сервисами и получайте практические навыки управления облаком, выполняя лабораторные работы.