Skip to main content
The Hevy HTTP MCP server provides tools for managing workout routines. Routines are templates that can be used to quickly start workouts with predefined exercises, sets, and rest periods.

get-routines

Fetch a paginated list of routines 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
routines
array
Array of routine objects

Example

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

get-routine-by-id

Get a single routine by its ID.

Parameters

routineId
string
required
The routine ID

Response

Returns a single routine object with the same structure as described in get-routines.

Example

{
  "routineId": "660e8400-e29b-41d4-a716-446655440001"
}

create-routine

Create a new routine with exercises and planned sets.

Parameters

title
string
required
Routine title
folder_id
number
Folder ID to place routine in (null if not in a folder)
notes
string
Routine notes (can be null)
exercises
array
required
Array of exercises in the routine

Response

Returns the created routine object.

Example

{
  "title": "Pull Day",
  "folder_id": 1,
  "notes": "Back and biceps focus",
  "exercises": [
    {
      "exercise_template_id": "770e8400-e29b-41d4-a716-446655440003",
      "superset_id": null,
      "rest_seconds": 120,
      "notes": "Full stretch at bottom",
      "sets": [
        {
          "type": "warmup",
          "weight_kg": 50,
          "reps": 10
        },
        {
          "type": "normal",
          "weight_kg": 80,
          "rep_range": {
            "start": 8,
            "end": 12
          }
        },
        {
          "type": "normal",
          "weight_kg": 80,
          "rep_range": {
            "start": 8,
            "end": 12
          }
        }
      ]
    },
    {
      "exercise_template_id": "770e8400-e29b-41d4-a716-446655440004",
      "superset_id": 1,
      "rest_seconds": 90,
      "notes": "Superset with face pulls",
      "sets": [
        {
          "type": "normal",
          "weight_kg": 40,
          "rep_range": {
            "start": 12,
            "end": 15
          }
        }
      ]
    },
    {
      "exercise_template_id": "770e8400-e29b-41d4-a716-446655440005",
      "superset_id": 1,
      "rest_seconds": 90,
      "notes": "Superset with rows",
      "sets": [
        {
          "type": "normal",
          "weight_kg": 30,
          "rep_range": {
            "start": 15,
            "end": 20
          }
        }
      ]
    }
  ]
}

update-routine

Update an existing routine by its ID.

Parameters

routineId
string
required
The routine ID to update
title
string
required
Updated routine title
notes
string
Updated routine notes (can be null)
exercises
array
required
Updated exercises (same structure as create-routine)

Response

Returns the updated routine object.

Example

{
  "routineId": "aa0e8400-e29b-41d4-a716-446655440050",
  "title": "Pull Day - Updated",
  "notes": "Back and biceps with extra volume",
  "exercises": [
    {
      "exercise_template_id": "770e8400-e29b-41d4-a716-446655440003",
      "superset_id": null,
      "rest_seconds": 120,
      "notes": "Full stretch at bottom",
      "sets": [
        {
          "type": "warmup",
          "weight_kg": 50,
          "reps": 10
        },
        {
          "type": "normal",
          "weight_kg": 80,
          "rep_range": {
            "start": 8,
            "end": 12
          }
        },
        {
          "type": "normal",
          "weight_kg": 80,
          "rep_range": {
            "start": 8,
            "end": 12
          }
        },
        {
          "type": "normal",
          "weight_kg": 80,
          "rep_range": {
            "start": 8,
            "end": 12
          }
        }
      ]
    }
  ]
}

Build docs developers (and LLMs) love