zepp-mcp
zepp-mcp
MCP-Server, der Zepp/Amazfit-Gesundheits- und Fitnessdaten (Schritte, Schlaf, Herzfrequenz, Workouts) als Tools für MCP-Clients (z. B. Claude) bereitstellt. Erstellt mit Hono und bereitgestellt auf Cloudflare Workers.
Er authentifiziert sich mit der E-Mail und dem Passwort deines Kontos gegenüber der Cloud-API von Zepp, cacht das daraus resultierende Sitzungstoken in einem Cloudflare-KV-Namespace und authentifiziert sich automatisch neu, sobald das gecachte Token abläuft.
Anforderungen
Node.js und npm
Ein Cloudflare-Konto
Wrangler (als dev dependency installiert)
Ein Zepp/Amazfit-Konto (E-Mail + Passwort)
Related MCP server: Garmin Health MCP Server
Einrichtung
Abhängigkeiten installieren:
npm installErstelle deine Wrangler-Konfiguration aus dem Beispiel und trage eine KV-Namespace-ID ein:
cp wrangler.example.jsonc wrangler.jsoncErstelle den KV-Namespace, falls du noch keinen hast, und füge seine ID dann in
wrangler.jsoncein:npx wrangler kv namespace create ZEPP_KVErstelle deine lokale Secrets-Datei aus dem Beispiel:
cp .dev.vars.example .dev.varsTrage deine Zepp-Zugangsdaten in
ZEPP_EMAILundZEPP_PASSWORDein.
Entwicklung
Server lokal ausführen:
npm run devDer MCP-Endpunkt wird unter /mcp bereitgestellt (Streamable-HTTP-Transport). / gibt eine einfache Status-JSON-Payload zurück.
Type-Check des Projekts durchführen:
npm run typecheckBereitstellung
npm run deploySetze vor der Bereitstellung dieselben Secrets in deinem Cloudflare Worker (statt in .dev.vars):
npx wrangler secret put ZEPP_EMAIL
npx wrangler secret put ZEPP_PASSWORDNach der Bereitstellung gibt Wrangler die öffentliche URL des Workers aus (z. B. https://zepp-mcp.<your-subdomain>.workers.dev). Der MCP-Endpunkt ist diese URL plus /mcp, also z. B. https://zepp-mcp.<your-subdomain>.workers.dev/mcp. Beachte, dass der Endpunkt keine integrierte Authentifizierung besitzt — jeder mit der URL kann ihn aufrufen — behandle ihn also wie ein Geheimnis, falls dir das wichtig ist, oder setze eine eigene Authentifizierung davor.
Verwendung des bereitgestellten MCP-Servers
Richte jeden MCP-Client, der den Streamable-HTTP-Transport unterstützt, auf https://<your-worker-url>/mcp aus.
Claude Code
claude mcp add --transport http zepp https://zepp-mcp.<your-subdomain>.workers.dev/mcpClaude Desktop
Claude Desktop verbindet sich über einen lokalen stdio-Proxy (mcp-remote) mit entfernten HTTP-Servern. Füge Folgendes zu deiner claude_desktop_config.json hinzu:
{
"mcpServers": {
"zepp": {
"command": "npx",
"args": ["-y", "mcp-remote", "https://zepp-mcp.<your-subdomain>.workers.dev/mcp"]
}
}
}Andere MCP-Clients
Jeder Client mit nativer Streamable-HTTP-Unterstützung (z. B. Cursor, Windsurf) kann direkt auf die /mcp-URL ausgerichtet werden — Details zum Konfigurationsformat findest du in der Dokumentation des jeweiligen Clients. Clients, die nur stdio-Server unterstützen, können das oben gezeigte mcp-remote-Proxy-Muster verwenden.
Tools
Tool | Beschreibung |
| Zepp-Cloud-Anmeldestatus und Benutzer-ID prüfen |
| Gekoppelte Zepp/Amazfit-Geräte auf dem Konto auflisten |
| Tägliche Schritte, Distanz, Kalorien und Schlafzusammenfassung über einen Datumsbereich |
| Letzte Workout-/Sporteinheiten auflisten (Läufe, Spaziergänge, Radfahren usw.) |
| Vollständige Details zu einem Workout (GPS-Track, Tempo, Herzfrequenzverlauf usw.) anhand der |
| Benutzerprofildaten (Gewicht, Größe, Geburtstag, Geschlecht usw.) |
| Herzfrequenzmesswerte über einen Datumsbereich |
| Schlafphasen-Aufschlüsselung pro Nacht über einen Datumsbereich |
| Laktatschwellen-Daten, sofern verfügbar |
Datumsbereich-Tools akzeptieren optionale from_date- und to_date-Parameter im Format YYYY-MM-DD und verwenden standardmäßig die letzten 30 Tage.
Projektstruktur
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 KVHinweise
Sitzungstoken werden 24 Stunden lang in KV gecacht und bei einer 401/403-Antwort automatisch erneuert.
wrangler.jsoncund.dev.varssind in der Gitignore, da sie deine KV-Namespace-ID und Zugangsdaten enthalten — verwende die eingecheckten.example-Dateien als Vorlagen.
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