Skip to main content
Glama

zepp-mcp

MCP-сервер, предоставляющий данные о здоровье и фитнесе Zepp/Amazfit (шаги, сон, пульс, тренировки) в виде инструментов для MCP-клиентов (например, Claude). Создан на базе Hono и развернут на Cloudflare Workers.

Он выполняет аутентификацию в облачном API Zepp с использованием email/пароля вашей учетной записи, кэширует полученный токен сессии в пространстве имен Cloudflare KV и автоматически повторно аутентифицируется, когда срок действия кэшированного токена истекает.

Требования

  • Node.js и npm

  • Учетная запись Cloudflare

  • Wrangler (устанавливается как dev-зависимость)

  • Учетная запись Zepp/Amazfit (email + пароль)

Related MCP server: Garmin Health MCP Server

Настройка

  1. Установите зависимости:

    npm install
  2. Создайте конфигурацию Wrangler на основе примера и укажите ID пространства имен KV:

    cp wrangler.example.jsonc wrangler.jsonc

    Если у вас еще нет пространства имен KV, создайте его, затем вставьте его ID в wrangler.jsonc:

    npx wrangler kv namespace create ZEPP_KV
  3. Создайте локальный файл секретов на основе примера:

    cp .dev.vars.example .dev.vars

    Укажите ZEPP_EMAIL и ZEPP_PASSWORD — учетные данные вашей учетной записи Zepp.

Разработка

Запустите сервер локально:

npm run dev

MCP-эндпоинт доступен по адресу /mcp (транспорт Streamable HTTP). / возвращает базовый JSON-ответ со статусом.

Проверьте типы в проекте:

npm run typecheck

Развертывание

npm run deploy

Перед развертыванием задайте те же секреты в вашем Cloudflare Worker (вместо .dev.vars):

npx wrangler secret put ZEPP_EMAIL
npx wrangler secret put ZEPP_PASSWORD

После развертывания Wrangler выводит публичный URL Worker (например, https://zepp-mcp.<your-subdomain>.workers.dev). MCP-эндпоинт — это этот URL плюс /mcp, например https://zepp-mcp.<your-subdomain>.workers.dev/mcp. Обратите внимание, что у эндпоинта нет встроенной аутентификации — любой, у кого есть URL, может вызвать его, — поэтому, если это для вас важно, относитесь к нему как к секрету или добавьте собственную аутентификацию перед ним.

Использование развернутого MCP-сервера

Направьте любой MCP-клиент, поддерживающий транспорт Streamable HTTP, на https://<your-worker-url>/mcp.

Claude Code

claude mcp add --transport http zepp https://zepp-mcp.<your-subdomain>.workers.dev/mcp

Claude Desktop

Claude Desktop подключается к удаленным HTTP-серверам через локальный stdio-прокси (mcp-remote). Добавьте это в ваш claude_desktop_config.json:

{
  "mcpServers": {
    "zepp": {
      "command": "npx",
      "args": ["-y", "mcp-remote", "https://zepp-mcp.<your-subdomain>.workers.dev/mcp"]
    }
  }
}

Перезапустите Claude Desktop после изменения конфигурации. Инструменты zepp_* должны появиться в средстве выбора инструментов.

Другие MCP-клиенты

Любой клиент с поддержкой Streamable HTTP (например, Cursor, Windsurf) можно напрямую указать на URL /mcp — проверьте документацию клиента для формата его конфигурации. Клиенты, поддерживающие только stdio-серверы, могут использовать описанный выше шаблон прокси mcp-remote.

Инструменты

Инструмент

Описание

zepp_status

Проверить статус входа в облако Zepp и идентификатор пользователя

get_devices

Список сопряженных устройств Zepp/Amazfit в учетной записи

get_daily_summary

По дням: шаги, дистанция, калории и сводка по сну за диапазон дат

list_workouts

Список недавних тренировок/спортивных сессий (бег, ходьба, велосипед и т.д.)

get_workout_detail

Полная детализация одной тренировки (GPS-трек, темп, серия пульса и т.д.) по trackid из list_workouts

get_profile

Данные профиля пользователя (вес, рост, дата рождения, пол и т.д.)

get_heart_rate_history

Показания пульса за диапазон дат

get_sleep_detail

Разбивка стадий сна по ночам за диапазон дат

get_lactate_threshold

Данные порога лактата, если доступны

Инструменты с диапазонами дат принимают необязательные from_date / to_date в формате YYYY-MM-DD и по умолчанию используют последние 30 дней.

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

src/
  index.ts          Hono app, MCP server wiring, /mcp route
  tools/index.ts     MCP tool registrations
  zepp/
    auth.ts          Zepp login flow (token exchange + login)
    client.ts        ZeppClient: session caching + data API calls
    constants.ts      Zepp API URLs, headers, payload templates
    types.ts          Shared Zepp types
  lib/
    crypto.ts        AES-CBC helper used to encrypt the login token request
    kv-cache.ts       Session caching in Cloudflare KV

Примечания

  • Токены сессии кэшируются в KV на 24 часа и автоматически обновляются при ответе 401/403.

  • wrangler.jsonc и .dev.vars игнорируются Git, поскольку содержат ID вашего пространства имен KV и учетные данные учетной записи — используйте включенные в репозиторий файлы .example в качестве шаблонов.

Related MCP Connectors

Related MCP Servers