The full upstream README, mirrored here for reference. Install config, tool schemas, adoption signals, and an original overview live on the Mi Fitness Data Bridge listing page.
English: README.en.md
面向本人有权访问的小米运动健康(Mi Fitness)数据的本地优先数据桥。它通过非官方的实验性云端适配器读取数据,规范化保存到本机 SQLite,并提供 JSON/CSV 导出、Python 集成及本地 MCP 工具。
非官方、实验性项目。 本项目与小米没有隶属、背书或支持关系;小米、米家(Mi Home)和 Mi Fitness 是小米公司的商标。适配器依赖非公开上游接口,小米的服务、账户地区、设备、固件或认证方式变化后,登录、连接或某些数据类型可能随时失效。仅可用于你有权访问的账户和数据。

截图和本文全部示例均为合成数据;不含凭证、账户标识符或真实健康导出数据。
| 功能 | 说明 |
|---|---|
| 本地缓存 | 将同步并规范化后的记录保存到你的本机 SQLite 数据库。 |
| 可移植导出 | 导出一个 JSON 文件,或为每个数据集导出一个 CSV 文件;不会导出已保存的 passToken。 |
| 本地 MCP 服务 | 通过标准输入/输出(stdio)提供个人自动化和本地 AI 工作流所需的查询工具。 |
| Python 集成 | 保留 mi_fitness_mcp 命名空间,兼容既有下游使用者。 |
默认云端地区为 cn,也可在配置时指定其他地区。实际可用记录取决于账户地区、设备、固件及小米上游服务;某个数据类型同步成功但返回 0 条记录,可能只是指定范围内没有该类型数据。
日常活动的步数按本地“分钟切片”汇总:当手机、手环或手表对同一分钟上报重叠记录时,会保留较大的单条记录而不是相加,以避免双设备重复计步。该规则是对非公开上游数据的最佳兼容处理,最终数值仍可能与 App 的服务端修正结果不同。
这是数据连接器和本地数据基础设施,明确不提供:
下游项目应安装本包或消费本地导出结果,而不是复制连接器源码。
要求:Python 3.11 或更高版本。
Windows PowerShell:
macOS / Linux:
安装开发依赖:
主命令为 mi-fitness-bridge;旧命令 mi-fitness-mcp 仍保留为兼容别名。
请使用交互式配置。passToken 提示会隐藏输入,避免它进入 shell 历史:
配置过程会询问 Mi Fitness 的 user_id、passToken 和地区(默认 cn)。凭证会在可用时保存到本机操作系统的密钥环;使用前请了解当前密钥环后端的安全特性。不要在命令行、脚本、Issue、日志或截图中粘贴 passToken。setup 不接受 --user-id 或 --pass-token 命令行参数。
doctor 会检查本地配置、凭证和数据库;配置了凭证时还会检查云端连通性。云端检查可能因网络或上游服务变动失败,但已有本地数据和导出操作仍可离线使用。
sync、export、serve 和 doctor 支持 --db,也支持 MI_FITNESS_DB_PATH 环境变量指定数据库路径,优先级为:命令行参数 > 环境变量 > 配置/默认路径。
同步日期范围内所有支持的数据类型:
只同步某一种数据:
--type 可选值:daily_activity、heart_rate、body_measurements、sleep、workouts、spo2、stress、abnormal_heart_beat。CLI 会按数据类型报告新增、更新、部分完成和失败情况。指定明确日期范围的重复同步是幂等的,不会复制已有记录;若小米后来修正了较早日期,请用显式的较早 --start-date 重跑该范围。
导出一个 JSON 文件:
导出 CSV(每个数据集一个文件):
按数据集和日期筛选:
日期必须使用 YYYY-MM-DD,开始日期不得晚于结束日期。JSON 使用 UTF-8,CSV 使用带 BOM 的 utf-8-sig,便于 Excel 正确打开中文。导出的健康记录属于敏感个人数据,且可能含明文 user_id;默认 .gitignore 会忽略数据库、导出目录和常见日志,但你仍需妥善保存、分享和备份它们。
详见 导出格式说明(英文),其中描述 JSON 信封、CSV 布局及包含边界的日期筛选规则。
启动本地 stdio MCP 服务:
可用工具包括:get_connection_status、sync_data、get_sync_status、get_profile、get_daily_summary、query_metric_series、get_data_coverage、query_body_measurements、query_sleep、query_workouts、workout_series、query_heart_rate、query_spo2、query_stress 和 query_abnormal_heart_beat。
服务通过标准输入/输出通信,应由本机 MCP 客户端启动和管理;直接在终端运行时看似“卡住”是因为它正在等待 MCP 消息。它不会在启动时连接小米,只有状态检查或同步操作才按需建立云端连接。不要将它暴露为公网服务或凭证代理。
客户端配置示例:
兼容包名保持为 mi_fitness_mcp:
不要硬编码真实凭证,也不要将它们提交到源代码管理。下游项目应安装本包,而不要供应或复制其源码。
仓库包含完全不访问网络或真实账户的演示:
它会创建临时 SQLite 数据库、写入合成记录,并运行真实的 JSON/CSV 导出流程。可用于验证本地导出路径,或准备不泄露隐私的 Bug 报告。
Issue、测试、文档和截图中只可使用合成数据。安全问题请遵循 SECURITY.md;发布步骤请见 docs/release-checklist.md。
passToken、SQLite 数据库、导出文件和日志保密。query_* MCP 工具返回的健康数据会流入你使用的 MCP 客户端;仅限本机 stdio 客户端使用,切勿接入远程或托管代理。当前版本采用 AGPL-3.0-only 许可证;2026-08-03 之前发布的版本为 MIT。详见 LICENSE。