hevy-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| HEVY_API_KEY | Yes | Your Hevy API key. Get it from https://hevy.com/settings?developer |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| list_workoutsA | List the user's workouts in reverse-chronological order. Use this first when the user asks about "recent workouts", "last N sessions",
"what did I train on Monday", etc. Each item is a summary; call
|
| get_workoutA | Fetch a single workout with every set, rep, weight, RPE, and note. Use this when the user asks about a specific workout or wants to compare
sets across sessions. Pair with |
| get_workout_countA | Total number of workouts the user has logged. Cheap; safe to call eagerly. |
| get_workout_eventsA | Stream of workout change events (created/updated/deleted). Use to detect new workouts since a previous interaction without re-paginating
the full list. The |
| create_workoutA | Log a completed workout to Hevy.
Resolve |
| update_workoutA | Replace the contents of an existing logged workout. Same payload shape as |
| list_routinesB | List the user's saved routines (templates they follow). Paginated. |
| get_routineB | Fetch a single routine with every exercise and target set. |
| create_routineA | Create a new routine. Required WORKFLOW for natural-language requests:
|
| update_routineA | Update an existing routine in place. Same payload shape as |
| list_routine_foldersB | List the user's routine folders (e.g. 'Push/Pull/Legs', 'Hypertrophy Block'). |
| get_routine_folderA | Fetch a single routine folder by id. |
| create_routine_folderA | Create a new routine folder. Returns the new folder including its id, which
you can pass to |
| list_exercise_templatesA | Paginated browse of the Hevy exercise library (~400 entries). Cached for 24h. Prefer |
| get_exercise_templateA | Fetch a single exercise template by id (the Hevy library entry, not a logged set). |
| search_exercise_templatesA | Fuzzy-search the Hevy exercise library. Use this before
Returns ranked candidates with id, title, equipment, primary_muscle_group, and a match score 0-100. Pick the top hit unless the user disambiguates. |
| get_webhook_subscriptionA | Return the user's current webhook subscription, if any. |
| create_webhook_subscriptionA | Create or replace the user's webhook subscription.
|
| delete_webhook_subscriptionA | Delete the active webhook subscription. |
| estimate_one_rep_maxA | Estimate the user's 1RM on a given exercise from their recent top sets. Walks the user's workouts (newest first), gathers every set of the target exercise, and applies a strength formula:
Returns the highest e1RM observed plus the contributing set, plus a short recent history. Skips warmups and reps>15 (formulas are unreliable past that). |
| volume_by_muscle_groupA | Aggregate working-set volume (kg lifted) by primary muscle group over a window. Useful for "which muscle groups have I been neglecting?" prompts. Volume per set = weight_kg * reps; warmups excluded. Requires the template list to be loaded (it will be cached on first call). |
| progression_trendB | Top-set e1RM over time for a single exercise. Returns a per-session series suitable for charting. |
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/Vellarasan/hevy-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server