Hevy MCP
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| HOST | No | Host interface to bind the HTTP server when using streamable-http transport. | 0.0.0.0 |
| PORT | No | Port for the HTTP server when using streamable-http transport. | 8000 |
| ALLOW_WRITES | No | Whether to enable write tools. Write tools are disabled by default; set to 'true' to enable them. | false |
| HEVY_API_KEY | Yes | Your Hevy API key from Hevy's developer settings. Required to authenticate requests to the Hevy API. | |
| MCP_TRANSPORT | No | Transport mode for the MCP server. Defaults to 'stdio'. Set to 'streamable-http' to enable HTTP mode. | stdio |
| MCP_ACCESS_TOKEN | No | Bearer token required to authenticate MCP clients when MCP_TRANSPORT is set to 'streamable-http'. | |
| ALLOW_HEADER_HEVY_KEY | No | Set to 'true' to allow clients to supply their own Hevy API key via the X-Hevy-API-Key header. | false |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| 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_workoutsB | List workouts. page must be >=1; page_size is capped by server policy and Hevy. |
| get_workoutB | Get one workout by exact Hevy workout ID. |
| list_routinesB | List routines. Use get_routine before proposing an update. |
| get_routineA | Get one routine by exact Hevy routine ID. |
| search_exercise_templatesA | Search account exercise templates by title. Call this before any routine/workout mutation. |
| get_exercise_historyB | Get performed-set history for one exercise template. Dates must be YYYY-MM-DD when supplied. |
| create_routineA | Create a routine. Disabled by default and requires confirmation='CONFIRM'. May duplicate on retry. |
| update_routineA | Replace an existing routine. Fetch it first; disabled by default; requires confirmation='CONFIRM'. |
| create_workoutA | Create a completed workout. Disabled by default and requires confirmation='CONFIRM'. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| review_routine_change | Prompt for reviewing a routine change before invoking update_routine. |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| safety_resource |
TDQS
Scored across 9 tools
Each tool targets a distinct resource and action (list/get workouts, list/get routines, search templates, get history, create/update routine, create workout). Descriptions explicitly clarify boundaries and usage constraints, leaving no overlapping purposes.
All tool names follow a consistent snake_case verb_noun pattern (list_workouts, get_workout, create_routine, etc.). No deviations or mixed conventions.
Nine tools is well-scoped for a fitness-domain MCP server. Each tool serves a clear purpose without redundancy or bloat.
The surface covers core read operations for workouts, routines, and exercise history, plus create/update for routines and create for workouts. Minor gaps exist (no delete for routines/workouts, no update_workout, no get_exercise_template by ID), but these are workaroundable for most workflows.