Skip to main content
Glama

Zepp Life MCP

CI Release License

MCP server for Zepp Life data.

This project provides local caching, sync, and MCP tools for Zepp Life data from either exported files or the Zepp cloud session flow.

Supported sources

  • export_file for local Zepp exports

  • cloud_session for apptoken-based cloud access

Related MCP server: Mi Fitness MCP

Current data coverage

The current implementation supports:

  • daily steps, distance, and active calories

  • sleep sessions with light, deep, REM, awake time, and wake count

  • passive and resting heart rate (slp.rhr)

  • workouts with readable sport names for known Zepp sport codes

  • weight and body-composition measurements

Cloud coverage can vary by account, region, and upstream endpoint stability. Export mode is the safest option when you need predictable full-history access.

Cloud connections are lazy: server startup and tools/list do not wait for Zepp login. The first data tool establishes one shared connection. If user_id is omitted, the adapter attempts to discover the numeric UID from the last 30 days of band summary data and stores it in the system keyring.

Install

python -m venv .venv
source .venv/bin/activate
pip install -e '.[dev]'

Setup

Cloud session

You need an apptoken.

Typical flow:

  1. Open https://user.huami.com/privacy2/index.html

  2. Sign in to the Zepp Life account

  3. Open browser DevTools

  4. Find the apptoken cookie

Then configure the server:

zepp-life-mcp setup --mode cloud_session --token "<apptoken>" --region eu
zepp-life-mcp doctor

--user-id remains supported and can be supplied explicitly if automatic discovery is unavailable.

Export file mode

zepp-life-mcp setup --mode export_file --export-path ~/Downloads/ZeppExport
zepp-life-mcp doctor

Use

zepp-life-mcp sync --start-date 2022-01-01 --end-date 2022-12-31
zepp-life-mcp serve

MCP client config

Example Claude Desktop config:

{
  "mcpServers": {
    "zepp-life": {
      "command": "zepp-life-mcp",
      "args": ["serve"]
    }
  }
}

MCP tools

All tool responses keep the backward-compatible JSON envelope with status: "ok" or status: "error". Failed calls also use MCP isError: true.

Tool

Purpose

get_connection_status

Report configuration, lazy connection state, and sync health

sync_data

Sync selected data types with optional start_date, end_date, and force_full_sync

get_profile

Return the connected user ID/timezone and accept the compatible include_devices option

get_daily_summary

Query one date or a date range of daily activity

query_metric_series

Query steps, distance_m, active_kcal, weight_kg, or sleep_minutes by day/week/month with sum/avg/min/max/latest

query_sleep

Query sleep sessions by sleep start date with optional naps/stages

query_workouts

Query workouts with activity, duration, and distance filters

query_heart_rate

Query resting/active/passive/workout heart-rate samples

query_body_measurements

Query weight/body metrics with optional latest-only output

get_data_coverage

Report first/last dates and days with data by type

Sync and storage behavior

  • SQLite schema upgrades run automatically through PRAGMA user_version migrations.

  • Destructive rebuild migrations create a timestamped database backup first.

  • Sync cursors are scoped by source, user, and data type.

  • Empty successful syncs update the attempt/success state and advance the logical date cursor.

  • Failed or partial syncs report failed_data_types; a failed pass never advances its cursor.

  • Existing 0.1.0 databases are upgraded in place without reinterpreting legacy calendar dates.

Example prompts

  • Show my workouts from the last 30 days

  • How has my weight changed this year?

  • Summarize my sleep for the past week

  • Sync my latest Zepp Life data

Commands

zepp-life-mcp --help
zepp-life-mcp setup --help
zepp-life-mcp doctor
zepp-life-mcp sync --help
zepp-life-mcp serve

Development

uv run ruff check src tests scripts
uv run pytest -q
uv run python -m build

Troubleshooting

  • Connection: failed

    • verify apptoken

    • provide --user-id if automatic UID discovery is unavailable

  • No export data found

    • verify the extracted archive path

    • verify that CSV or JSON export files are present

  • sync returns no data

    • try another date range

    • try export mode if cloud coverage is incomplete

Security

  • apptoken is stored via the system keyring

  • do not commit .env, exported health data, or local SQLite files

  • prefer interactive setup over pasting secrets into shell history

Disclaimer

This is an unofficial project and is not affiliated with Xiaomi or Zepp Health.

Install Server
A
license - permissive license
B
quality
B
maintenance

Maintenance

Maintainers
Response time
5moRelease cycle
2Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

  • A
    license
    C
    quality
    B
    maintenance
    Enables reading and syncing Xiaomi Mi Fitness health data (steps, heart rate, sleep, workouts) from the Chinese cloud region to a local SQLite database via MCP tools.
    10
    3
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Self-hosted MCP server that syncs Xiaomi fitness data to SQLite and provides authenticated tools to query health metrics (steps, sleep, HR, etc.) for AI assistants like Grok.
    GPL 3.0

View all related MCP servers

Related MCP Connectors

  • MCP server for Withings health data — sleep, activity, heart, and body metrics.

  • MCP server for Zooza — class scheduling, attendance, and booking for activity businesses.

  • MCP server wrapping the Tesla Fleet API and TeslaMate API

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/kubulashvili/zepp-life-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server