Garmin Connect

Provides an MCP server to access Garmin Connect data and actions via natural language queries.
  • typescript

0

GitHub Stars

typescript

Language

6 months ago

First Indexed

3 months 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": {
    "sedoglia-garmin-mcp-ts": {
      "command": "node",
      "args": [
        "C:\\\\percorso\\\\a\\\\garmin-mcp-ts\\\\dist\\\\index.js"
      ]
    }
  }
}

You can run a Model Context Protocol (MCP) server that connects Garmin Connect data to your preferred client, letting you ask natural-language questions about your activities, health metrics, sleep, and more. This guide shows you how to install, configure, and use the Garmin Connect MCP Server so you can explore your Garmin data with ease.

How to use

You will run a local MCP server that exposes Garmin Connect data to your MCP client. Start the server, then connect your client to it using the MCP URL or local executable path provided in the configuration. You can ask questions like about recent activities, health metrics, sleep details, workout plans, and advanced analytics. Use natural language prompts to explore data, generate insights, and request task automation such as downloading a workout or checking your training readiness.

How to install

Prerequisites you need before installing: Node.js 18.0 or higher, npm 8.0 or higher, Claude Desktop installed, and a Garmin Connect account with valid credentials.

Step-by-step installation flow for a quick setup (Bundle Precompiled is recommended):

# Step 1: Install the secure vault helper (recommended for security)
npm install keytar

# Step 2: Download the prebuilt MCP bundle
wget https://github.com/sedoglia/garmin-mcp-ts/releases/download/v4.0.0/diabetes-m-mcp.mcpb

# Step 3: Verify integrity (optional)
wget https://github.com/sedoglia/garmin-mcp-ts/releases/download/v4.0.0/diabetes-m-mcp.mcpb.sha256
sha256sum -c garmin-mcp-ts.mcpb.sha256

# Step 4: Install the Claude Desktop extension (recommended method)
# This is performed inside Claude Desktop following the on-screen prompts

Configure credentials securely in Claude Desktop or by following the provided setup steps to encrypt Garmin credentials and store tokens locally. Do not save credentials in plain text. After installation, restart Claude Desktop and verify the Garmin MCP extension is active in Settings → Developer.

If you prefer manual setup or want to run from source, you can clone the project, install dependencies, and build it, then configure the MCP server in Claude Desktop. Detailed steps for the clone-based flow are provided in the next section.

Additional configuration and security notes

The MCP server stores credentials and tokens locally using AES-256-GCM encryption. A two-tier security model keeps the encryption key in the operating system’s vault (Windows Credential Manager, macOS Keychain, or Linux Secret Service). If the native vault is unavailable, a fallback encrypted file is used. Your Garmin credentials are never stored in plain text.

To verify the encryption setup, you can run a diagnostic script that checks the encryption state and key storage. This helps ensure that both the key and the credentials are protected.

# Optional: check the encryption status (from the project directory)
npm run check-encryption

# Optional: test keytar integration (if available locally)
npm run test-keytar

Server connection configuration (MCP entry points)

You can run the Garmin MCP server locally as a stdio server. The following runtime configurations are provided as examples for the local setup.

{
  "mcpServers": {
    "garmin_win": {
      "type": "stdio",
      "name": "garmin_win",
      "command": "node",
      "args": ["C:\\percorso\\a\\garmin-mcp-ts\\dist\\index.js"]
    },
    "garmin_unix": {
      "type": "stdio",
      "name": "garmin_unix",
      "command": "node",
      "args": ["/percorso/a/garmin-mcp-ts/dist/index.js"]
    }
  }
}

Troubleshooting and tips

If the server does not appear in Claude Desktop, verify that the path to dist/index.js is correct in the configuration, ensure the JSON syntax is valid, then restart Claude Desktop and check the logs for errors.

Common issues include authentication failures due to incorrect Garmin credentials, rate limiting from Garmin, or missing encryption keys. Recheck credentials, ensure you can log into Garmin Connect manually, and wait a bit if you encounter rate limits.

Available tools

get_activity_comments

Obtain comments on a specific activity.

get_activity_details

Fetch detailed information for a specific activity.

get_health_metrics

Retrieve daily health metrics (steps, heart rate, VO2 max).

get_sleep_data

Get detailed sleep information (duration, quality, stages).

get_workouts

Retrieve planned workouts.

get_devices

List connected Garmin devices.

get_user_profile

Fetch user profile details.

get_training_load

Weekly training load and balance metrics.

get_load_ratio

Acute-to-ch chronic load ratio, injury risk indicator.

get_performance_condition

Current performance condition during activity.

compare_activities

Compare 2-5 activities side by side.

find_similar_activities

Find similar activities by type/distance/duration (20% tolerance).

analyze_training_period

Comprehensive trends, volume, and training patterns.

get_all_gear

List all gear and their details (requires UUID from Garmin Connect).

get_courses

Retrieve saved courses/routes.

get_sleep_movement

Sleep movement and restlessness data.

get_training_plans

List available training plans.

get_training_plan_by_id

Get details for a specific training plan.

get_menstrual_data

Fetch menstrual data for a given date.

get_pregnancy_summary

Obtain pregnancy-related summary.

get_gear_activities

Get activities associated with a gear (requires UUID).

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