hevy-mcp-server
Provides tools for interacting with the Hevy public API, enabling AI agents to manage workouts, routines, routine folders, exercise templates, exercise history, and body measurements in a Hevy account.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@hevy-mcp-serverShow my workout history for the past month."
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
hevy-mcp-server
A complete, open-source single tenant MCP server for Hevy's public API. Every endpoint Hevy exposes is reachable through one of the tools below -- workouts, routines, routine folders, exercise templates (including custom exercises), per-exercise history, and body measurements.
Runs two ways:
Locally over stdio -- for Claude Desktop / Claude Code, zero hosting required.
Remotely over HTTP -- for claude.ai / Cowork connectors, deployable to Fly.io with the included Dockerfile.
View the full product and technical design here.
Tools
12 tools cover all 21 endpoint paths in Hevy's public API (several are consolidated behind one tool via a view/action parameter to avoid near-duplicate tools). Full list with exact endpoint coverage: docs/tools.md.
Read | Write |
|
|
|
|
|
|
|
|
|
|
| |
|
Related MCP server: hevy-mcp
Quick start (local, stdio)
Requires Node.js 20+ and a Hevy Pro subscription. Grab your Hevy API key first.
npx hevy-mcp-serverPoint your MCP client (Claude Desktop, Claude Code, etc.) at it. For Claude Desktop, add to claude_desktop_config.json:
{
"mcpServers": {
"hevy": {
"command": "npx",
"args": ["hevy-mcp-server"],
"env": {
"HEVY_API_KEY": "your-api-key-here",
"HEVY_READ_ONLY": "false"
}
}
}
}Configuration
Env var | Required | Default | Description |
| yes | -- | Your Hevy API key (a UUID from https://hevy.com/settings?developer). Never logged, never echoed in tool output. |
| no |
| When |
| no |
| Override for testing against a mock server. |
HTTP mode (below) needs three more: PORT, PUBLIC_URL, MCP_HTTP_PASSWORD. See .env.example for all of them with descriptions.
Remote (HTTP) deployment on Fly.io
The HTTP transport is gated by OAuth (required for claude.ai/Cowork connector approval). This is single-tenant OAuth: there's no concept of separate user accounts, it just gates access to your instance behind one shared password. See docs/architecture.md for why and how.
Install flyctl and
fly auth login.fly launch --no-deployfrom this directory (it will readfly.toml; rename theappthere first if you want a specific subdomain).Set secrets (never put these in
fly.toml, which is committed to git):fly secrets set HEVY_API_KEY=your-api-key-here fly secrets set MCP_HTTP_PASSWORD=choose-a-strong-passwordEdit
fly.toml'sPUBLIC_URLto match your actual*.fly.devhostname (or custom domain), then:fly deployIn claude.ai / Cowork, add a custom connector pointing at
https://<your-app>.fly.dev/mcp. You'll be redirected to a login page on your own instance -- enterMCP_HTTP_PASSWORDto approve the connection.
Notes:
Single
shared-cpu-1xmachine, no volume. OAuth session state (registered clients, tokens) lives in memory and is lost on redeploy or restart -- you'll just need to reconnect the connector afterwards. Acceptable trade-off for a low-traffic personal instance; see the TDD.fly.toml's[http_service]is configured to stay always-on (not scaled to zero) for exactly that reason -- a stop/start cycle would otherwise force reconnection too.Hevy's docs ask that scheduled/automated syncs avoid firing exactly on the hour -- stagger any cron-style usage by a random minute.
Development
npm install
npm run dev:stdio # run src/stdio.ts directly with tsx
npm run dev:http # run src/http.ts directly with tsx
npm run typecheck
npm run lint # biome check
npm run lint:fix
npm test
npm run build # bundles dist/stdio.js and dist/http.js with tsupSee docs/architecture.md for the repo layout and request-flow details.
Skills
skills/ bundles ready-made agent workflows on top of these tools (workout logging, routine building, progress reviews, etc.) -- see that folder's README for the full index.
License
MIT -- see LICENSE.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
No tool schema history has been recorded yet.
This server cannot be installed
Maintenance
Related MCP Connectors
Build, validate, deploy — HTTP APIs, cron jobs, webhooks and MCP tools — from your AI client.
Query, browse, and automate OmegaAI workspaces from any MCP client. Streamable HTTP with OAuth 2.0.
Personal assistant MCP server with search, execute, packages, jobs, secrets, and integrations.
- QuallaaOAuthcom.quallaa
Talk to your public-facing AI from any MCP client — Claude, ChatGPT, Cursor, Cline, Windsurf.
Related MCP Servers
- AlicenseAqualityAmaintenanceA Model Context Protocol (MCP) server implementation that interfaces with the Hevy fitness tracking app and its API. This server enables AI assistants to access and manage workout data, routines, exercise templates, and more through the Hevy API (requires PRO subscription).2339,164453MIT
- AlicenseNot gradedqualityCmaintenancePython MCP server for the Hevy fitness app. Gives Claude full access to your Hevy data. Log workouts, manage routines, track body measurements, browse exercises, and more. Covers all 25 endpoints of the official Hevy API.MIT
- AlicenseAqualityBmaintenanceAn MCP server that interfaces with the Hevy fitness tracking API, enabling AI assistants to manage workouts, routines, exercise templates, and more via natural language.2639,164MIT
- AlicenseNot gradedqualityCmaintenanceA Model Context Protocol (MCP) server that provides AI assistants with access to the Hevy fitness tracking API. This allows you to log workouts, manage routines, browse exercises, and track your fitness progress directly through AI chat interfaces.12MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/lukendatigh/hevy-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server