Skip to main content
Glama
cbotworks
by cbotworks

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
LOG_LEVELNoLog level: error, warn, info, debuginfo
HEVY_API_KEYYesYour Hevy API key (required, get from hevy.com/settings?p=developer)
HEVY_CACHE_TTL_MSNoExercise template cache TTL (default 1h)3600000
HEVY_ANALYTICS_MAX_PAGESNoSoft cap for analytics pagination (50 pages = 500 workouts)50
HEVY_RATE_LIMIT_CAPACITYNoToken bucket capacity (max burst)10
HEVY_RATE_LIMIT_REFILL_PER_SECNoToken refill rate (requests/sec)10

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

CapabilityDetails
tools
{
  "listChanged": true
}

Tools

Functions exposed to the LLM to take actions

NameDescription
list_workoutsB

List workouts in reverse-chronological order. Hevy enforces a max pageSize of 10.

get_workoutA

Fetch a single workout by its ID, including all exercises and logged sets.

get_workout_countA

Get the total number of workouts logged for the authenticated account.

get_workout_eventsA

List workout sync events (created/updated/deleted) since a given ISO 8601 timestamp. Useful for incremental sync. Hevy enforces a max pageSize of 10.

create_workoutA

Create a new workout. The workout body is strictly validated: title, start_time/end_time (ISO 8601), and at least one exercise with at least one set are required.

update_workoutA

Replace an existing workout by ID. The full workout body must be supplied — this is a full replacement, not a patch.

list_routinesB

List saved routines (workout templates). Hevy enforces a max pageSize of 10.

get_routineA

Fetch a single routine by its ID, including all planned exercises and sets.

create_routineA

Create a new routine. Routines may optionally live inside a folder via folder_id. Note: the Hevy mobile app does not render rep_range (it uses an undocumented input_modifier field).

update_routineA

Replace an existing routine by ID. Note: the API does NOT accept folder_id on update — folder moves happen via the mobile app only.

list_exercise_templatesA

List exercise templates (built-in and custom). Hevy enforces a max pageSize of 10. For fuzzy name search prefer search_exercise_templates.

get_exercise_templateA

Fetch a single exercise template by its ID.

get_exercise_historyA

Fetch per-set history for a single exercise template across all workouts. Optionally bounded by startDate/endDate (ISO 8601). Much cheaper than paginating /v1/workouts when you only care about one exercise.

create_exercise_templateB

Create a custom exercise template. Requires title, exercise_type, equipment_category, and muscle_group; other_muscles is optional.

search_exercise_templatesA

Fuzzy-search exercise templates by name with an optional muscle-group filter. Runs locally against a cached copy of all templates — much faster and cheaper than paginating /v1/exercise_templates. Returns top matches sorted by score.

list_routine_foldersC

List routine folders. Hevy enforces a max pageSize of 10.

get_routine_folderA

Fetch a single routine folder by its numeric ID.

create_routine_folderA

Create a new routine folder with the given title. All other fields (id, index, timestamps) are assigned by the server.

get_user_infoA

Fetch the authenticated user's profile (id, name, public profile URL).

get_exercise_progressionA

Return a chronological time series of the best set per session for one exercise template. Uses /v1/exercise_history (single API call). Each point includes weight, reps, volume, and Epley-estimated 1RM. Optional since (ISO 8601) defaults to 90 days ago.

get_personal_recordsA

Return heaviest-weight, best-set (weight * reps), and top estimated 1RM PRs. If exerciseTemplateId is provided, uses /v1/exercise_history (single call). Otherwise paginates recent workouts and returns a per-exercise map. May include a warning field if paginated results were truncated.

get_volume_summaryA

Total training volume (weight_kg * reps, nulls => 0) grouped by exercise, muscle_group, or week. Paginates recent workouts since since (ISO 8601, default 90 days ago). May include a warning field if results were truncated.

get_workout_frequencyA

Per-week workout counts with streak and longest-gap statistics over since (ISO 8601, default 90 days ago). May include a warning field if results were truncated.

detect_stagnationA

Flag exercises whose peak estimated 1RM occurred earlier in the window (i.e. recent sessions are below peak). Defaults: weeksBack=8, minSessions=3. Returns a list sorted by percent below peak, descending. May include a warning field if truncated.

duplicate_workoutA

Duplicate an existing workout. The new workout starts at startTime (defaults to now) and preserves the original's duration, title, exercises, and sets.

routine_from_workoutA

Create a new routine from an existing workout. Copies exercises and sets (dropping RPE, which routines do not support) and places the routine in the given folder, if any.

compare_workoutsA

Compare two workouts side-by-side. Returns per-workout summaries, top-level deltas (volume, sets, exercise count), and a per-exercise diff sorted alphabetically by exercise title.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

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/cbotworks/mcp-hevy-pro'

If you have feedback or need assistance with the MCP directory API, please join our Discord server