Body Lab

lol.bodylab由 bodylab.lol 發布官方發布者v1.0.0更新於 Oct 24, 2026

Body Lab training: today's prescribed session and why, load, recovery, activities and strength.

已驗證Streamable HTTP可網頁執行位置與生活效率與工作流資料與分析

概覽

AI 產生的概覽

託管式 MCP 伺服器,將助理連接到 Body Lab 訓練帳號,可讀取當日訓練處方、恢復、活動與力量資料,並加入行事曆、比賽與每日紀錄。

可以做什麼
  • 讀取今天與未來一週的訓練處方、準備狀態及其原因
  • 檢視每週回顧、訓練狀態、活動、恢復、步數、量測資料、力量與個人檔案
  • 把已安排的訓練與力量課表加入行事曆、列出並撤回
  • 新增或移除 B、C 級比賽與目標
  • 讀取與記錄每日更新、檢驗結果與身體組成掃描,並查看打卡規律
  • 搜尋力量動作資料庫,並推薦適合當日訓練的路線
適用情境
適合已在用 Body Lab 訓練的運動員:想讓助理回答今天該練什麼及原因、這一週表現如何、是否恢復充足、某項力量或檢驗指標的趨勢,並讓助理代為新增訓練、比賽與每日紀錄而不必開啟應用程式。
執行需求
需要 Body Lab 帳號,首次連線時透過 OAuth 登入授權。伺服器託管於固定遠端位址,本機無需安裝。選用權限(today:write、schedule:write、events:write、checkins:read、checkins:write、labs:read、labs:write、body:read、body:write)在授權頁勾選,training:read 一律授予。
安裝前請注意
寫入類權限會讓助理改動行事曆、新增比賽與目標、記錄每日更新、檢驗結果與身體組成掃描;移除比賽為永久性。檢驗結果、身體組成、骨密度、飲酒與生理週期紀錄等健康資料,只有在你授予相應權限後才可讀取,且助理讀取的內容會傳送給該助理的供應商。建議屬訓練指導而非醫療建議,掃描結果也不是診斷。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 Body Lab,將其新增到工作區。
  2. 連接 所需的 憑證。它們會被私密儲存,絕不會在公開頁面上展示。
  3. 為需要使用其工具的對話啟用該服務。

Web executable,透過 Streamable HTTP。 遠端服務在工作區中設定後即可從網頁執行環境執行。

交給代理程式安裝

把這段提示詞貼上到 Claude Code、Codex、Cursor 等代理程式,或 SourceWeft 對話中。代理程式會讀取該伺服器的安裝指南,先向你展示發布者、端點和登入方式,經你同意後再把它新增到你的客戶端。金鑰不會寫進任何命令。

閱讀 https://sourceweft.com/mcp/lol.bodylab%2Fbody-lab/install.md,並按其中說明把這個 MCP 伺服器接入我的客戶端。修改任何設定之前,先告訴我它的發布者、端點和登入方式,等我確認。不要把 API 金鑰寫進命令或我會提交的檔案;問我金鑰應從哪裡取得。

檢視代理程式所依據的安裝指南

其他 MCP 客戶端

把它新增到你客戶端的 mcpServers 設定中。 客戶端會在首次連接時完成 OAuth 登入。

{
  "mcpServers": {
    "body-lab": {
      "type": "http",
      "url": "https://bodylab.lol/mcp"
    }
  }
}

README

Body Lab MCP server

Connect Claude, ChatGPT, or any assistant that speaks the Model Context Protocol to your Body Lab training. Ask what to do today and why, how last week went, whether you're recovered, or what your squat has been doing, and the answers come from your own data and Body Lab's engine.

https://bodylab.lol/mcp

This repository is the public home of the server: how to connect, the tool reference, the MCP Registry entry, and a Claude Code plugin. The server itself runs at the address above. It's hosted, so there's nothing to install or run.

Connect

You need a Body Lab account. The first time an assistant connects, it sends you to Body Lab to sign in and approve it.

Body Lab isn't listed in assistants' app directories yet, so you add it by its address.

Claude (web, desktop, mobile):

  1. On claude.ai or in Claude Desktop, open Customize → Connectors.
  2. Press +, choose Add custom connector, paste https://bodylab.lol/mcp and press Add.
  3. Press Connect, then sign in to Body Lab and allow Claude.
  4. In a chat, turn Body Lab on from + → Connectors. It's then available in the Claude mobile app too.

On a Team or Enterprise plan, an organization owner adds it first (Organization settings → Connectors). The free plan allows one custom connector. See Anthropic's custom connector guide.

ChatGPT (web; Plus, Pro, Business, Enterprise or Education):

  1. Open Settings → Security and login and turn on Developer mode.
  2. Open Plugins, press +, and create an app with https://bodylab.lol/mcp, using OAuth.
  3. Sign in to Body Lab and allow ChatGPT.
  4. In a chat, choose Body Lab from Developer mode in the message box.

See OpenAI's developer mode guide.

Claude Code:

sh
claude mcp add --transport http body-lab https://bodylab.lol/mcp

Then run /mcp inside Claude Code and choose Body Lab to sign in. Or install the plugin, which adds the server and skills for using it well:

sh
/plugin marketplace add bodylab-lol/mcp/plugin install body-lab@bodylab-lol

VS Code, Cursor and other clients: add a remote (Streamable HTTP) MCP server with the URL https://bodylab.lol/mcp. For clients configured with JSON:

json
{  "mcpServers": {    "body-lab": { "type": "http", "url": "https://bodylab.lol/mcp" }  }}

What it can do

An assistant can see your training. With your permission it can also tell Body Lab about today, put sessions you've arranged and strength routines you've chosen on your calendar and take them off again, add races and goals at priority B or C, see your lab results and add new ones, for example from a PDF or photo of a lab report, do the same with body composition scans such as DEXA, and read or record your daily updates: how you felt and what happened the night before, and the patterns Body Lab finds in them. It can't change your training history, delete anything, or make an event the A race your plan is built around — that's yours to do in Body Lab.

ToolFor
get_todayToday's (and tomorrow's) prescribed session, with heart-rate and power targets and, on runs once your critical speed is known, a pace; the reasons behind it, alternatives, readiness, and what Body Lab is calling out today: a pattern in sleep or recovery readings, a new best, a note about the plan, or missing data
set_today_contextTells Body Lab how long you have today, what equipment is to hand and which sports are out, and returns the re-prescribed session. Today only. Needs today:write
get_weekThe next seven days as the engine projects them: detailed through tomorrow, summarised after, and shifting each morning
schedule_sessionPuts a session you've arranged — a club ride, a run with a friend — on your calendar, one entry per occurrence, so Body Lab plans the week around it. The same session twice is stored once. Needs schedule:write
schedule_strength_routinePuts strength routines you've chosen — a program's days, a session a coach wrote — on your calendar: named exercises from Body Lab's catalogue with sets, reps, rest and a weight, a share of your max or reps in reserve. Leave a weight out and Body Lab fills it on the day from your own lifting; a weight you state is kept as given. A routine on its own is that day's session, and you run and log it in Body Lab's strength runner. The same routine twice on a day is stored once; an exercise Body Lab doesn't have is refused with suggestions. Needs schedule:write
list_strength_routinesThe strength routines on your calendar over up to 60 days, each with its exercises, sets, reps and weights as written
withdraw_sessionTakes a session you arranged, or a strength routine, off the calendar again. It's kept and marked withdrawn, never deleted; Body Lab's own sessions can't be touched. Needs schedule:write
schedule_eventAdds a race or goal at priority B or C. It refuses to add an A event, and can't edit one: both are yours to do in Body Lab. Needs events:write
remove_eventTakes off a race it added itself, after reading it back to you. It can't remove one you entered, and can't remove an A race even if it added it — promoting a race to A is your decision, so taking it back is too. Removing is permanent. Needs events:write
get_weekly_reviewHow a complete week went against what was prescribed, load against the band, the strength floor, and whether training so far supports an upcoming event
get_training_statusFitness, fatigue, form, workload ratio, strain, intensity balance, week by week, and critical speed for runners: the pace at the edge of sustainable hard running, from your own recent hard runs, with its ±
list_activities, get_activityYour activities, and one in detail with load, zones, power and speed bests and plan adherence
get_recoveryMorning resting HR, HRV, sleep and energy scores
get_daily_stepsSteps counted each day, with the source each count came from and the mean of the last seven complete days. Each day is one source's count, never several devices added together; today's is marked as so far
get_measurementsAny of your measurement series over a range, several at once: morning readings, steps, weight, VO2max, FTP and threshold values, and every blood pressure reading grouped into sittings. Up to two years per series, within a budget per answer
get_strengthThe strength session Body Lab would prescribe now, estimated maxes, recent sessions
get_profileHeart-rate anchors, FTP, weight, most recent blood pressure, strength equipment, test results, power curve
find_exercisesThe strength exercise catalogue, searched by name or by the other names an exercise goes by ("RDL", "skull crusher"), by movement pattern or by muscle, with the equipment each one needs
suggest_routesRoutes you've done before that fit today's session
get_patternsWhat your daily updates add up to: for each thing you can note about a night (drinks, late caffeine, a stressful day, a late dinner, a warm bath, a hot bedroom), how the next morning compared with ordinary nights, with the previous day's training accounted for, and whether there's enough to say yet. Also a running 14-night experiment and the ones on offer. Comparisons of your own nights, never a claim about cause. Needs checkins:read
record_daily_updateRecords what you tell the assistant about this morning and last night: how you feel, what happened, or that it was an ordinary night. Today only; keeps anything you already noted in the app, and can't record an illness, an injury or a period start. It never changes today's session. Needs checkins:write
get_lab_resultsYour blood test results: each marker over time against the lab's range and guideline limits, and whether a change is beyond normal variation. Needs labs:read
record_lab_resultsAdds a blood draw and its results as the report prints them, after the assistant checks the values with you. It can't edit or delete results. Needs labs:write
get_body_compositionYour body composition scans: total and regional fat, lean and bone mass, body fat percent, visceral fat, and whole-body bone density, as your report gave them. Needs body:read
record_body_compositionAdds one scan as the report prints it, after the assistant reads every value back to you. It can't edit or delete scans. Needs body:write

Prompts: What should I do today? (todays-session) and Review my week (weekly-review).

Full reference, with every argument: TOOLS.md. Machine-readable, with input and output schemas: tools.json.

Your data and permissions

Every connection can see your training (training:read). Daily updates, lab results and body composition scans are separate from it and from each other, and each is off unless you turn it on when you approve an assistant:

ScopeLets the assistant
training:readSee your training, recovery, activities and profile
today:writeTell Body Lab about today: your time, equipment and sports you can't do. It can't change your training history
schedule:writePut sessions and strength routines on your calendar — a routine's exercises, sets, reps and weights included — and take them off again. It can't change your training history
events:writeAdd and remove races and goals you give it. It can't make one an A race — that rebuilds months of your plan, and you do that in Body Lab
checkins:readSee your daily updates: how you felt, what you noted about yesterday, including drinks and your cycle, and the patterns Body Lab found
checkins:writeRecord a daily update you give it. It can't change your training history
labs:readSee your lab results
labs:writeAdd lab results you give it. It can't change or delete them
body:readSee your body composition scans
body:writeAdd body composition scans you give it. It can't change or delete them

schedule:write covers sessions you've arranged and strength routines you've chosen, and nothing Body Lab prescribed: a withdrawn session stays on record, marked withdrawn. A routine names exercises from Body Lab's catalogue only, so an assistant can't add an exercise of its own, and any weight it states is shown to you in the strength runner before you lift, with a note when it's well above what you've logged. events:write adds races and goals at B or C only; making one your A race, editing it, or removing it stays in Body Lab, so an assistant can't restructure months of your plan or delete a race by mistake. Every session or event an assistant adds is recorded as that assistant's, and each assistant is held to a rolling limit on how much it can schedule.

An assistant you already allowed to schedule sessions can put strength routines on your calendar too, without reconnecting: they come under the same permission. Otherwise, an assistant you connected before these existed doesn't get them automatically, and one you allowed for lab results doesn't get body composition. To allow any of them, connect it again (in Claude, disconnect and reconnect Body Lab) and tick those boxes when Body Lab asks. To correct or delete a lab result, to remove a scan, or to change or remove a race, use Body Lab on the web.

Body composition scans, including bone density, are measurements you recorded. Body Lab shows them back to you and nothing more: they are not a diagnosis, a whole-body scan is not a diagnostic bone density test, and nothing Body Lab prescribes reads them.

  • When you approve an assistant, Body Lab shows who published it (or that it's unverified), where it will send you back to, and what it can do.
  • What an assistant reads goes to that assistant's provider, and they handle it under their own terms.
  • See and disconnect assistants any time in Body Lab under Settings → AI assistants. Disconnecting works immediately.
  • Body Lab's recommendations are training guidance, not medical advice.
  • Full details: Privacy Policy and Terms of Service.

For client developers

The server follows the MCP authorization spec (2026-07-28):

  • Protected resource metadata: https://bodylab.lol/.well-known/oauth-protected-resource/mcp
  • Authorization server metadata: https://bodylab.lol/.well-known/oauth-authorization-server
  • Client registration: Client ID Metadata Documents (preferred), or dynamic client registration at /oauth/register.
  • Flow: authorization code with PKCE (S256 only). Include the resource parameter (https://bodylab.lol/mcp). Authorization responses carry iss.
  • Clients: public only (token_endpoint_auth_method: none). Refresh tokens rotate. Revoke at /oauth/revoke.
  • Scopes: training:read (every connection), plus the optional today:write, schedule:write, events:write, checkins:read, checkins:write, labs:read, labs:write, body:read and body:write. A 401 names all ten; the athlete chooses the optional ones on the consent page, and the token response's scope says what was granted. tools/list shows only the tools the grant covers. A tools/call for a tool it doesn't cover gets 403 with WWW-Authenticate: Bearer error="insufficient_scope" and a scope naming the grant's scopes plus the one needed, for step-up authorization.
  • Transport: Streamable HTTP, stateless, on protocol 2026-07-28 and the 2025 initialize handshake.

Registry name: lol.bodylab/body-lab.

Issues

Bugs, questions and tool requests: open an issue.

來源:README.md,提交 2633d11

工具

0
該伺服器需要登入,因此 SourceWeft 無法在沒有帳號的情況下讀取其工具,也未收錄。已連接帳號所能看到的內容可能因帳號及其權限而異。

版本歷史

1
  1. v1.0.0最新Sep 16, 2026

評分

已滿足適用檢查項的 85%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通必需25 分
  • 已宣告認證方式必需10 分
  • 已列出工具15 分

    請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。

  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分