Inbody Api Mcp

io.github.rwestergren由 GitHub 账号 rwestergren 发布v0.1.0更新于 Oct 24, 2026

MCP server for InBody body-composition data — scans, body fat, muscle mass, body water

已验证STDIO仅桌面位置与生活数据与分析

概览

AI 生成的概览

只读的 MCP 服务器,让助手通过 InBody 手机端 API 获取你的身体成分数据:个人资料、扫描列表与完整扫描指标。

可以做什么
  • 读取个人身份与基础指标,如身高、体重、年龄、性别
  • 统计扫描总数,并按时间列出体重、BMI、体脂率、肌肉量等扫描摘要
  • 获取单次扫描的完整指标,包括身体成分、含正常范围的 BMI/体脂/肌肉量,以及分段阻抗
  • 根据国家代码自动路由到对应区域 API 主机,并在令牌过期时自动重新登录
适用场景
适合让助手查看和讨论你自己的 InBody 扫描记录,例如追踪体重、体脂、肌肉量或分段阻抗随时间的变化,而无需手动导出数据。
运行要求
以 stdio 方式在本机运行,通常通过 uvx 从 PyPI 包启动,需要 Python 工具链(uv)。需要 InBody 账号:INBODY_LOGIN_ID(注册手机号,仅数字)与 INBODY_LOGIN_PW。可选 INBODY_COUNTRY_CODE 选择区域 API 主机(默认 US)。需要能访问 InBody 区域 API 的网络。
安装前请注意
需要在 INBODY_LOGIN_PW 中提供 InBody 账号密码,并在 INBODY_LOGIN_ID 中提供注册手机号,应放在客户端的环境配置中而非共享文件。它依赖逆向工程得到的非公开手机 API,可能随时失效。虽然为只读,但你的身体成分数据会与 InBody 服务器之间传输。

安装

在 SourceWeft 中

  1. 打开 控制台中的 Inbody Api Mcp,将其添加到工作区。
  2. 为需要使用其工具的对话启用该服务。

Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。

其他 MCP 客户端

参照 仓库 中的启动说明。

README

inbody-api-mcp

[License: MIT] [CI] [Build Docker image] [PyPI]

Hosted version for Claude.ai, ChatGPT, and Grok coming soon. Join the waitlist →

An MCP (Model Context Protocol) server for InBody body-composition data, built on the reverse-engineered mobile REST API used by the InBody Android app.

InBody has no public API and no web UI for personal scan data. This server talks to the same JSON REST endpoints the mobile app uses, exposing your body composition history (body fat, muscle mass, body water, segmental impedance) to any MCP client.

Features

  • Profile -- identity and baseline metrics (height, weight, age, gender)
  • Scan history -- chronological summaries (weight, BMI, % body fat, muscle mass)
  • Full scan metrics -- complete body composition (BCA), BMI/%fat/muscle with normal ranges (MFA), and segmental/multi-frequency impedance (IMP)
  • Automatic region routing -- resolves the correct regional API host from your country code
  • Automatic re-authentication -- caches the 24h JWT and re-logs in on expiry

Quick Start

1. Install uv

bash
curl -LsSf https://astral.sh/uv/install.sh | sh

2. Set credentials

bash
export INBODY_LOGIN_ID="3026323617"   # registration phone number, digits onlyexport INBODY_LOGIN_PW="your-password"export INBODY_COUNTRY_CODE="US"       # ISO country code (default US)

INBODY_LOGIN_ID is the phone number used at registration, not your email -- digits only, no country code or + (e.g. 3026323617). InBody keys login on the phone number; the email is only returned as profile data. An email value will fail login with EmptyData.

3. Configure your MCP client

uvx downloads and runs the server on demand -- no separate install step.

OpenCode (opencode.json)
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)
json
{  "mcpServers": {    "inbody": {      "command": "uvx",      "args": ["inbody-api-mcp"],      "env": {        "INBODY_LOGIN_ID": "3026323617",        "INBODY_LOGIN_PW": "your-password",        "INBODY_COUNTRY_CODE": "US"      }    }  }}

Available Tools

ToolDescription
get_profileUser identity and baseline metrics (height, weight, age, gender)
get_scan_countTotal number of scans on the account
list_scansChronological scan summaries (weight, BMI, % body fat, muscle mass)
get_scanFull metric set for one scan (BCA / MFA / IMP blocks)

This server is read-only: no write or delete endpoints are exposed.

How It Works

This server communicates with the regional *.lookinbody.com REST API -- the same backend used by the InBody Android app (v2.8.31). The API was reverse-engineered by capturing app traffic with mitmproxy and confirming payload shapes against the live API.

The auth flow:

  1. POST /CommonAPI/GetCountryInfoV2 (on appapicommon.lookinbody.com) returns a per-country host table. The Type == "API" row for your ISO country code gives the regional API base (US -> appapiusav2.lookinbody.com) and the numeric phone code used in request bodies.
  2. POST /V2/Main/GetLoginWithSyncDataPartV2 exchanges the login ID + password for a 24-hour JWT, a refresh token, and the account UID.
  3. Subsequent calls send Authorization: Bearer <JWT>. The client re-authenticates automatically when the token expires.

Each scan record nests three blocks: BCA (body composition analysis -- body water, protein, mineral, fat, segmental water), MFA (BMI, % body fat, skeletal muscle mass, WHR with normal ranges), and IMP (raw impedance per frequency and body segment).

Python API

You can use the client directly:

python
from inbody_api_mcp.client import InBodyClient
client = InBodyClient()
# Total number of scanscount = client.get_scan_count()
# Recent scans (newest first), paginatedscans = client.get_scans(number=20, index=0)
# User profileprofile = client.get_user_info()

Transport

stdio only. MCP clients (OpenCode, Claude Desktop) spawn the stdio process directly via uvx/uv.

License

MIT

来源:README.md,提交 f87f2b3

工具

0
SourceWeft 尚未在沙箱中启动过该软件包,因此其工具未知。

版本历史

1
  1. v0.1.0最新Sep 16, 2026

评分

已满足适用检查项的 50%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通25 分

    请保持端点能够响应 MCP 握手;SourceWeft 每 30 天探测一次。

  • 已声明认证方式10 分

    请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。

  • 已列出工具15 分

    请让服务器在无凭据时响应 tools/list,或发布可在沙箱中无凭据启动的软件包。

  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分