hevy_workouts
Strength-training sessions logged in Hevy over a date range: title, duration, every exercise, every set with weight and reps, and total volume.
What it returns
| Field | Meaning |
|---|---|
| days | Lookback window in days, counted back from now. Ignored when `start` is given. |
| start | Start of the range, ISO-8601 (e.g. '2026-08-01'). Overrides `days`. |
| end | End of the range, ISO-8601. Defaults to now. |
Parameters
| Name | Type | Description |
|---|---|---|
days | integer | Lookback window in days, counted back from now. Ignored when `start` is given. |
start | string | Start of the range, ISO-8601 (e.g. '2026-08-01'). Overrides `days`. |
end | string | End of the range, ISO-8601. Defaults to now. |
Pass either days or an explicit start/end pair. start wins if both are given.
Output
A markdown table rather than JSON — roughly a third of the tokens, and models reason over rows more reliably than nested objects.
Notes and gotchas
- Requires a connected Hevy account. Connect it from your dashboard — no developer account needed.
- Read-only: this tool cannot change anything in your account.
Call it directly
The endpoint is plain JSON-RPC, so you can test without any client:
curl -s https://fitnesspeak.app/mcp \
-H "Authorization: Bearer fp_live_YOUR_KEY_HERE" \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "hevy_workouts",
"arguments": {
"days": 7
}
}
}'
Tool description the model sees
Strength-training sessions logged in Hevy over a date range: title, duration, every exercise, every set with weight and reps, and total volume. Call this when the user asks what they trained, how their week of lifting went, how many sessions they did, or wants their recent gym history. For one session in full detail use hevy_workout; for one exercise across sessions use hevy_exercise_history.
Descriptions say when to call a tool, not just what it does — that trigger wording is what models actually route on.
Use hevy_workouts in your assistant
14-day free trial. Card required so there's no second signup at the end; cancel before day 14 and you're charged nothing.