mcpField
I
inbody-api-mcp

inbody-api-mcp

本地服务
github.com/rwestergren健康医疗1519 周前更新

关于 inbody-api-mcp

inbody-api-mcp 是只读 MCP 服务,供希望通过 MCP 客户端访问 InBody 身体成分历史数据的用户使用。它从 InBody Android 应用所用的区域 API 获取个人资料、扫描摘要以及详细成分和阻抗指标。

主要功能

  1. 01获取个人资料和基线指标
  2. 02列出扫描历史和扫描总数
  3. 03读取详细成分与阻抗数据
  4. 04按国家路由请求并刷新认证

适用场景

  1. 01查看多次扫描中的身体成分变化
  2. 02获取特定扫描的详细指标

MCP 相关

该服务提供四种只读工具,用于读取个人资料、扫描总数、扫描列表和完整扫描详情。通过 stdio 传输供 MCP 客户端使用。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"rwestergren-inbody-api": {
"command": "uvx",
"args": [
"inbody-api-mcp"
],
"env": {
"INBODY_LOGIN_ID": "<INBODY_LOGIN_ID>",
"INBODY_LOGIN_PW": "<INBODY_LOGIN_PW>",
"INBODY_COUNTRY_CODE": "<INBODY_COUNTRY_CODE>"
}
}
}
}
启动命令uvx inbody-api-mcp
需要配置的环境变量
INBODY_LOGIN_IDThe phone number used to register your InBody account (digits only, no country code).
INBODY_LOGIN_PW密钥Your InBody account password
INBODY_COUNTRY_CODEISO country code selecting the regional API host (defaults to US).

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
pypiinbody-api-mcp0.1.0

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

inbody-api-mcp

License: MIT CI Build Docker image PyPI

面向 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 验证载荷结构进行逆向工程得到的。

认证流程:

  1. POST /CommonAPI/GetCountryInfoV2(在 appapicommon.lookinbody.com 上)会返回按国家/地区划分的主机表。与您的 ISO 国家/地区代码对应的 Type == "API" 行会提供区域 API 基础地址(美国 -> appapiusav2.lookinbody.com)以及请求正文中使用的数字电话代码。
  2. POST /V2/Main/GetLoginWithSyncDataPartV2 会将登录 ID 和密码交换为有效期为 24 小时的 JWT、刷新令牌和账户 UID。
  3. 后续调用会发送 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

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。