内容
# Renpho MCP 服务器
一款提供访问 Renpho 智能体重秤身体成分数据的 [模型上下文协议](https://modelcontextprotocol.io) (MCP) 服务器。直接从 Claude、Cursor 或任何 MCP 兼容的客户端查询体重、体脂、肌肉量等健康指标。
## 功能
- **身体成分数据**:体重、BMI、体脂百分比、肌肉量、水分百分比、骨骼质量、内脏脂肪、代谢年龄、基础代谢率等
- **体重趋势**:跟踪可自定义时间段(7-365 天)的变化
- **健康分类**:自动 BMI、体脂和内脏脂肪分类评估
- **测量历史**:访问历史测量数据,并可按日期筛选
- **多表发现**:扫描所有链接的 Renpho 体重秤表,而不假设第一个发现的体重秤用户 ID 始终正确
- **同步诊断**:检查链接的体重秤用户 ID、隐藏的测量数据和可能的延迟 Wi-Fi 同步情况
- **安全**:凭证存储为环境变量,绝不会被记录
## 要求
- Node.js 18+
- 一个 [Renpho 健康](https://renpho.com) 账户,搭配连接的智能体重秤
- **重要**:此功能与 **Renpho 健康** 应用(蓝色图标)配合使用,而非旧版 Renpho 应用
## 安装
```bash
git clone https://github.com/StartupBros/renpho-mcp-server.git
cd renpho-mcp-server
npm install
npm run build
```
## 配置
创建 `.env` 文件(或设置环境变量):
```bash
RENPHO_EMAIL=您的邮箱@example.com
RENPHO_PASSWORD=您的密码
```
### Claude 代码
添加到您的 MCP 设置(`~/.claude/settings.json` 或项目 `.claude/settings.json`):
```json
{
"mcpServers": {
"renpho": {
"command": "node",
"args": ["/path/to/renpho-mcp-server/dist/index.js"],
"env": {
"RENPHO_EMAIL": "您的邮箱@example.com",
"RENPHO_PASSWORD": "您的密码"
}
}
}
}
```
### Claude 桌面版
添加到 `claude_desktop_config.json`:
```json
{
"mcpServers": {
"renpho": {
"command": "node",
"args": ["/path/to/renpho-mcp-server/dist/index.js"],
"env": {
"RENPHO_EMAIL": "您的邮箱@example.com",
"RENPHO_PASSWORD": "您的密码"
}
}
}
}
```
## 可用工具
| 工具 | 描述 |
|------|-------------|
| `get_latest_measurement` | 当前用户最近的身体成分读数 |
| `get_body_composition` | 详细的身体成分数据及健康分类 |
| `get_weight_trend` | N 天内的体重变化分析 |
| `get_measurements` | 历史测量数据,并可按日期筛选 |
| `get_current_user` | 用户档案信息 |
| `get_scale_users` | 链接的体重秤用户 ID 及 Renpho 表映射 |
| `get_sync_diagnostics` | 调试链接的体重秤用户中隐藏/延迟的测量数据 |
| `refresh_data` | 清除缓存并强制刷新 Renpho 会话 |
| `health_check` | 验证 API 连接状态 |
## 示例用法
配置完成后,询问 Claude:
- "我的当前体重和身体成分是多少?"
- "显示我过去 90 天的体重趋势"
- "我的体脂百分比今年发生了怎样的变化?"
- "获取我的最近 10 次测量数据"
- "显示我的 Renpho 体重秤用户 ID"
- "为最近 7 天运行同步诊断"
- "刷新 Renpho 数据并重新检查我的最新测量数据"
## 技术说明
- 使用 Renpho 健康 API(`cloud.renpho.com`),而非旧版 API
- 实现 AES-128-ECB 加密用于 API 通信
- 处理大用户 ID 的 JavaScript BigInt 精度
- 扫描所有发现的 Renpho 体重秤表和体重秤用户 ID,然后再为当前用户选择测量数据
- 包含同步诊断工具,用于显示与链接的体重秤用户关联但当前未选择的测量数据
- 缓存身份验证令牌(50 分钟)和测量数据(5 分钟),以减少 API 调用
## 已知 Wi-Fi 体重秤同步问题
一些 Wi-Fi 体重秤似乎会上传测量数据,但这些数据不会立即绑定到预期的 Renpho 用户,直到移动应用执行额外的同步逻辑。此服务器现在通过 `get_scale_users`、`get_sync_diagnostics` 和 `refresh_data` 帮助调试该状态,但应用使用的确切服务器端绑定调用仍在调查中。
## 隐私
- 凭证仅用于向 Renpho 的 API 进行身份验证
- 不会永久存储数据或将其发送给第三方
- 所有通信均使用 HTTPS
## 致谢
API 逆向工程基于 [RenphoGarminSync-CLI](https://github.com/forkerer/RenphoGarminSync-CLI) by forkerer。
## 许可证
MIT