Skip to main content
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

page
number
Page number (default: 1)
pageSize
number
Items per page (default: 5, max: 10)

Response

page
number
Current page number
page_count
number
Total number of pages available
workouts
array
Array of workout objects

Example

{
  "page": 1,
  "pageSize": 5
}

get-workout

Get a single workout by its ID.

Parameters

workoutId
string
required
The workout ID

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
object
required
Workout data to create

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

workoutId
string
required
The workout ID to update
workout
object
required
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

workout_count
number
Total number of workouts

Example

{}

get-workout-events

Get paginated workout update/delete events. This tool is useful for synchronizing workout data and tracking changes over time.

Parameters

page
number
Page number (default: 1)
pageSize
number
Items per page (default: 5, max: 10)
since
string
ISO 8601 timestamp to filter events since a specific time

Response

page
number
Current page number
page_count
number
Total number of pages available
events
array
Array of workout events

Example

{
  "page": 1,
  "pageSize": 5,
  "since": "2026-03-01T00:00:00Z"
}

Build docs developers (and LLMs) love