Развертывание MCP-сервера в контейнере
В этой лабораторной работе вы будете использовать репозиторий GitVerse с исходным кодом Node.js сервера для предоставления курсов валют Центрального банка России и инструментов конвертации валют через протокол Model Context Protocol (MCP). Сервер построен на TypeScript и Express, предоставляет эндпоинты для получения актуальных курсов валют и конвертации валют в российские рубли с кешированием данных и аутентификацией через Bearer-токен.
MCP-сервер — это специализированный сервер, который реализует протокол Model Context Protocol для предоставления структурированного доступа к ресурсам и инструментам через стандартизированный интерфейс. MCP-серверы используются в AI для расширения возможностей языковых моделей, предоставляя им доступ к внешним данным, API и инструментам через унифицированный протокол взаимодействия.
На примере развертывания MCP-сервера вы познакомитесь с дополнительными настройками сервиса Container Apps.
Шаги:
Перед началом работы
-
Если вы уже зарегистрированы, войдите под своей учетной записью.
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-образ в реестр
-
Загрузите образ в реестр 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-образа.
-
-
В личном кабинете перейдите в сервис Artifact Registry и убедитесь, что образ загружен.
5. Создайте и запустите контейнер
-
Перейдите в сервис Container Apps через меню в левом верхнем углу экрана.
-
Нажмите Создать.
-
Заполните поля и активируйте опции:
-
Название контейнера — глобально уникальное имя, на базе которого формируется адрес вашего приложения в домене *.containers.cloud.ru.
-
URI образа — выберите образ, загруженный в Artifact Registry на шаге 4.
-
Порт контейнера — порт контейнера, который должен совпадать с портом вашего приложения. В этой лабораторной работе используем порт 8080.
-
vCPU/RAM — количество vCPU и RAM, которые выделяются для каждого экземпляра контейнера при обработке вызова. Выберите минимальную конфигурацию.
-
Минимальное и максимальное количество экземпляров при масштабировании сервиса. По умолчанию происходит масштабирование с 0, что может вызывать небольшую задержку при старте вашего приложения. Установите минимальное количество экземпляров в значение 0, а максимальное — 1.
-
Переменные — добавьте переменную MCP_TOKEN с уникальным значением.
-
Публичный адрес — активируйте опцию, чтобы получить URL-адрес для вызова приложения из интернета.
-
Автоматическое развертывание — активируйте опцию, чтобы каждый раз после загрузки в Artifact Registry новой версии образа на стороне Container Apps автоматически создавалась новая ревизия контейнера.
-
-
Нажмите Создать.
Контейнер будет запущен в течение нескольких секунд.
-
Дождитесь, когда контейнер и ревизия перейдут в статус «Выполняется».
-
Скопируйте Публичный URL.
6. Проверьте работоспособность развернутого приложения
-
Установите Node.js на локальное рабочее окружение.
-
Откройте командную строку.
-
Установите MCP Inspector, используя команду:
npx @modelcontextprotocol/inspector -
В открывшемся окне приложения MCP Inspector введите значения для подключения к MCP-серверу:
-
URL — URL вашего MCP-сервера.
-
Header Name — Authorization.
-
Bearer Token — значение MCP_TOKEN из переменных окружения.
-
-
Нажмите Connect.
-
Убедитесь, что статус изменился на «Connected».
-
Нажмите List Resources -> Latest exchange rates.
-
Убедитесь, что данные о курсах загружаются корректно.
-
Нажмите Tools в верхнем меню.
-
Нажмите List Tools -> convert.
-
В поле from введите значение USD, в поле amount значение 10.
-
Нажмите Run Tool.
-
Убедитесь, что результат конвертации выведен корректно.
Что дальше
В этой лабораторной работе вы научились:
-
запускать MCP-сервер для AI-ориентированных приложений;
-
создавать репозитории в существующих реестрах Artifact Registry;
-
создавать контейнер из интерфейса сервиса Container Apps;
-
управлять настройками масштабирования контейнера;
-
передавать переменные окружения в контейнер;
-
запускать MCP Inspector для анализа работы MCP-серверов.
Узнавайте больше о работе с сервисами и получайте практические навыки управления облаком, выполняя лабораторные работы.
- Перед началом работы
- 1. Подготовьте среду
- 2. Клонируйте или скачайте репозиторий кода c GitVerse
- 3. Соберите образ и присвойте тег
- 4. Загрузите Docker-образ в реестр
- 5. Создайте и запустите контейнер
- 6. Проверьте работоспособность развернутого приложения
- Что дальше