Garmin MCP Server

This Model Context Protocol (MCP) server connects to Garmin Connect and exposes your fitness and health data to Claude and other MCP-compatible

Local serverstdioPython

What is the Garmin MCP MCP server?

Connect Garmin MCP to Claude, Cursor or any other MCP client and it stops being a tab you switch to. This Model Context Protocol (MCP) server connects to Garmin Connect and exposes your fitness and health data to Claude and other MCP-compatible clients. The garmin mcp mcp server is what makes that connection.

What the server does

  • List recent activities with pagination support
  • Get detailed activity information
  • Edit activities: name, type, description/notes, event type, perceived effort (RPE), and feel
  • Access health metrics (steps, heart rate, sleep, stress, respiration)
  • View body composition data
  • Track training status and readiness

Installation

The server ships on npm as without, so your MCP client can launch it on demand — there is no separate build step. Add the server block to your client's configuration, restart it, and the tools register themselves.

Available tools

The toolset is worth reading before you wire it up, because it tells you what the integration is really for:

  • create_walk_run_workout — Creates a walk/run interval workout with optional heart-rate zone target
  • create_z2_walk_workout — The create_z2_walk_workout tool exposed by this server
  • create_strength_workout — Creates a strength workout from a list of exercises. Each becomes a reps-based step, with the name kept in the step description. The name is also
  • schedule_week — The schedule_week tool exposed by this server
  • Prerequisites — The Prerequisites tool exposed by this server
  • Configuration — Your Garmin Connect credentials are read from environment variables:
  • Transport — By default the server communicates over stdio, which is what Claude Desktop, the MCP Inspector, and most local clients expect. To serve over

Credentials and setup notes

Configuration is passed through the environment: GARMIN_ENABLED_TOOLS, GARMIN_IS_CN, GARMIN_EMAIL, GARMIN_PASSWORD, GARMIN_MCP_HOST. Treat anything key-shaped as a real credential — scope it to the minimum the server needs, and rotate it if it ever lands in a shared config.

  • Python 3.12+ - Garmin Connect account - MFA may be required if enabled on your account

Worth knowing first

  • It runs with your machine's permissions. That is convenient and also the reason to think about what you point it at before you approve a tool call.
  • Keep per-call confirmation enabled while you learn its behaviour; it is the cheapest safeguard you have.

Where it fits

Plenty of cloud and infrastructure servers cover similar ground. The differences that matter in practice are scope of access and how much setup stands between you and a working tool call. Garmin MCP's toolset — create_walk_run_workout, create_z2_walk_workout, create_strength_workout and 4 more — is a fair guide to whether it matches your workflow. It is maintained by Taxuspt; worth a glance at recent repository activity before you build anything load-bearing on it.

We check each listing at SyncDev against the project's documentation before it goes live — if something here drifts out of date, it is a bug worth reporting.

Available tools

ToolWhat it does
create_walk_run_workoutCreates a walk/run interval workout with optional heart-rate zone target.
create_z2_walk_workoutThe create_z2_walk_workout tool exposed by this server.
create_strength_workoutCreates a strength workout from a list of exercises. Each becomes a reps-based step, with the name kept in the step description. The name is also sent as exerciseName, but Garmin only retains that when it matches one of
schedule_weekThe schedule_week tool exposed by this server.
PrerequisitesThe Prerequisites tool exposed by this server.
ConfigurationYour Garmin Connect credentials are read from environment variables:
TransportBy default the server communicates over **stdio**, which is what Claude Desktop, the MCP Inspector, and most local clients expect. To serve over **HTTP** instead (e.g. when running in a container or Kubernetes), set the

How to install the Garmin MCP MCP server

{
  "mcpServers": {
    "garmin": {
      "command": "npx",
      "args": ["-y", "without"],
      "env": {
        "GARMIN_ENABLED_TOOLS": "your-value",
        "GARMIN_IS_CN": "your-value",
        "GARMIN_EMAIL": "your-value",
        "GARMIN_PASSWORD": "your-value",
        "GARMIN_MCP_HOST": "your-value"
      }
    }
  }
}

Add to claude_desktop_config.json, then restart Claude Desktop.

Configuration

  • Python 3.12+ - Garmin Connect account - MFA may be required if enabled on your account
VariableDescriptionRequired
GARMIN_ENABLED_TOOLSConfiguration value read at startup.Optional
GARMIN_IS_CNConfiguration value read at startup.Optional
GARMIN_EMAILConfiguration value read at startup.Optional
GARMIN_PASSWORDConfiguration value read at startup.Optional
GARMIN_MCP_HOSTEndpoint or connection string the server talks to.Optional

Example prompts to try

  • Use Garmin MCP to create walk run workout.
  • Use Garmin MCP to create z2 walk workout.
  • Use Garmin MCP to create strength workout.

Frequently asked questions

It connects Garmin MCP to MCP-compatible AI assistants such as Claude and Cursor, exposing 7 tools (create_walk_run_workout, create_z2_walk_workout, create_strength_workout, and more) that the assistant can call on your behalf. Instead of copying data back and forth by hand, the assistant works with Garmin MCP directly.