mcp-garmin-connect
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| GARMIN_EMAIL | Yes | Your Garmin Connect email address. | |
| OPENAI_API_KEY | No | API key for OpenAI provider demo (optional). | |
| GARMIN_PASSWORD | Yes | Your Garmin Connect password. | |
| DEEPSEEK_API_KEY | No | API key for DeepSeek provider demo (optional). | |
| ANTHROPIC_API_KEY | No | API key for Anthropic Claude provider demo (optional). |
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
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| get_recoveryB | Current recovery state: readiness, HRV, sleep, body battery, and status. |
| get_sleepB | Sleep duration and sleep scores for the last N days. |
| get_stressC | Daily all-day stress levels and stress duration buckets. |
| get_recent_activitiesC | Recent Garmin activities with normalized sport-aware summary fields. |
| get_activity_detailC | Detailed summary for one activity by Garmin activity ID. |
| get_recent_loadB | Training volume aggregated by sport over the last N days. |
| get_training_loadB | Garmin training load status, acute/chronic load, and load focus. |
| get_fitnessB | VO2 max, cycling FTP, and race predictions. |
| get_zonesA | Heart-rate and power zones from Garmin profile data when available. |
| get_personal_recordsC | Personal records returned by Garmin Connect. |
| get_running_summaryC | Running summary: sessions, distance, pace, HR, longest run, fastest run, monthly split. |
| get_monthly_running_statsC | Monthly running stats for the last N calendar-ish months based on recent activities. |
| get_health_summaryC | Compact health snapshot combining recovery, sleep, and stress. |
| get_full_snapshotC | Comprehensive Garmin data snapshot for holistic analysis. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| recovery_check | Use Garmin recovery data to decide whether today should be easy or hard. |
| weekly_training_review | Review recent training volume, sport balance, recovery, and risk. |
| activity_analysis | Analyze one recent workout using its activity details. |
| race_plan_context | Gather Garmin context before creating a race or training plan. |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 14 tools
Tools generally target distinct data types (recovery, sleep, stress, activities, load, fitness). However, composite tools like get_health_summary and get_full_snapshot overlap with individual metrics, and get_running_summary vs get_monthly_running_stats could be confused. Descriptions provide guidance, so most tools are distinguishable.
All tools follow a consistent 'get_' prefix with clear noun suffixes (e.g., get_recovery, get_sleep, get_activity_detail). The naming pattern is uniform and predictable.
14 tools is within the expected range for a Garmin Connect server and covers all major data domains. However, some redundancy (e.g., get_health_summary and get_full_snapshot) means a few tools could be consolidated, slightly reducing focus.
The server provides comprehensive read-only coverage of Garmin Connect: recovery, sleep, stress, activities, activity details, training load, fitness metrics, zones, records, and running-specific summaries. There are no obvious missing data types for a read-only health/fitness API.