mifit MCP server
io.github.Jenwein · Updated
Read-only access to your own Mi Fitness (Xiaomi) data: sleep, heart rate, steps, workouts
At a glance
mifit is an MCP server in the Dev Tools & Git category. It runs locally over stdio via `uvx mifit`, and declares no required credentials. It scores B (71/100) on the MCP Skills Hub health score as of Oct 28, 2026.
One-click install
Opens your editor and pre-fills the config. Your editor will ask before adding it.
How to install mifit in your AI client
Setup for Claude Code, Claude Desktop, Cursor, Codex, Windsurf, Cline and VS Code — copy-paste ready.
How to install mifit in Claude CodeAnthropic's agentic CLI
Add the server
bashclaude mcp add mifit -- uvx mifitVerify it's connected
bashclaude mcp listSharing it with your team?
Add `--scope project` to write it to .mcp.json in the repository root, which you can commit (with the secrets left as environment variables).
Use it in a session
Ask Claude to use the tools this server exposes. It discovers them automatically.
How to install mifit in Claude DesktopDesktop app (MCP config)
Open your MCP config
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json · Windows: %APPDATA%\Claude\claude_desktop_config.json
Add this server
json{ "mcpServers": { "mifit": { "command": "uvx", "args": [ "mifit" ] } } }Restart Claude Desktop
The tools appear under the 🔌 menu once the app reloads.
How to install mifit in CursorAI-first code editor
Create / edit .cursor/mcp.json in your project
json{ "mcpServers": { "mifit": { "command": "uvx", "args": [ "mifit" ] } } }Enable it
Cursor Settings → MCP → toggle the server on. Tools become available to the Composer/Agent.
How to install mifit in Codex CLIOpenAI coding agent
Add to ~/.codex/config.toml
toml[mcp_servers.mifit] command = "uvx" args = ["mifit"]Run Codex
Codex loads MCP servers from config.toml on startup and exposes their tools to the agent.
How to install mifit in WindsurfCodeium's agentic IDE
Edit ~/.codeium/windsurf/mcp_config.json
json{ "mcpServers": { "mifit": { "command": "uvx", "args": [ "mifit" ] } } }Reload
Windsurf → Cascade → refresh MCP servers. Cascade can now call the tools.
How to install mifit in ClineVS Code autonomous agent
Open Cline → MCP Servers → Configure
Adds to cline_mcp_settings.json.
Add the server
json{ "mcpServers": { "mifit": { "command": "uvx", "args": [ "mifit" ] } } }
How to install mifit in VS CodeCopilot / MCP support
Create .vscode/mcp.json
json{ "servers": { "mifit": { "type": "stdio", "command": "uvx", "args": [ "mifit" ] } } }Start it
VS Code shows a ▶ Start action above the server entry. Agent mode (Copilot Chat) can then use the tools.
What tools does mifit expose?
This server runs as a local package. We only query remote servers for their tool list — asking this one would mean executing it, so its tools are listed in the documentation below.
What the code can do
Source analysis currently covers npm packages only. This server ships as a Python package, which needs a different parser.
Before you install
Signals gathered from the source repo and package registry — not a safety verdict.
What it can reach
- Runs code on your machine — Executes as a local process with your user's permissions, including filesystem access.
- Downloads at launch — The package is fetched from its registry each run unless you pin a version.
- Last commit today — Actively maintained.
- Repository created 15 days ago — Very new project with little track record yet.
- 0 GitHub stars — Very little community usage so far.
Client compatibility
Health score
B · 71Maintenance, adoption, transparency and packaging — not a safety audit. How this is calculated
- Maintenance30%100%
Last commit 0 days ago.
- Adoption20%0%
0 stars.
- Transparency20%75%
3/4: ✓ public source repo, ✓ declared license, ✓ documentation, ✗ discoverable tool list.
- Provenance15%75%
Links to its own repository; package linkage unverified.
- Packaging15%100%
Publishes a pinned version (0.4.0).
Documentation
Full READMEmifit
Read your own Mi Fitness (小米运动健康) data from the Xiaomi cloud: a small Python library, a command-line tool and an MCP server for AI assistants.
The Mi Fitness app syncs your steps, heart rate, sleep and more to the Xiaomi cloud, but Xiaomi offers no public API for individuals. mifit signs in to your own account by QR code, reads that synced data and returns it as JSON or as Python objects, so you can build on it.
Unofficial. Not affiliated with, endorsed by or supported by Xiaomi. See Disclaimer.
What it reads today
| Domain | What you get | records type | Checked against the app | |---|---|---|---| | steps | steps and distance per day | StepRecord | yes | | heart_rate | raw heart-rate samples | HeartRatePoint | yes | | heart_rate_daily | heart rate per day: average, maximum, minimum, resting | HeartRateDailySummary | yes | | consumption | calories per day: resting, active, intake, total | ConsumptionRecord | yes | | sleep | sleep per day: totals, stage minutes, sessions with their stage timeline | SleepRecord → SleepSession → SleepStage | yes; the sleep score could not be checked and is in raw only | | workouts | one entry per workout: start and end, sport, duration, distance, active and total calories, average and maximum heart rate, steps | Workout | yes | | workout_detail | per workout (outdoor runs and rides): per-second samples (heart rate, cumulative distance and steps, cadence, pace or speed) and the GPS track | WorkoutDetail → WorkoutSample / TrackPoint | yes (one outdoor run, one ride); altitude is in raw only: the run's was a few metres off the app's | | spo2_daily | blood oxygen (SpO2) per day: average, maximum, minimum | Spo2DailySummary | yes | | spo2 | raw SpO2 readings | Spo2Point | yes | | stress_daily | stress level per day: average, highest, lowest, and minutes in each stress band (relaxed, mild, moderate, severe) | StressDailySummary | yes | | activity_daily | activity per day, as on the app's 活力指标 page: activity count (活动次数), activity minutes (活动时长), active calories (卡路里) | ActivityDailySummary | yes | | weight | weight entries: time, weight, BMI (body composition in raw only) | WeightRecord | yes; body composition could not be checked and is in raw only | | profile (its own command: mifit profile) | height, weight, daily step, calorie and activity-time goals | UserProfile | yes | | raw (CLI: mifit raw; Python: client.raw, raw_window, daily_report) | the rows of any fitness-data or daily-report key, as the service sends them | none: the service's rows, uninterpreted | not applicable: nothing is interpreted |
"Checked against the app" means the values were compared with what the Mi Fitness app shows, on one real account (China region, UTC+8). More is planned. Meanwhile, mifit raw (in Python raw_window and daily_report) returns the rows of any other key of the fitness-data or (with --daily) daily-report endpoint, uninterpreted.
What changed in each version, breaking changes included, is in CHANGELOG.md.
Install
Requires Python 3.12 or later; uv installs one for you if needed.
uv tool install mifit # recommended: its own environment, `mifit` on your PATH
pipx install mifit # the same, with pipx
pip install mifit # into the current environment, to use it as a libraryUpgrade: uv tool upgrade mifit (or pipx upgrade mifit, pip install -U mifit).
Log in
mifit loginExcerpt — the full document is on GitHub.
Alternatives to mifit
- FilesystemA · 93Secure file operations with configurable access controls — read, write, search and move files in directories you explicitly allow.
- DLBrowserB · 70Self-healing web access for AI agents — recovers through bot blocks, captchas and JS pages.
- AMIRA — Africa Multiple Research DataB · 71Read-only access to AMIRA, the Africa Multiple research-data platform on Omeka S.
Maintain mifit? Add a badge to your README
Shows its health grade, and links readers to install steps for every client.
[](https://mcp-skills-hub.vercel.app/mcps/io-github-jenwein-mifit)Catalog data refreshed . Something wrong? Report it.