关于 inbody-api-mcp
inbody-api-mcp 是只读 MCP 服务,供希望通过 MCP 客户端访问 InBody 身体成分历史数据的用户使用。它从 InBody Android 应用所用的区域 API 获取个人资料、扫描摘要以及详细成分和阻抗指标。
主要功能
- 01获取个人资料和基线指标
- 02列出扫描历史和扫描总数
- 03读取详细成分与阻抗数据
- 04按国家路由请求并刷新认证
适用场景
- 01查看多次扫描中的身体成分变化
- 02获取特定扫描的详细指标
MCP 相关
该服务提供四种只读工具,用于读取个人资料、扫描总数、扫描列表和完整扫描详情。通过 stdio 传输供 MCP 客户端使用。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
uvx inbody-api-mcpINBODY_LOGIN_IDThe phone number used to register your InBody account (digits only, no country code).INBODY_LOGIN_PW密钥Your InBody account passwordINBODY_COUNTRY_CODEISO country code selecting the regional API host (defaults to US).本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
inbody-api-mcp
面向 Claude.ai、ChatGPT 和 Grok 的托管版本即将推出。 加入候补名单 →
这是一个用于 InBody 身体成分数据的 MCP(Model Context Protocol) 服务,基于对 InBody Android 应用所用移动 REST API 的逆向工程构建。
InBody 没有公开 API,也没有用于查看个人扫描数据的网页界面。此服务会访问移动应用所用的相同 JSON REST 端点,将您的身体成分历史记录(体脂、肌肉量、体水分、分段阻抗)提供给任何 MCP 客户端。
功能
- 个人资料 -- 身份信息和基准指标(身高、体重、年龄、性别)
- 扫描历史记录 -- 按时间顺序排列的摘要(体重、BMI、体脂百分比、肌肉量)
- 完整扫描指标 -- 完整身体成分(BCA)、包含正常范围的 BMI/体脂百分比/肌肉(MFA),以及分段/多频阻抗(IMP)
- 自动区域路由 -- 根据您的国家/地区代码解析正确的区域 API 主机
- 自动重新认证 -- 缓存 24 小时有效的 JWT,并在过期时重新登录
快速开始
1. 安装 uv
curl -LsSf https://astral.sh/uv/install.sh | sh
2. 设置凭据
export INBODY_LOGIN_ID="3026323617" # registration phone number, digits only
export INBODY_LOGIN_PW="your-password"
export INBODY_COUNTRY_CODE="US" # ISO country code (default US)
INBODY_LOGIN_ID是注册时使用的电话号码,而不是电子邮箱 -- 仅填写数字,不含国家/地区代码或+(例如:3026323617)。InBody 使用电话号码进行登录;电子邮箱仅作为个人资料数据返回。使用电子邮箱会导致登录失败并返回EmptyData。
3. 配置 MCP 客户端
uvx 会按需下载并运行服务,无需单独安装。
OpenCode(opencode.json)
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"inbody": {
"type": "local",
"command": ["uvx", "inbody-api-mcp"],
"environment": {
"INBODY_LOGIN_ID": "{env:INBODY_LOGIN_ID}",
"INBODY_LOGIN_PW": "{env:INBODY_LOGIN_PW}",
"INBODY_COUNTRY_CODE": "US"
},
"enabled": true
}
}
}
Claude Desktop(claude_desktop_config.json)
{
"mcpServers": {
"inbody": {
"command": "uvx",
"args": ["inbody-api-mcp"],
"env": {
"INBODY_LOGIN_ID": "3026323617",
"INBODY_LOGIN_PW": "your-password",
"INBODY_COUNTRY_CODE": "US"
}
}
}
}
可用工具
| 工具 | 描述 |
|---|---|
get_profile | 用户身份信息和基准指标(身高、体重、年龄、性别) |
get_scan_count | 账户中的扫描总数 |
list_scans | 按时间顺序排列的扫描摘要(体重、BMI、体脂百分比、肌肉量) |
get_scan | 单次扫描的完整指标集(BCA / MFA / IMP 块) |
此服务为只读服务:不提供写入或删除端点。
工作原理
此服务与区域 *.lookinbody.com REST API 通信,该 API 与 InBody Android 应用(v2.8.31)使用的是同一后端。该 API 是通过 mitmproxy 捕获应用流量并根据实时 API 验证载荷结构进行逆向工程得到的。
认证流程:
POST /CommonAPI/GetCountryInfoV2(在appapicommon.lookinbody.com上)会返回按国家/地区划分的主机表。与您的 ISO 国家/地区代码对应的Type == "API"行会提供区域 API 基础地址(美国 ->appapiusav2.lookinbody.com)以及请求正文中使用的数字电话代码。POST /V2/Main/GetLoginWithSyncDataPartV2会将登录 ID 和密码交换为有效期为 24 小时的 JWT、刷新令牌和账户 UID。- 后续调用会发送
Authorization: Bearer <JWT>。令牌过期时,客户端会自动重新认证。
每条扫描记录包含三个嵌套块:BCA(身体成分分析——体水分、蛋白质、矿物质、脂肪、分段水分)、MFA(BMI、体脂百分比、骨骼肌量、腰臀比及其正常范围)和 IMP(按频率和身体部位划分的原始阻抗)。
Python API
您可以直接使用客户端:
from inbody_api_mcp.client import InBodyClient
client = InBodyClient()
# Total number of scans
count = client.get_scan_count()
# Recent scans (newest first), paginated
scans = client.get_scans(number=20, index=0)
# User profile
profile = client.get_user_info()
传输方式
仅支持 stdio。MCP 客户端(OpenCode、Claude Desktop)通过 uvx/uv 直接启动 stdio 进程。
许可证
MIT
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。