Weight & Body Composition tools
Every tool in this module, with its full description, parameters, and return value. All of them require the module to be active first. See the Weight & Body Composition overview for how to turn it on.
Core tools
Create, read, update, and delete entries. Every module has exactly these four.
weight_tracking_add_entryAdd an entry to the user's Weight & Body Composition module. Requires the module to be active — see create_database.
Parameters
| Name | Type | Required | Notes |
|---|---|---|---|
| weight_lbs | number | Yes | Body weight in pounds. |
| body_fat_pct | number | No | Body fat percentage (0-100), if measured. |
| waist_in | number | No | Waist circumference in inches, if measured. |
| muscle_mass_lbs | number | No | Muscle mass in pounds, if measured. |
| notes | string | No | Freeform notes about this entry. |
Returns
The created entry as JSON, including its id.
weight_tracking_list_entriesList entries in the user's active Weight & Body Composition module.
Parameters
| Name | Type | Required | Notes |
|---|---|---|---|
| limit | number | No | Max entries to return (default 100, max 500). |
Returns
Every entry in the active database, as a JSON array.
weight_tracking_update_entryUpdate fields on an existing Weight & Body Composition entry.
Parameters
| Name | Type | Required | Notes |
|---|---|---|---|
| entryId | string | Yes | ID of the weight entry to update. |
| weight_lbs | number | No | New body weight in pounds. |
| body_fat_pct | number | No | New body fat percentage (0-100). |
| waist_in | number | No | New waist circumference in inches. |
| muscle_mass_lbs | number | No | New muscle mass in pounds. |
| notes | string | No | New freeform notes about this entry. |
Returns
The updated or deleted entry as JSON. Returns an error if entryId does not belong to an entry in the active database.
weight_tracking_delete_entryDelete an entry from the user's active Weight & Body Composition module.
Parameters
| Name | Type | Required | Notes |
|---|---|---|---|
| entryId | string | Yes | ID of the weight entry to delete. |
Returns
The updated or deleted entry as JSON. Returns an error if entryId does not belong to an entry in the active database.
Purpose-built tools
Shortcuts and queries shaped around how Weight & Body Composition is actually used, so your agent doesn't have to fetch every entry and filter them itself.
weight_tracking_attach_photoAttach a photo to an existing Weight & Body Composition entry (replacing any photo already on it). If you have the image's raw bytes, pass photo_base64. If the user attached the image in a chat client (e.g. claude.ai), you cannot read its bytes: call this WITHOUT photo_base64 to get a one-time upload link, and give that link to the user so they can upload the photo themselves. The link expires in 30 minutes. Photos are stored privately; the returned viewPath is only viewable signed into the connacto web app as this user.
Parameters
| Name | Type | Required | Notes |
|---|---|---|---|
| entryId | string | Yes | ID of the Weight & Body Composition entry to attach the photo to. |
| photo_base64 | string | No | The photo, base64-encoded (no data: URI prefix). Omit when you cannot read the image bytes — the tool then returns an upload link for the user instead. |
| photo_content_type | image/jpeg | image/png | image/webp | image/heic | No | MIME type of the photo, if photo_base64 is set. Defaults to image/jpeg. |
Returns
JSON with a private viewPath when photo_base64 was given, or an uploadUrl to hand the user when it was not.
weight_tracking_trendReturn the most recent N entries (default 10) from the active Weight & Body Composition module, ordered newest-first, along with a summary of the weight change (delta) across that window.
Parameters
| Name | Type | Required | Notes |
|---|---|---|---|
| limit | number | No | Number of most recent entries to include in the trend window (default 10). |
Returns
The entries considered plus a summary with the newest and oldest weight and the delta between them. If fewer than 2 entries exist, the summary explains there is not enough data yet.
weight_tracking_latestReturn the single most recent entry from the active Weight & Body Composition module.
Parameters
None. Call it with an empty object.
Returns
The most recent entry as JSON, or a message if no entries exist yet.
weight_tracking_set_goalSet the active weight goal for this database. Deactivates any existing active goal first (its history is kept, not deleted), then creates a new one, snapshotting the most recent entry's weight as the starting point (null if no entries exist yet).
Parameters
| Name | Type | Required | Notes |
|---|---|---|---|
| target_weight_lbs | number | Yes | Target body weight in pounds. |
| target_date | string | No | ISO date, e.g. 2026-12-31, if there's a deadline. |
Returns
The created goal as JSON, including its id.
weight_tracking_get_goalReturn the active weight goal (if any), plus computed progress (remaining lbs, percent complete) and, when at least 2 recent entries exist, a naive linear projection of the date it'll be reached based on the recent rate of change. Returns a clear message instead of a projection when the trend is flat or moving the wrong direction.
Parameters
None. Call it with an empty object.
Returns
An object with the goal, a progress summary, and a projection (or explanatory messages if there isn't enough data).
weight_tracking_clear_goalDeactivate the active weight goal without deleting entry history.
Parameters
None. Call it with an empty object.
Returns
The deactivated goal as JSON, or a message if there was no active goal.
weight_tracking_moving_averageCompute the average weight over the last N days (default 7) in the active Weight & Body Composition module.
Parameters
| Name | Type | Required | Notes |
|---|---|---|---|
| days | number | No | Lookback window in days, default 7. |
Returns
The lookback window, entries considered, and average weight in pounds, as JSON.