Hevy MCP
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| HEVY_API_KEY | Yes | Your actual Hevy API key (requires PRO subscription) |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| get-workoutsA | Get a paginated list of workouts. Returns workout details including title, description, start/end times, and exercises performed. Results are ordered from newest to oldest. |
| get-workoutA | Get complete details of a specific workout by ID. Returns all workout information including title, description, start/end times, and detailed exercise data. |
| get-workout-countA | Get the total number of workouts on the account. Useful for pagination or statistics. |
| get-workout-eventsA | Retrieve a paged list of workout events (updates or deletes) since a given date. Events are ordered from newest to oldest. The intention is to allow clients to keep their local cache of workouts up to date without having to fetch the entire list of workouts. |
| create-workoutA | Create a new workout in your Hevy account. Requires title, start/end times, and at least one exercise with sets. Returns the complete workout details upon successful creation including the newly assigned workout ID. |
| update-workoutA | Update an existing workout by ID. You can modify the title, description, start/end times, privacy setting, and exercise data. Returns the updated workout with all changes applied. |
| get-routinesB | Get a paginated list of your workout routines, including custom and default routines. Useful for browsing or searching your available routines. |
| get-routineB | Get a routine by its ID using the direct endpoint. Returns all details for the specified routine. |
| create-routineA | Create a new workout routine in your Hevy account. Requires a title and at least one exercise with sets. Optionally assign to a folder. Returns the full routine details including the new routine ID. |
| update-routineB | Update an existing routine by ID. You can modify the title, notes, and exercise configurations. Returns the updated routine with all changes applied. |
| get-exercise-templatesC | Get a paginated list of exercise templates (default and custom) with details like name, category, equipment, and muscle groups. Useful for browsing or searching available exercises. |
| get-exercise-templateA | Get complete details of a specific exercise template by its ID, including name, category, equipment, muscle groups, and notes. |
| get-exercise-historyA | Get past sets for a specific exercise template, optionally filtered by start and end dates. |
| create-exercise-templateC | Create a custom exercise template with title, type, equipment, and muscle groups. |
| search-exercise-templatesA | Search exercise templates by name with optional muscle group filter. Fetches all templates from the Hevy API on first call and caches them in memory for subsequent searches. Use refresh:true to force a re-fetch. |
| get-routine-foldersA | Get a paginated list of your routine folders, including both default and custom folders. Useful for organizing and browsing your workout routines. |
| get-routine-folderB | Get complete details of a specific routine folder by its ID, including name, creation date, and associated routines. |
| create-routine-folderB | Create a new routine folder in your Hevy account. Requires a name for the folder. Returns the full folder details including the new folder ID. |
| get-body-measurementsA | Get a paginated list of body measurements for the authenticated user. Returns measurements including weight, body fat, and various circumference measurements. |
| get-body-measurementA | Get a single body measurement by date. Returns all measurement fields for the specified date. |
| create-body-measurementA | Create a body measurement entry for a given date. All measurement fields are optional. Returns 409 if an entry already exists for that date — use update-body-measurement instead. |
| update-body-measurementA | Update an existing body measurement entry for a given date. All fields are overwritten — omitted fields are set to null. Returns 404 if no entry exists for the date. |
| get-webhook-subscriptionA | Get the current webhook subscription for this account. Returns the webhook URL and auth token if a subscription exists. |
| create-webhook-subscriptionA | Create a new webhook subscription for this account. The webhook will receive POST requests when workouts are created. Your endpoint must respond with 200 OK within 5 seconds. |
| delete-webhook-subscriptionA | Delete the current webhook subscription for this account. This will stop all webhook notifications. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/chrisdoc/hevy-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server