evo-container-apps-currency-exchange-mcp-server-lab

cloud-ru/evo-container-apps-currency-exchange-mcp-server-lab

3.1

If you are the rightful owner of evo-container-apps-currency-exchange-mcp-server-lab and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.

A demonstration Node.js server providing currency exchange rates from the Central Bank of Russia (CBR) and conversion tools via Model Context Protocol (MCP).

evo-container-apps-currency-exchange-mcp-server-lab

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

Возможности

  • Получает ежедневные курсы валют от ЦБР (https://www.cbr-xml-daily.ru/daily.xml)
  • Кэширует курсы на 1 час для снижения нагрузки
  • Предоставляет MCP-совместимые эндпоинты для списка ресурсов и конвертации валют
  • Защищен аутентификацией через Bearer токен
  • Готов к Docker для простого развертывания

Структура проекта

.
├── src/
│   ├── auth.middleware.ts      # Express middleware for Bearer token authentication
│   ├── cbr.service.ts         # Fetches and caches CBR exchange rates
│   ├── config.ts              # Loads environment variables (PORT, MCP_TOKEN)
│   ├── endpoints.ts           # Registers Express endpoints for MCP
│   ├── mcp.server.ts          # MCP server definition (resources/tools)
│   ├── mcp.ts                 # Main entry point, Express app setup
│   └── transport.manager.ts   # Manages MCP session transports
├── dockerfile                 # Multi-stage Docker build
├── package.json               # Project metadata and scripts
├── tsconfig.json              # TypeScript configuration
└── README.md                  # Project documentation

Начало работы

Предварительные требования

  • Node.js 20+

Установка

yarn install

Переменные окружения

  • MCP_TOKEN (обязательно): Bearer token for API authentication

Разработка

yarn dev

Сборка

yarn build

Запуск (Production)

yarn start

Docker

Build and run the server in Docker:

yarn docker:build
yarn docker:run
MCP ресурсы и инструменты
  • rates://latest: Возвращает последние курсы валют ЦБР (JSON)
  • convert: Конвертирует заданную сумму из указанной валюты в RUB
    • Вход: { from: "USD", amount: 100 }
    • Выход: { from: "USD", to: "RUB", input: 100, rate: 90.5, result: 9050 }

Деплой в Artifact Registry

Для публикации образа в Artifact Registry выполните следующие шаги:

  1. Соберите Docker-образ:
    yarn docker:build
    
  2. Задайте тег для образа (замените <REGISTRY-NAME> на имя вашего реестра):
    yarn docker:tag
    
  3. Отправьте образ в реестр:
    yarn docker:push
    

Важно: В командах выше <REGISTRY-NAME> необходимо заменить на фактическое имя вашего Artifact Registry. Например: crp12345.

Для автоматизации всех шагов используйте:

yarn deploy

Деплой в Cloud.ru Container Apps

Подробная инструкция по деплою сервера в Container Apps доступна по ссылке: Развертывание MCP-сервера в контейнере

Инструкция по созданию Artifact Registry

Подробная инструкция по созданию Artifact Registry доступна по ссылке: cloud.ru/docs/labs/services/topics/container-apps__before-work

License

MIT license