Garmin Connect

Provides personalized running analysis, training planning, and health metrics by connecting Garmin Connect with Claude via an MCP server.
  • other

2

GitHub Stars

other

Language

2 months ago

First Indexed

3 weeks ago

Catalog Refreshed

Documentation & install

Readme and setup notes from the catalogue, plus a client-ready config you can copy for your MCP host.

Installation

Add the following to your MCP client configuration file.

Configuration

View docs
{
  "mcpServers": {
    "leewnsdud-garmin-connect-mcp": {
      "command": "/opt/homebrew/bin/uv",
      "args": [
        "run",
        "--directory",
        "/[Directory Path]/garmin-connect-mcp",
        "python",
        "main.py"
      ],
      "env": {
        "GARMIN_PASSWORD": "[Garmin Connect password]",
        "GARMIN_TIMEZONE": "Asia/Seoul",
        "GARMIN_USERNAME": "[Garmin Connect email]"
      }
    }
  }
}

This MCP server connects Garmin Connect data with Claude-powered analysis to deliver personalized running training insights, plans, and recovery guidance. You can track performance, manage training load, and receive race-ready recommendations based on your Garmin activities and health metrics.

How to use

You interact with the Garmin Connect MCP through a client that communicates with the MCP server to request training analysis, plan recommendations, and health insights. Start by linking your Garmin Connect data, configure your Claude Desktop integration if you want AI-assisted prompts, and then request targeted outputs such as weekly summaries, race-focused plans, or daily workout suggestions. Use the server to explore your recent activities, pace zones, VO2 max trends, and recovery status, and to generate adaptive training plans that align with your current readiness.

How to install

Prerequisites: Python 3.13+, uv (the Python package manager), a Garmin Connect account, and Claude Desktop installed on your machine.

# Automatic installation (recommended)
git clone https://github.com/leewnsdud/garmin-connect-mcp.git
cd garmin-connect-mcp
uv run python install.py

Manual installation steps: clone the repo, install dependencies, and configure authentication and Claude Desktop integration as described below.

Configuration and run details

The MCP server is designed to be run via a local MCP configuration that references Garmin Connect and Claude Desktop integration. The following example shows how to configure a local MCP server entry forGarmin Connect integration.

{
  "mcpServers": {
    "garmin-connect": {
      "command": "/opt/homebrew/bin/uv",
      "args": [
        "run",
        "--directory",
        "/[디렉토리 경로]/garmin-connect-mcp",
        "python",
        "main.py"
      ],
      "env": {
        "GARMIN_USERNAME": "<Garmin Connect 이메일>",
        "GARMIN_PASSWORD": "<Garmin Connect 비밀번호>",
        "GARMIN_TIMEZONE": "Asia/Seoul"
      }
    }
  }
}

Security and environment

Keep your Garmin Connect credentials secure. The server uses environment variables for authentication and the preferred timezone for date calculations. If you operate behind a VPN or corporate network, ensure the Garmin API access is allowed.

Notes and troubleshooting

If you encounter missing data such as public training plans or gear insights, verify your Garmin device pairing and data availability. The MCP server relies on Garmin Connect data and may report empty results if your account has limited data or missing gear entries.

Testing and quality

Unit tests are provided for core utilities using the standard library. Run tests with:

uv run python -m unittest

Developer notes

Key files include a main entry point, a Garmin client service, training and analytics handlers, and shared utilities. The server supports caching, formatting, and running calculations used by training analytics.

Available tools

get_personal_records

Retrieve personal bests across distances with timestamps and related activity identifiers.

get_vo2max

Fetch current VO2 max value and trends along with race predictions.

get_training_status

Obtain overall training status, readiness score, and recovery indicators.

get_lactate_threshold

Access lactate threshold data including pace and heart rate where available.

get_race_predictions

Get predicted race times based on current fitness metrics.

get_training_readiness

Return training readiness score and actionable recommendations.

get_recovery_time

Provide recommended recovery duration and last activity details.

get_endurance_score

Evaluate aerobic endurance level and related attributes.

get_hill_score

Assess hill climbing capability and related metrics.

get_recent_running_activities

List recent running activities with core metrics.

get_activity_summary

Summarize a specific activity with pace, distance, and HR data.

get_activity_details

Provide detailed splits and metrics for a given activity.

get_weekly_running_summary

Return weekly running totals and trend analysis.

get_heart_rate_metrics

Retrieve resting HR and HRV metrics over a period.

get_sleep_analysis

Analyze sleep duration, stages, and quality indicators.

get_body_battery

Report body battery energy levels and timelines.

get_stress_levels

Analyze stress metrics and trends.

get_daily_activity

Track daily activity totals including steps and intensity.

get_hrv_data

Provide detailed HRV readings and recovery status.

get_spo2_data

Return daily SpO2 metrics and sleep-related values.

calculate_training_paces

Compute training paces from given inputs.

calculate_vdot_zones

Compute VDOT-based training zones and equivalent race times.

analyze_threshold_zones

Analyze threshold zones for advanced training strategies.

suggest_daily_workout

Propose a daily workout tailored to current readiness.

analyze_workout_quality

Analyze execution quality of completed workouts.

list_training_plans

List available training plans filtered by goals or experience.

get_training_plan_overview

Provide high-level details of a specific training plan.

get_training_plan_schedule

Show week-by-week schedule and calendar alignment.

analyze_training_load

Evaluate acute vs chronic load and overall fatigue risk.

get_training_effect

Analyze aerobic and anaerobic training effects.

get_training_load_balance

Assess acute/chronic load balance and recommendations.

get_gear_insights

Provide shoe mileage, usage, and replacement suggestions.

get_running_trends

Analyze long-term performance trends over time.

analyze_heart_rate_zones

Analyze distribution of HR zones during activities.

get_advanced_running_metrics

Fetch advanced metrics requiring devices with Running Dynamics.

get_devices

List connected Garmin devices and their status.

get_primary_training_device

Identify the main device used for training data.

get_device_settings

Expose device configuration like HR zones and data recording.

get_paginated_activities

Retrieve large sets of activities with pagination.

get_activities_for_date

Query all activities for a specific date.

download_activity_file

Download activity data in TCX, GPX, or FIT formats.

set_race_goal

Set a race goal and obtain a training plan alignment.

Built by
VeilStrat
AI signals for GTM teams
© 2026 VeilStrat. All rights reserved.All systems operational