home / mcp / garmin mcp server

Garmin MCP Server

Exposes Garmin Connect data to MCP clients with activities, health metrics, workouts, and profile access.

Installation
Add the following to your MCP client configuration file.

Configuration

View docs
{
  "mcpServers": {
    "taxuspt-garmin_mcp": {
      "command": "uvx",
      "args": [
        "--python",
        "3.12",
        "--from",
        "git+https://github.com/Taxuspt/garmin_mcp",
        "garmin-mcp"
      ],
      "env": {
        "GARMIN_EMAIL": "YOUR_GARMIN_EMAIL",
        "GARMIN_PASSWORD": "YOUR_GARMIN_PASSWORD"
      }
    }
  }
}

You can connect Garmin Connect data to MCP-compatible clients and make your fitness and health information available through a configurable MCP server. This allows you to access activities, health metrics, workouts, and gear data from tools that support the Model Context Protocol.

How to use

To use the Garmin MCP Server, run it as an MCP backend and connect your preferred MCP client (such as Claude Desktop or another MCP client). The server exposes a set of tools to fetch activities, health metrics, workouts, gear, and profile information from Garmin Connect. You can authenticate once using the pre-authentication workflow, then start the server and point your MCP client at it. When you ask questions like show me my recent activities, what was my sleep last night, or how many steps did I take yesterday, the server replies with the corresponding Garmin data.

How to install

Prerequisites you need before installation include Python 3.12 or newer and a Garmin Connect account. If MFA is enabled on your Garmin account, you will complete an MFA step during authentication.

Step 1 — Pre-authenticate (one-time). Run the authentication flow to save tokens that the server will reuse.

Step 1 — Pre-authenticate (one-time)

# Install and run authentication tool
uvx --python 3.12 --from git+https://github.com/Taxuspt/garmin_mcp garmin-mcp-auth

# You'll be prompted for:
# - Email (or set GARMIN_EMAIL env var)
# - Password (or set GARMIN_PASSWORD env var)
# - MFA code (if enabled on your account)

# OAuth tokens will be saved to ~/.garminconnect

Step 1b — Verify credentials (optional)

uv run garmin-mcp-auth --verify

Step 1c — Alternative credential methods

If MFA is not enabled, you can pass credentials via environment variables instead of the interactive flow.

[email protected] GARMIN_PASSWORD=secret garmin-mcp-auth

Step 2 — Configure the MCP client (Claude Desktop)

Add the Garmin MCP server configuration to your MCP settings without credentials. The server will automatically use the saved tokens.

{
  "mcpServers": {
    "garmin": {
      "command": "uvx",
      "args": [
        "--python",
        "3.12",
        "--from",
        "git+https://github.com/Taxuspt/garmin_mcp",
        "garmin-mcp"
      ]
    }
  }
}

Step 3 — Start the server in Claude Desktop

Restart Claude Desktop to connect to the Garmin MCP Server. Your Garmin data will be available to your MCP client.

Step 4 — Alternative local run (optional)

If you prefer to run the MCP server from your own environment, you can use a local copy of the repository.

{
  "mcpServers": {
    "garmin-local": {
      "command": "uv",
      "args": [
        "--directory",
        "<full path to your local repository>/garmin_mcp",
        "run",
        "garmin-mcp"
      ]
    }
  }
}

Step 5 — Quick verification with MCP Inspector

You can inspect and test the available tools using the MCP Inspector from the project root.

npx @modelcontextprotocol/inspector uv run garmin-mcp

Available tools

get_activity

Fetches the list of recent activities with pagination support.

get_activity_details

Retrieves detailed information for a specific activity, including GPS data and charts.

list_activities

Lists recent activities with pagination to browse through history.

get_health_metrics

Access health metrics such as steps, heart rate, sleep, stress, and respiration.

get_body_composition

View body composition data collected over time.

get_training_status

Track training status and readiness indicators.

get_readiness

Retrieve readiness metrics related to training load and recovery.

manage_gear

Manage gear and equipment information.

get_workouts

Access workouts and training plans.

get_training_plans

View available training plans and schedules.

get_weekly_health_aggregates

Fetch weekly aggregates for health metrics like steps and stress.

delete_activity

Destructive operation to delete an activity (intentionally skipped for safety).

delete_blood_pressure

Destructive operation to delete blood pressure records (intentionally skipped for safety).

Garmin MCP Server - taxuspt/garmin_mcp