The Hevy HTTP MCP server provides comprehensive tools for managing workout data. These tools allow you to retrieve workout history, create new workouts, update existing ones, and monitor workout events.
get-workouts
Fetch a paginated list of workouts from your Hevy account.
Parameters
Items per page (default: 5, max: 10)
Response
Total number of pages available
Array of workout objects Unique workout identifier
ID of the routine this workout is based on
Start time in ISO 8601 format
End time in ISO 8601 format
Last update timestamp in ISO 8601 format
Creation timestamp in ISO 8601 format
Array of exercises performed in this workout Reference to exercise template
Superset group identifier (null if not in a superset)
Array of sets performed Set type: normal, warmup, dropset, or failure
Distance in meters (for cardio exercises)
Duration in seconds (for timed exercises)
Rate of perceived exertion (6-10 scale)
Example
{
"page" : 1 ,
"pageSize" : 5
}
get-workout
Get a single workout by its ID.
Parameters
Response
Returns a single workout object with the same structure as described in get-workouts.
Example
{
"workoutId" : "550e8400-e29b-41d4-a716-446655440000"
}
create-workout
Create a new workout with exercises and sets.
Parameters
Workout data to create Show Workout input object
Workout description (can be null)
Start time in ISO 8601 format (e.g., “2026-03-03T10:00:00Z”)
End time in ISO 8601 format (e.g., “2026-03-03T11:30:00Z”)
Whether the workout is private (default: false)
Array of exercises to include in the workout Show Exercise input object
Exercise template ID (use get-exercise-templates to find valid IDs)
Superset group ID (null if not in a superset)
Exercise notes (can be null)
Array of sets to perform Set type: normal, warmup, dropset, or failure
Weight in kilograms (can be null)
Number of repetitions (can be null)
Distance in meters for cardio exercises (can be null)
Duration in seconds for timed exercises (can be null)
Rate of perceived exertion: 6, 7, 7.5, 8, 8.5, 9, 9.5, or 10 (can be null)
Custom metric value (can be null)
Response
Returns the created workout object.
Example
{
"workout" : {
"title" : "Leg Day" ,
"description" : "Squat focus session" ,
"start_time" : "2026-03-03T14:00:00Z" ,
"end_time" : "2026-03-03T15:30:00Z" ,
"is_private" : false ,
"exercises" : [
{
"exercise_template_id" : "770e8400-e29b-41d4-a716-446655440010" ,
"superset_id" : null ,
"notes" : "Go deep, pause at bottom" ,
"sets" : [
{
"type" : "warmup" ,
"weight_kg" : 60 ,
"reps" : 10
},
{
"type" : "normal" ,
"weight_kg" : 140 ,
"reps" : 5 ,
"rpe" : 8.5
},
{
"type" : "normal" ,
"weight_kg" : 140 ,
"reps" : 5 ,
"rpe" : 9
}
]
}
]
}
}
update-workout
Update an existing workout by its ID.
Parameters
Updated workout data (same structure as create-workout)
Response
Returns the updated workout object.
Example
{
"workoutId" : "880e8400-e29b-41d4-a716-446655440020" ,
"workout" : {
"title" : "Leg Day - Updated" ,
"description" : "Squat and leg press" ,
"start_time" : "2026-03-03T14:00:00Z" ,
"end_time" : "2026-03-03T16:00:00Z" ,
"is_private" : false ,
"exercises" : [
{
"exercise_template_id" : "770e8400-e29b-41d4-a716-446655440010" ,
"superset_id" : null ,
"notes" : "Added one more set" ,
"sets" : [
{
"type" : "warmup" ,
"weight_kg" : 60 ,
"reps" : 10
},
{
"type" : "normal" ,
"weight_kg" : 140 ,
"reps" : 5 ,
"rpe" : 8.5
},
{
"type" : "normal" ,
"weight_kg" : 140 ,
"reps" : 5 ,
"rpe" : 9
},
{
"type" : "normal" ,
"weight_kg" : 140 ,
"reps" : 4 ,
"rpe" : 9.5
}
]
}
]
}
}
get-workout-count
Get the total number of workouts in your account.
Parameters
No parameters required.
Response
Example
get-workout-events
Get paginated workout update/delete events. This tool is useful for synchronizing workout data and tracking changes over time.
Parameters
Items per page (default: 5, max: 10)
ISO 8601 timestamp to filter events since a specific time
Response
Total number of pages available
Array of workout events Event type: updated or deleted
For “updated” events: Full workout object (same structure as get-workout)
For “deleted” events: ID of the deleted workout
Deletion timestamp in ISO 8601 format
Example
{
"page" : 1 ,
"pageSize" : 5 ,
"since" : "2026-03-01T00:00:00Z"
}