hevy_workout
One Hevy workout in full: every exercise, every set with its type (warmup, normal, dropset, failure), weight, reps, RPE and notes.
What it returns
| Field | Meaning |
|---|---|
| workout_id | The workout id, as printed by hevy_workouts. |
Parameters
| Name | Type | Description |
|---|---|---|
workout_id | string | The workout id, as printed by hevy_workouts. |
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_workout",
"arguments": {}
}
}'
Tool description the model sees
One Hevy workout in full: every exercise, every set with its type (warmup, normal, dropset, failure), weight, reps, RPE and notes. Call this after hevy_workouts when the user asks about a specific session in detail. Requires the workout id from hevy_workouts.
Descriptions say when to call a tool, not just what it does — that trigger wording is what models actually route on.
Use hevy_workout 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.