Provides tools for analyzing workout history exported from Hevy, allowing users to track exercise progress, volume trends, and personal records while incorporating custom training conventions and muscle group mappings.
Provides read-only SQL access to query workout datasets and retrieve database schemas, enabling complex data analysis of stored workout history.
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 Workout Analytics MCP ServerAnalyze my bench press progress while accounting for my form resets."
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 Workout Analytics MCP Server
An MCP (Model Context Protocol) server that provides Claude with SQL access to your Hevy workout data, plus rich context about your personal training conventions.
Features
π SQL Access: Query your workout history with full SQL capabilities
ποΈ Exercise Taxonomy: Customizable muscle group mappings for exercises
π Personal Conventions: Track your specific rules (form resets, RPE usage, etc.)
π Read-Only: Safe SQL execution with no write permissions
π― Smart Analysis: Let Claude write complex queries to answer nuanced questions
Architecture
Hevy CSV Export β SQLite Database β MCP Server β Claude
β
Taxonomy & ConventionsInstallation
Clone and install:
git clone <repo-url>
cd hevy-history-mcp
pip install -e .Import your Hevy data:
python scripts/import_csv.py /path/to/hevy_export.csvConfigure Claude Desktop (
~/Library/Application Support/Claude/claude_desktop_config.jsonon macOS):
{
"mcpServers": {
"hevy-history": {
"command": "python",
"args": ["-m", "hevy_mcp.server"],
"env": {
"HEVY_DB_PATH": "/path/to/hevy.db"
}
}
}
}Usage
Example Questions for Claude
"Which triceps exercises progressed best in the last 6 months?"
"Which exercises have plateaued?"
"What are my PRs for compound lifts?"
"Show volume trends for chest exercises"
"Account for form resets when analyzing bench press progress"
Available Tools
execute_sql(query) - Run read-only SQL queries
get_schema() - Get database schema with column descriptions
get_exercise_taxonomy() - View/understand exercise-to-muscle mappings
get_tracking_conventions() - Read your personal tracking rules
Configuration
Exercise Taxonomy (taxonomy.yaml)
Map exercises to muscle groups and specify compound movement credit:
exercises:
"Bench Press (Barbell)":
primary: [chest]
secondary: [triceps, front_delts]
category: compound
"Tricep Pushdown (Cable)":
primary: [triceps]
category: isolationTracking Conventions (conventions.yaml)
Document your personal rules for analysis:
form_resets:
- exercise: "Bench Press (Barbell)"
date: "2024-03-15"
reason: "Reset to focus on form, reduced weight by 20%"
rpe_usage:
- "I track RPE consistently for main compound lifts"
- "Isolation work RPE is less consistent"
tracking_notes:
- "Superset_id groups exercises done back-to-back"
- "I rest-pause sets are marked in exercise_notes"Database Schema
The importer creates a workout_sets table with all Hevy CSV columns:
title- Workout namestart_time,end_time- Workout timestampsexercise_title- Exercise nameset_index- Set numberweight_lbs,reps,distance_miles,duration_seconds- Performance metricsrpe- Rate of Perceived Exertionexercise_notes- Per-exercise notesAnd more...
Development
Run tests:
pytestFormat code:
black .
ruff check .License
MIT