关于 Body Lab
Body Lab 的 MCP 服务让助手读取个人训练数据和训练引擎结果,适合需要训练建议与回顾的运动者。它还可在授权范围内记录更新、安排自选训练,并提供恢复、力量训练和化验信息。
主要功能
- 01查看当日训练安排及原因
- 02查看周计划、训练回顾和状态
- 03查询活动、恢复和测量记录
- 04安排训练课程与力量训练计划
- 05读取和记录获准的健康数据
适用场景
- 01询问今天训练什么及其原因
- 02回顾已完成的一周训练
- 03查看恢复情况和近期活动
- 04添加化验结果或身体成分扫描
MCP 相关
托管 MCP 服务 https://bodylab.lol/mcp 向已连接的客户端提供 Body Lab 工具。训练数据访问及可选读写能力由不同权限控制。
配置
远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。
https://bodylab.lol/mcpclaude mcp add --transport http lol-bodylab-body-lab https://bodylab.lol/mcp{"mcpServers":{"lol-bodylab-body-lab":{"type":"http","url":"https://bodylab.lol/mcp"}}}在 Cursor 中打开{"servers":{"lol-bodylab-body-lab":{"type":"http","url":"https://bodylab.lol/mcp"}}}在 VS Code 中打开{"mcpServers":{"lol-bodylab-body-lab":{"type":"http","url":"https://bodylab.lol/mcp"}}}{"mcpServers":{"lol-bodylab-body-lab":{"serverUrl":"https://bodylab.lol/mcp"}}}命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。
工具
详细介绍
Body Lab MCP 服务
将 Claude、ChatGPT 或任何支持 Model Context Protocol 的助手连接到你的 Body Lab 训练数据。询问今天该做什么以及原因、上周训练情况如何、你是否恢复了,或者你的深蹲表现如何,答案都会来自你的个人数据和 Body Lab 引擎。
https://bodylab.lol/mcp
本仓库是该服务的公开主页:介绍如何连接、工具参考、MCP Registry 条目,以及 Claude Code 插件。服务本身运行在上方的网址。它由托管,无需安装或运行任何内容。
连接
你需要一个 Body Lab 账户。助手首次连接时,会引导你前往 Body Lab 登录并授权。
Body Lab 尚未列入各助手的应用目录,因此你需要通过网址添加它。
Claude(网页、桌面端、移动端):
- 在 claude.ai 或 Claude Desktop 中,打开 自定义 → 连接器。
- 按 +,选择 添加自定义连接器,粘贴
https://bodylab.lol/mcp并按 添加。 - 按 连接,然后登录 Body Lab 并授权 Claude。
- 在聊天中,通过 + → 连接器 启用 Body Lab。之后也可以在 Claude 移动应用中使用。
如果使用 Team 或 Enterprise 方案,组织所有者需先添加它 (组织设置 → 连接器)。免费方案仅支持一个自定义连接器。请参阅 Anthropic 的 自定义连接器指南。
ChatGPT(网页;Plus、Pro、Business、Enterprise 或 Education):
- 打开 设置 → 安全与登录,并启用 开发者模式。
- 打开 Plugins,按 +,使用 OAuth 和
https://bodylab.lol/mcp创建应用。 - 登录 Body Lab 并授权 ChatGPT。
- 在聊天中,从消息框中的 开发者模式 选择 Body Lab。
请参阅 OpenAI 的开发者模式指南。
Claude Code:
claude mcp add --transport http body-lab https://bodylab.lol/mcp
然后在 Claude Code 中运行 /mcp,并选择 Body Lab 登录。你也可以安装
插件,它会添加服务和相关技能,帮助你更好地使用它:
/plugin marketplace add bodylab-lol/mcp
/plugin install body-lab@bodylab-lol
**VS Code、Cursor 和其他客户端:**添加一个远程(Streamable HTTP)MCP
服务,网址为 https://bodylab.lol/mcp。对于使用 JSON 配置的客户端:
{
"mcpServers": {
"body-lab": { "type": "http", "url": "https://bodylab.lol/mcp" }
}
}
功能
助手可以查看你的训练数据。经你许可,它还可以向 Body Lab 提交当天的情况、将你安排好的训练课和选定的力量训练计划添加到日历并再次移除、添加优先级为 B 或 C 的比赛和目标、查看你的化验结果并添加新结果(例如从化验报告的 PDF 或照片中添加),对身体成分扫描也能进行同样的操作,例如 DEXA;还可以读取或记录你的每日更新:你的感受、前一晚发生的情况,以及 Body Lab 从中发现的规律。它无法更改你的训练历史、删除任何内容,也不能将某场活动设为计划围绕其制定的 A 级比赛——这需要你在 Body Lab 中完成。
| 工具 | 用途 |
|---|---|
get_today | 今天(以及明天)安排的训练,包括心率和功率目标;对于已知临界速度后的跑步,还包括配速;训练安排背后的原因、备选方案、身体状态,以及 Body Lab 今天指出的事项:睡眠或恢复读数中的规律、新纪录、训练计划提示或缺失数据 |
set_today_context | 告诉 Body Lab 你今天有多少时间、手头有哪些器材,以及哪些运动不适合今天;并返回重新安排的训练。仅限当天。需要 today:write |
get_week | 引擎对未来七天的安排:详细列出今天和明天的训练,此后则提供摘要,并每天早晨更新 |
schedule_session | 将你安排好的训练——例如俱乐部骑行、和朋友一起跑步——添加到日历中,每次训练单独添加一条,以便 Body Lab 围绕它安排本周计划。同一训练重复添加时只保存一次。需要 schedule:write |
schedule_strength_routine | 将你选定的力量训练计划——例如某个计划的训练日、教练编写的训练——添加到日历中:使用 Body Lab 目录中的命名动作,并设置组数、次数、休息时间和重量、最大重量百分比或预留次数。若不填写重量,Body Lab 会在当天根据你自己的举重记录填入;你填写的重量则会按原样保留。单独添加的训练计划就是当天的训练,你可以在 Body Lab 的力量训练记录器中进行训练和记录。同一天重复添加同一计划时只保存一次;若 Body Lab 不提供某个动作,则会拒绝添加并给出建议。需要 schedule:write |
list_strength_routines | 查看日历中未来最多 60 天的力量训练计划,每项计划均列出已填写的动作、组数、次数和重量 |
withdraw_session | 将你安排的训练或力量训练计划从日历中撤下。记录会保留并标记为已撤下,不会删除;无法撤下 Body Lab 自己安排的训练。需要 schedule:write |
schedule_event | 添加优先级为 B 或 C 的比赛或目标。无法添加 A 级赛事,也无法编辑赛事;这两项操作都需在 Body Lab 中由你完成。需要 events:write |
remove_event | 读回赛事信息并与你确认后,移除它自行添加的比赛。无法移除你手动添加的比赛;即使 A 级比赛是它添加的,也无法移除——是否将比赛升为 A 级由你决定,因此是否撤销也由你决定。移除后无法恢复。需要 events:write |
get_weekly_review | 查看完整一周的训练与计划安排的对照情况、训练负荷是否处于目标区间、力量训练是否达到最低要求,以及目前的训练是否有助于即将到来的赛事 |
get_training_status | 每周的体能、疲劳、状态、负荷比、训练压力和强度分布,以及跑步者的临界速度:根据你近期的高强度跑步得出的可持续高强度跑步速度上限,并附带其 ± |
list_activities, get_activity | 查看你的活动,以及某项活动的详细信息,包括负荷、区间、功率和速度最佳成绩以及计划执行情况 |
get_recovery | 早晨静息 HR、HRV、睡眠和精力评分 |
get_daily_steps | 查看每天的步数、每条步数记录的来源,以及最近七个完整日的平均步数。每天只采用一个来源的计数,不会将多台设备的步数相加;当天的记录会标记为截至目前 |
get_measurements | 按日期范围查看一项或多项测量数据系列:晨间读数、步数、体重、VO2max、FTP 和阈值数值,以及按测量时段分组的每条血压记录。每个数据系列最多可查两年,且每次答复都有预算限制 |
get_strength | Body Lab 现在会安排的力量训练、估算的最大重量和近期训练记录 |
get_profile | 心率锚点、FTP、体重、最近一次血压、力量训练器材、测试结果和功率曲线 |
find_exercises | 搜索力量训练动作目录,可按名称、动作别名(“RDL”“skull crusher”)、动作模式或肌群搜索,并查看每个动作所需的器材 |
suggest_routes | 查找你以前跑过或骑过、适合今天训练的路线 |
get_patterns | 汇总你的每日更新:针对你可以记录的夜间情况(饮酒、咖啡因摄入较晚、压力大的一天、晚餐较晚、热水浴、卧室闷热),比较之后的早晨与普通夜晚的差异,并计入前一天的训练情况,同时说明现有数据是否足以得出结论。还包括一项持续进行的 14 晚实验和可供选择的实验。这些只是比较你自己的夜晚,绝不表示存在因果关系。需要 checkins:read |
record_daily_update | 记录你告诉助手的今早和昨晚的情况:感觉如何、发生了什么,或昨晚是否一切如常。仅限当天;保留你已在应用中记录的内容,且不能记录生病、受伤或经期开始。绝不会更改当天的训练。需要 checkins:write |
get_lab_results | 查看你的血液检测结果:每项指标随时间的变化、与实验室参考范围及指南限值的对照,以及变化是否超出正常波动范围。需要 labs:read |
record_lab_results | 按报告原文添加一次采血及其检测结果,添加前由助手与你核对数值。不能编辑或删除结果。需要 labs:write |
get_body_composition | 查看你的身体成分扫描结果:全身及局部脂肪、瘦体重和骨量、体脂百分比、内脏脂肪及全身骨密度,均按报告所示记录。需要 body:read |
record_body_composition | 按报告原文添加一次扫描结果,添加前由助手逐项读回并与你核对。不能编辑或删除扫描结果。需要 body:write |
提示词:我今天应该做什么?(todays-session)和回顾我的一周 | |
(weekly-review)。 |
完整参考文档(含所有参数):TOOLS.md。机器可读版本(含输入和输出架构):tools.json。
您的数据和权限
每个连接都可以查看您的训练(training:read)。每日更新、化验结果和身体成分扫描数据与训练数据彼此独立,也互不相通;除非您在批准助手时主动开启,否则这些权限均为关闭状态:
| 范围 | 允许助手执行的操作 |
|---|---|
training:read | 查看您的训练、恢复情况、活动和个人资料 |
today:write | 将今天的信息告知 Body Lab:您的时间、器材,以及您无法参加的运动。不能更改您的训练历史记录 |
schedule:write | 将训练课程和力量训练计划添加到您的日历——包括计划中的练习、组数、次数和重量——也可以将其移除。不能更改您的训练历史记录 |
events:write | 添加和移除您提供的比赛和目标。不能将某项比赛设为 A 级比赛——这会重建您未来数月的计划,您需要在 Body Lab 中操作 |
checkins:read | 查看您的每日更新:您的感受、您对昨天的记录(包括饮酒情况和月经周期),以及 Body Lab 发现的规律 |
checkins:write | 记录您提供的每日更新。不能更改您的训练历史记录 |
labs:read | 查看您的化验结果 |
labs:write | 添加您提供的化验结果。不能更改或删除这些结果 |
body:read | 查看您的身体成分扫描数据 |
body:write | 添加您提供的身体成分扫描数据。不能更改或删除这些数据 |
schedule:write 涵盖您安排的训练课程和您选择的力量训练计划,不包括 Body Lab 指定的内容:已撤回的训练课程仍会保留在记录中,并标记为已撤回。力量训练计划只能使用 Body Lab 目录中的练习,因此助手不能自行添加练习;助手指定的任何重量都会在您开始训练前显示在力量训练器中,如果重量远高于您的记录值,还会附上提示。events:write 只能将比赛和目标添加为 B 级或 C 级;将某项比赛设为 A 级比赛、编辑或移除比赛,都必须在 Body Lab 中操作,因此助手无法重构您未来数月的计划,也无法误删比赛。助手添加的每项训练课程或赛事都会记录为由该助手添加,并且每个助手可安排的内容都有滚动额度限制。
您已授权安排训练课程的助手也可以将力量训练计划添加到您的日历,无需重新连接:它们使用的是同一项权限。反之,在这些权限推出前连接的助手不会自动获得这些权限;获准查看化验结果的助手也不会自动获得身体成分权限。要授权其中任何一项,请重新连接助手(在 Claude 中断开连接后重新连接 Body Lab),并在 Body Lab 询问时勾选相应选项。要更正或删除化验结果、移除扫描数据,或更改或移除比赛,请通过网页端的 Body Lab 操作。
身体成分扫描数据(包括骨密度数据)是您记录的测量结果。Body Lab 只会将这些数据展示给您,不会进行其他处理:这些数据不是诊断结果,全身扫描也不是诊断用骨密度检测,Body Lab 的任何训练建议都不会读取这些数据。
- 批准助手时,Body Lab 会显示其发布者(或标明其未经验证)、将带您前往的页面,以及它可以执行的操作。
- 助手读取的数据会发送给该助手的提供方,并由其根据自己的条款处理。
- 您可以随时在 Body Lab 的 Settings → AI assistants 中查看并断开助手。断开连接后会立即生效。
- Body Lab 的建议是训练指导,不是医疗建议。
- 完整详情请参阅:隐私政策 和 服务条款。
面向客户端开发者
该服务遵循 MCP 授权规范(2026-07-28):
- 受保护资源元数据:
https://bodylab.lol/.well-known/oauth-protected-resource/mcp - 授权服务元数据:
https://bodylab.lol/.well-known/oauth-authorization-server - 客户端注册: 优先使用客户端 ID 元数据文档,或在
/oauth/register进行动态 客户端注册。 - 流程: 使用 PKCE(仅限 S256)的授权码流程。包含
resource参数(https://bodylab.lol/mcp)。授权响应携带iss。 - 客户端: 仅限公共客户端(
token_endpoint_auth_method: none)。刷新 令牌会轮换。在/oauth/revoke撤销。 - 作用域:
training:read(每次连接都需要),以及可选的today:write、schedule:write、events:write、checkins:read、checkins:write、labs:read、labs:write、body:read和body:write。 401 响应会列出全部十个作用域;运动员在授权页面选择 可选作用域,令牌响应中的scope会说明已授予的作用域。tools/list仅显示授权范围涵盖的工具。对于授权范围未涵盖的工具发起tools/call,会收到带有WWW-Authenticate: Bearer error="insufficient_scope"的403响应,其中的scope会列出 已授予的作用域以及所需作用域,以便进行权限提升授权。 - 传输: Streamable HTTP,无状态,使用 2026-07-28 协议和 2025 年的
initialize握手。
注册表名称:lol.bodylab/body-lab。
问题
提交 Bug、提问或申请工具:提交 issue。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。