zepp-mcp
zepp-mcp
Servidor MCP que expone datos de salud y fitness de Zepp/Amazfit (pasos, sueño, frecuencia cardíaca, entrenamientos) como herramientas para clientes MCP (p. ej. Claude). Construido con Hono y desplegado en Cloudflare Workers.
Se autentica contra la API en la nube de Zepp usando el correo electrónico y la contraseña de tu cuenta, guarda en caché el token de sesión resultante en un espacio de nombres KV de Cloudflare y se vuelve a autenticar automáticamente cuando el token en caché expira.
Requisitos
Node.js y npm
Una cuenta de Cloudflare
Wrangler (instalado como dependencia de desarrollo)
Una cuenta de Zepp/Amazfit (correo electrónico + contraseña)
Related MCP server: Garmin Health MCP Server
Configuración
Instala las dependencias:
npm installCrea tu configuración de Wrangler a partir del ejemplo y completa un ID de espacio de nombres KV:
cp wrangler.example.jsonc wrangler.jsoncCrea el espacio de nombres KV si aún no tienes uno y luego pega su ID en
wrangler.jsonc:npx wrangler kv namespace create ZEPP_KVCrea tu archivo local de secretos a partir del ejemplo:
cp .dev.vars.example .dev.varsCompleta
ZEPP_EMAILyZEPP_PASSWORDcon las credenciales de tu cuenta de Zepp.
Desarrollo
Ejecuta el servidor localmente:
npm run devEl endpoint MCP se sirve en /mcp (transporte HTTP Streamable). / devuelve un payload JSON básico de estado.
Verifica los tipos del proyecto:
npm run typecheckDespliegue
npm run deployAntes de desplegar, configura los mismos secretos en tu Worker de Cloudflare (en lugar de .dev.vars):
npx wrangler secret put ZEPP_EMAIL
npx wrangler secret put ZEPP_PASSWORDDespués de desplegar, Wrangler imprime la URL pública del Worker (p. ej. https://zepp-mcp.<your-subdomain>.workers.dev). El endpoint MCP es esa URL más /mcp, p. ej. https://zepp-mcp.<your-subdomain>.workers.dev/mcp. Ten en cuenta que el endpoint no tiene autenticación integrada — cualquiera con la URL puede llamarlo — así que trátalo como un secreto si te importa, o añade tu propia autenticación delante.
Usar el servidor MCP desplegado
Apunta cualquier cliente MCP que admita el transporte HTTP Streamable a https://<your-worker-url>/mcp.
Claude Code
claude mcp add --transport http zepp https://zepp-mcp.<your-subdomain>.workers.dev/mcpClaude Desktop
Claude Desktop se conecta a servidores HTTP remotos a través de un proxy stdio local (mcp-remote). Añade esto a tu claude_desktop_config.json:
{
"mcpServers": {
"zepp": {
"command": "npx",
"args": ["-y", "mcp-remote", "https://zepp-mcp.<your-subdomain>.workers.dev/mcp"]
}
}
}Reinicia Claude Desktop después de editar la configuración. Las herramientas zepp_* deberían aparecer entonces en el selector de herramientas.
Otros clientes MCP
Cualquier cliente con soporte nativo de HTTP Streamable (p. ej. Cursor, Windsurf) se puede apuntar directamente a la URL /mcp; consulta la documentación de ese cliente para conocer su formato de configuración. Los clientes que solo admiten servidores stdio pueden usar el patrón de proxy mcp-remote mostrado arriba.
Herramientas
Herramienta | Descripción |
| Comprueba el estado de inicio de sesión en la nube de Zepp y el ID de usuario |
| Lista los dispositivos Zepp/Amazfit emparejados en la cuenta |
| Resumen diario de pasos, distancia, calorías y sueño en un rango de fechas |
| Lista las sesiones recientes de entrenamiento/deporte (carreras, caminatas, ciclismo, etc.) |
| Detalle completo de un entrenamiento (recorrido GPS, ritmo, series de frecuencia cardíaca, etc.) por |
| Datos del perfil del usuario (peso, altura, fecha de nacimiento, género, etc.) |
| Lecturas de frecuencia cardíaca en un rango de fechas |
| Desglose de fases de sueño por noche en un rango de fechas |
| Datos de umbral de lactato, cuando estén disponibles |
Las herramientas de rango de fechas aceptan from_date / to_date opcionales en formato YYYY-MM-DD y por defecto usan los últimos 30 días.
Estructura del proyecto
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 KVNotas
Los tokens de sesión se guardan en caché en KV durante 24 horas y se renuevan automáticamente ante una respuesta 401/403.
wrangler.jsoncy.dev.varsestán en gitignore porque contienen tu ID de espacio de nombres KV y las credenciales de la cuenta: usa los archivos.exampleincluidos en el repositorio como plantillas.
This server cannot be deployed
Maintenance
Related MCP Connectors
Pace is a remote MCP server that exposes wearable and fitness data to Claude via the Model Context Protocol. It connects to Garmin, Oura, Whoop, Polar, Fitbit and 20+ devices and provides 15 tools for querying sleep, activity, recovery, and training data. Hosted on Google Cloud Run, OAuth 2.1 authentication, Streamable HTTP transport. Instructions: First you need to create an account at: https://pacetraining.co and connect your wearables. After that you can connect the remote Server via Custom Connector in Claude and OAuth 2.1 Flow startet.
Access COROS activity, training and health data, and manage training plans and workouts.
Multi-tenant hosted MCP server for Oura Ring — 21 read-only tools, OAuth per user.
Discover, plan and run tools across your connected business systems through one OAuth MCP endpoint
Related MCP Servers
- AlicenseNot gradedqualityBmaintenanceExposes personal health data (recovery, sleep, strain, etc.) as MCP tools for AI agents to query and analyze.5MIT
- FlicenseNot gradedqualityDmaintenanceExposes Garmin Connect health data (steps, sleep, HR, HRV, stress, activities, etc.) as tools for MCP-compatible clients like Claude.-
- AlicenseAqualityAmaintenanceMCP server that reads Zepp/Amazfit health and workout data, exposing tools for daily summaries, sleep, heart rate, and workout details to any MCP client.885MIT
- AlicenseNot gradedqualityBmaintenanceEnables read-only access to Amazfit/Zepp fitness data via the unofficial Zepp cloud API, exposing normalized health and workout metrics to MCP clients.AGPL 3.0