The Garmin Health MCP Server enables you to query and analyze your Garmin health and fitness data through natural language conversations in Claude Desktop.
Key capabilities:
Query in plain English - Ask questions like "What's my VO2 max?" or "Am I overtraining?" and get answers from your Garmin data
Get comprehensive health overviews - View all metrics including VO2 max, activities, sleep, and race predictions in one summary
Track cardiovascular fitness - Monitor VO2 max history and trends, filtered by sport type and date ranges
Analyze workout patterns - Break down activities by type with statistics on counts, distances, and durations over custom time periods
Monitor sleep quality - Review sleep statistics including average duration and total nights tracked
View race predictions - Get predicted finish times for 5K, 10K, half marathon, and marathon based on current fitness
Optimize training intensity - Access personalized heart rate training zones calculated from max HR and lactate threshold
Assess training load - Monitor acute/chronic workload ratios to identify overtraining or undertraining risk
Compare activities - Run comparisons like "Compare my running vs cycling this year" to analyze performance across sports
The server integrates with Claude Desktop as an MCP server and queries data stored in Supabase, supporting historical analysis across multiple years of fitness tracking.
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., "@Garmin Health MCP Servershow me my sleep statistics from last week"
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.
Garmin Health MCP Server
Query your Garmin health data in plain English through Claude Desktop.
Quick Start
Prerequisites
Node.js 18+
Claude Desktop
Garmin data in Supabase
Install
Configure Claude Desktop
Add to your Claude Desktop config:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json
Restart Claude Desktop. The Garmin connector should appear in your connectors menu.
Available Tools
Tool | Description |
| Overview of all health data |
| VO2 max history and trends |
| Activity breakdown by type |
| Sleep statistics |
| Predicted race times |
| Personalized HR training zones |
| Acute/chronic workload ratio |
Example Queries
Getting Your Garmin Data
1. Request your data export
Navigate to Account Settings → Data Management
Click "Export Your Data" and request all data
2. Wait for the email
Garmin sends a download link within 48 hours. The export can be several GB depending on how long you've been tracking.
3. Download and extract
You'll get a zip with JSON files for activities, sleep, VO2 max, heart rate, and more.
4. Load into a database
The raw export is too large to query directly (mine was 9 years of data), so I loaded it into Supabase (free tier works fine).
You'll need these tables:
vo2_max— VO2 max readings by date and sportactivities— Activity records with type, duration, distance, HRsleep_summary— Aggregated sleep statsrace_predictions— Garmin's predicted race timesheart_rate_zones— HR zone boundariestraining_load— Daily training load metrics
I wrote Python scripts to parse the Garmin JSON and insert into Supabase. Happy to share if there's interest — open an issue.
Troubleshooting
Problem | Fix |
Connector doesn't appear | Check JSON syntax, use absolute path, fully restart Claude |
Connection errors | Verify Supabase credentials |
License
MIT