Skip to main content
Glama

Hevy MCP Server

This is a Model Context Protocol (MCP) server that provides an interface to the Hevy Workout Tracker API. It allows AI agents and other MCP clients to interact with your Hevy data, including workouts, routines, exercises, and user information.

Prerequisites

Related MCP server: hevy-mcp-server

Installation

  1. Navigate to the project directory:

    cd hevy-mcp
  2. Install dependencies:

    npm install
  3. Build the project:

    npm run build

Configuration

The server requires a Hevy API key to function. This key must be provided as an environment variable HEVY_API_KEY.

Environment Variables

Variable

Description

Required

HEVY_API_KEY

Your personal Hevy API Key.

Yes

Usage

Running the Server

To start the server directly:

export HEVY_API_KEY=your_api_key_here
npm start

Using with an MCP Client (e.g., Claude Desktop, Gemini)

Add the server configuration to your MCP client's configuration file (e.g., claude_desktop_config.json or similar).

Example Configuration:

{
  "mcpServers": {
    "hevy": {
      "command": "node",
      "args": [
        "/absolute/path/to/hevy-mcp-server/dist/index.js"
      ],
      "env": {
        "HEVY_API_KEY": "your_api_key_here"
      }
    }
  }
}

Note: Replace /absolute/path/to/... with the actual full path to the dist/index.js file on your system.

Available Tools

This server exposes the following tools to MCP clients:

Workouts

  • get_workouts: Get a paginated list of workouts.

  • get_single_workout: Get complete details of a single workout by UUID.

  • get_workout_count: Get the total number of workouts.

  • create_workout: Create a new workout.

  • update_workout: Update an existing workout.

  • delete_workout: Delete a workout by UUID.

  • get_workout_events: Retrieve workout events (updates/deletes) since a specific date.

Routines

  • get_routines: Get a paginated list of routines.

  • get_single_routine: Get details of a single routine by UUID.

  • create_routine: Create a new routine.

  • update_routine: Update an existing routine.

  • delete_routine: Delete a routine by UUID.

Routine Folders

  • get_routine_folders: Get a paginated list of routine folders.

  • get_single_routine_folder: Get details of a routine folder.

  • create_routine_folder: Create a new routine folder.

  • update_routine_folder: Update a routine folder's title.

  • delete_routine_folder: Delete a routine folder.

Exercises

  • get_exercise_templates: Get a paginated list of exercise templates (built-in and custom).

  • get_single_exercise_template: Get details of a specific exercise template.

  • create_exercise_template: Create a new custom exercise template.

  • delete_exercise_template: Delete a custom exercise template.

  • get_exercise_history: Get history for a specific exercise template.

User

  • get_user_info: Get information about the authenticated user.

Development

  • Build: npm run build - Compiles TypeScript to JavaScript in the dist folder.

  • Start: npm start - Runs the compiled server from dist/index.js.

Available Tools

23 tools
create_exercise_templateC

Create a new custom exercise template

Inputs: exercise (required).

create_routineC

Create a new routine

Inputs: routine (required).

create_routine_folderB

Create a new routine folder

Inputs: title (required).

create_workoutC

Create a new workout

Inputs: workout (required).

delete_exercise_templateA

Delete a custom exercise template by its id

Inputs: exerciseTemplateId (required).

delete_routineB

Delete a routine by its routineId

Inputs: routineId (required).

delete_routine_folderB

Delete a routine folder by its folderId

Inputs: folderId (required).

delete_workoutA

Delete a workout by its workoutId

Inputs: workoutId (required).

get_exercise_historyB

Get exercise history for a specific exercise template

Inputs: exerciseTemplateId (required), end_date, start_date.

get_exercise_templatesA

Get a paginated list of exercise templates

Inputs: page, pageSize.

get_routine_foldersC

Get a paginated list of routine folders

Inputs: page, pageSize.

get_routinesC

Get a paginated list of routines

Inputs: page, pageSize.

get_single_exercise_templateB

Get a single exercise template by id

Inputs: exerciseTemplateId (required).

get_single_routineB

Get a routine by its Id

Inputs: routineId (required).

get_single_routine_folderB

Get a single routine folder by id

Inputs: folderId (required).

get_single_workoutA

Get a single workout’s complete details by the workoutId

Inputs: workoutId (required).

get_user_infoC

Get user info

Inputs: no named parameters.

get_workout_countA

Get the total number of workouts on the account

Inputs: no named parameters.

get_workout_eventsB

Retrieve a paged list of workout events (updates or deletes) since a given date

Inputs: page, since, pageSize.

get_workoutsA

Get a paginated list of workouts

Inputs: page, pageSize.

update_routineC

Update an existing routine

Inputs: routine (required), routineId (required).

update_routine_folderC

Update an existing routine folder

Inputs: title (required), folderId (required).

update_workoutC

Update an existing workout

Inputs: workout (required), workoutId (required).

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    B3.1/5.0

    Scored across 23 tools

    Disambiguation5/5

    Each tool clearly targets a distinct resource and action, such as workouts, routines, routine folders, and exercise templates. List/detail operations are separated with explicit singular naming (e.g., get_workouts vs get_single_workout), and no two tools appear to serve the same purpose.

    Naming Consistency4/5

    All tool names use snake_case and follow a verb_noun pattern (get_, create_, update_, delete_). Minor deviations exist with get_single_workout instead of get_workout and get_workout_count as a compound noun, but overall the naming is predictable and consistent.

    Tool Count4/5

    With 23 tools, the server feels slightly heavy, but the count is justified by covering four distinct resource types (workouts, routines, routine folders, exercise templates), each with appropriate CRUD operations. A few utilities like get_workout_count and get_workout_events add value without bloating the set excessively.

    Completeness3/5

    The server covers most core workflows: full CRUD for workouts, routines, and routine folders, plus listing, retrieving, creating, and deleting exercise templates. However, there is no update_exercise_template, which is a notable gap since creating and deleting without updating forces a delete/recreate pattern for adjustments.

    Maintenance

    ActivityInactive
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      Not graded
      quality
      B
      maintenance
      Enables interaction with the Hevy fitness tracking platform through their API. Supports managing workouts, routines, exercise templates, and webhook subscriptions for comprehensive fitness data management.
      20 npm
      ISC
    • A
      license
      Not graded
      quality
      D
      maintenance
      Exposes the Hevy workout API to Claude, enabling users to manage workouts, routines, exercise templates, body measurements, and user info via natural language.
      2,615 npm
      MIT
    • A
      license
      Not graded
      quality
      D
      maintenance
      Enables AI assistants to interact with the Hevy fitness tracking API, allowing users to log workouts, manage routines, browse exercises, and track fitness progress through natural language.
      15 npm
      MIT