
Hevy MCP
Connects Claude to the Hevy fitness API so you can manage workouts, routines, exercises, and body measurements through conversation. Exposes 22 tools generated directly from Hevy's OpenAPI spec, with automatic weekly re-sync to track upstream changes. Write operations are dry-run by default and return a preview payload until you explicitly set HEVY_MCP_ALLOW_WRITES=1, which matters because Hevy has no delete endpoints. Every input is validated with Zod before hitting the network, failing fast with structured errors the model can self-correct. Setup is a single environment variable (HEVY_API_KEY) or an interactive setup command that writes a config file. Requires a Hevy Pro subscription since the public API is a Pro feature.
- tools
- 23
- transport
- STDIO
- last updated
- May 22, 2026
Tools
23 toolsPublic tool metadata for what this MCP can expose to an agent.
hevy_get_user_infoReturn the authenticated user (name, id, profile URL).
Return the authenticated user (name, id, profile URL).
No parameter schema in public metadata yet.
hevy_list_workoutsPaginated workouts (`pageSize` 1-10).
Paginated workouts (`pageSize` 1-10).
No parameter schema in public metadata yet.
hevy_get_workoutFetch one workout by UUID.
Fetch one workout by UUID.
No parameter schema in public metadata yet.
hevy_get_workout_countTotal number of workouts on the account.
Total number of workouts on the account.
No parameter schema in public metadata yet.
hevy_get_workout_eventsDelta-sync feed: `updated` / `deleted` events since a timestamp.
Delta-sync feed: `updated` / `deleted` events since a timestamp.
No parameter schema in public metadata yet.
hevy_create_workoutLog a new workout (write — dry-run default).
Log a new workout (write — dry-run default).
No parameter schema in public metadata yet.
hevy_update_workoutFull replace of an existing workout (write — dry-run default).
Full replace of an existing workout (write — dry-run default).
No parameter schema in public metadata yet.
hevy_list_routinesPaginated routines.
Paginated routines.
No parameter schema in public metadata yet.
hevy_get_routineFetch one routine by UUID.
Fetch one routine by UUID.
No parameter schema in public metadata yet.
hevy_create_routineCreate a routine (write — dry-run default).
Create a routine (write — dry-run default).
No parameter schema in public metadata yet.
hevy_update_routineFull replace of a routine (write — dry-run default).
Full replace of a routine (write — dry-run default).
No parameter schema in public metadata yet.
hevy_list_routine_foldersPaginated folders.
Paginated folders.
No parameter schema in public metadata yet.
hevy_get_routine_folderFetch one folder by positive integer id.
Fetch one folder by positive integer id.
No parameter schema in public metadata yet.
hevy_create_routine_folderCreate a folder (write — dry-run default).
Create a folder (write — dry-run default).
No parameter schema in public metadata yet.
hevy_list_exercise_templatesPaginated exercise library — the only list that accepts `pageSize` up to 100.
Paginated exercise library — the only list that accepts `pageSize` up to 100.
No parameter schema in public metadata yet.
hevy_search_exercise_templatesSearch templates by name (case-insensitive substring). Resolves a human name (e.g. "bench press") to an `exercise_template_id`. Paginates the full catalog; results cached for an hour.
Search templates by name (case-insensitive substring). Resolves a human name (e.g. "bench press") to an `exercise_template_id`. Paginates the full catalog; results cached for an hour.
No parameter schema in public metadata yet.
hevy_get_exercise_templateFetch one template by id (8-char hex for built-ins, UUID for custom).
Fetch one template by id (8-char hex for built-ins, UUID for custom).
No parameter schema in public metadata yet.
hevy_create_exercise_templateCreate a custom exercise (write — dry-run default).
Create a custom exercise (write — dry-run default).
No parameter schema in public metadata yet.
hevy_get_exercise_historyAll logged sets for a given exercise template.
All logged sets for a given exercise template.
No parameter schema in public metadata yet.
hevy_list_body_measurementsPaginated measurements. Records are keyed by date.
Paginated measurements. Records are keyed by date.
No parameter schema in public metadata yet.
hevy_get_body_measurementFetch the record for a single `YYYY-MM-DD`.
Fetch the record for a single `YYYY-MM-DD`.
No parameter schema in public metadata yet.
hevy_create_body_measurementCreate a new record (write — dry-run default). `409` if the date already exists.
Create a new record (write — dry-run default). `409` if the date already exists.
No parameter schema in public metadata yet.
hevy_update_body_measurementReplace the record for a date — any field not sent is set to `NULL` (write — dry-run default).
Replace the record for a date — any field not sent is set to `NULL` (write — dry-run default).
No parameter schema in public metadata yet.
Sponsors
Readme
@diecoscai/hevy-mcp
Model Context Protocol server for the Hevy fitness API. Manage workouts, routines, exercises, and body measurements from any MCP-compatible client — Claude Desktop, Claude Code, Cursor, VS Code, and anything else that speaks MCP over stdio.
Overview
This MCP server exposes the public Hevy API (api.hevyapp.com/v1) as 22 strongly-typed tools. LLM agents can list workouts, create routines, look up exercise templates, track body measurements, and follow a delta-sync feed — all without bespoke glue code on the client.
Design goals:
Details
- Repository
- github.com/diecoscai/hevy-mcp
- Package
@diecoscai/hevy-mcp- Transport
- STDIO
- Registry
- MCP registry, active