diff --git a/guides/mcp-integration.mdx b/guides/mcp-integration.mdx index fe1f4ce..4f1d977 100644 --- a/guides/mcp-integration.mdx +++ b/guides/mcp-integration.mdx @@ -111,6 +111,14 @@ On the Claude connector, `list_athletes` returns the signed-in athlete alone and `build_bottling_plan` takes `carb_g`, `sodium_mg`, `fluid_ml`, and `duration_min` from a prescription, plus optional `activity_id`, `activity_type`, `strategy`, `vessel_count`, `vessels`, and `products`, and returns the plan twice: as text in `content`, and as `structuredContent` carrying the `plan` object with a `createdAt` and `seq` election key, the `products` you passed, and the athlete's `saved` carriage context when one exists. `strategy` is `evenly`, `concentrate`, or `goldilocks` (the default, which balances the two). When the totals will not fit the vessels, the plan carries an escalation state: carry it more concentrated and top up with water, rather than a dead end. `record_bottling_choice` takes the committed `plan` object back, once, when the athlete settles on it. +Each bottle in `plan.cards` lists what goes into it as `rows`. A row's `amount` and `unit` are what the athlete measures: a fraction of a `tsp`, `tbsp` or `cup`, a count of a product's `serving` or `scoop`, or a weight when `unit` is `g`. A `cup` row can also carry `addedTablespoons`, tablespoons measured after the cup amount, and its `carbG` counts both parts. Read the three fields together: the row below is ⅜ cup plus 1 tablespoon of sugar, 87.5 g, and showing only `amount` and `unit` would put 12.5 g less sugar in the bottle. The field is absent when nothing is added. + +```json +{"amount": "⅜", "unit": "cup", "addedTablespoons": 1, "nutrient": "Sugar", "isBaseIngredient": true, "carbG": 87.5} +``` + +Kitchen sugar follows the athlete's carb measure from their Saturday profile (cups, cups plus a tablespoon, tablespoons, or grams); a call without an athlete reads cups. The text in `content` writes the same row as `⅜ cup + 1 Tbsp Sugar`. Outside the US, `structuredContent.measures` names the athlete's kitchen: `cupMl` and `tbspMl` are the size of the cup and tablespoon the rows count in, and `cupsOffered` is false where the kitchen weighs instead. + **Coach tools.** When a **coach on Pro Coach tier or higher** (Pro Coach, Head Coach, Business, or Enterprise) connects via the [Claude connector](/guides/coach-connector), an additional set of roster and configuration tools appears: `get_roster`, `get_roster_digest`, `get_athlete_fueling_rollup`, `get_athlete_report`, `get_session_detail`, `get_notification_rules`, `set_notification_rules`, `apply_alert_preset`, `get_report_settings`, `set_report_settings`, `list_webhooks`, `register_webhook`, and `delete_webhook`. These are invisible to athlete-only users and to other partners, and tier is re-checked per request, so a lapsed coach loses them without an error. Every athlete argument is confined to the coach's roster. The notification rules include `hourly_cap`, the limit (1 to 12 an hour, default 1) on alert emails and pushes about one athlete. See the [Claude Connector guide](/guides/coach-connector) for the full coach tool catalog and the [Coach API](/guides/coach-api) for the equivalent REST surface.