garmin-connect
MCP server enabling LLMs to interact with Garmin Connect - activities, health metrics, sleep data, and training analysis
claude mcp add --transport stdio eddmann-garmin-connect-mcp uv run --directory /ABSOLUTE/PATH/TO/garmin-connect-mcp garmin-connect-mcp
How to use
This Garmin Connect MCP Server provides a rich set of tools to access and analyze your Garmin Connect data through Claude and other LLM interfaces. It exposes 22 tools across categories like Activities, Analysis, Health & Wellness, Training, User Profile, Challenges & Goals, Devices & Gear, Weight Management, and Other. In addition to the tools, the server registers MCP Resources such as an Athlete Profile, Training Readiness, and Daily Health context, plus a library of prompts to guide common queries (e.g., training analysis, sleep quality, and health summaries). You can ask Claude to run analyses, pull detailed activity data, compare workouts, fetch health metrics, and surface personal records and device information, all via natural language prompts.
How to install
Prerequisites:
- Python 3.11+ and uv installed, or Docker installed
- Access to Garmin Connect credentials for authentication
Option A: Install and run with UV
- Ensure dependencies are installed (Python and uv):
- Install Python 3.11+ from python.org
- Install uv: pip install uv or follow the UV installation guide for your OS
- Clone or download the garmin-connect-mcp project and navigate to its directory:
- cd garmin-connect-mcp
- Run the MCP server with UV using the directory path to your project and the package name you want to expose:
- uv run --directory /ABSOLUTE/PATH/TO/garmin-connect-mcp garmin-connect-mcp
- Follow the authentication flow to connect your Garmin Connect account. Tokens will be stored and refreshed automatically.
Option B: Install and run with Docker
- Install Docker on your system.
- Pull the latest image:
- docker pull ghcr.io/eddmann/garmin-connect-mcp:latest
- Run the container and expose the MCP server (you may set environment variables for credentials as needed inside the container or via mounted volumes):
- docker run -it --rm
-v "/ABSOLUTE/PATH/TO/.garminconnect:/root/.garminconnect"
-v "/ABSOLUTE/PATH/TO/garmin-connect-mcp.env:/app/.env"
ghcr.io/eddmann/garmin-connect-mcp:latest
- docker run -it --rm
- The container will prompt for MFA on first run if required and persist tokens as configured. Ensure you mount token directories to avoid repeated MFA prompts.
Configuration & Credentials
- OAuth tokens and credentials are stored in the configured path (e.g., ~/.garminconnect or mounted volumes).
- For Docker with MFA, persist tokens by mounting a host directory to the container (recommended).
Additional notes
Tips and common issues:
- MFA prompts: If your Garmin account has MFA enabled, you may be prompted for a code on first run. Persist tokens to avoid repeated MFA prompts across restarts by mounting a token directory (e.g., ~/.garminconnect or a dedicated Docker volume).
- Token persistence: When using Docker, volume mounts are essential for token persistence and MFA workflow efficiency.
- Credentials format: You can provide credentials via an interactive setup or by placing them in a .env file as GARMIN_EMAIL and GARMIN_PASSWORD.
- Claude integration: The MCP Resources (athlete profile and daily health) provide ongoing context for prompts; you can craft queries around readiness checks, health summaries, and training analysis with these resources in mind.
- Pagination: Some list-returning tools paginate results (e.g., activities, health data). Be aware of default limits (10 activities, 7 health data items) and use filters to refine results.
- Environment paths: Replace /ABSOLUTE/PATH/TO/... with real absolute paths on your host machine for UV directory or Docker volume mappings.
Related MCP Servers
mcp-manager
simple web ui to manage mcp (model context protocol) servers in the claude app
openapi
OpenAPI definitions, converters and LLM function calling schema composer.
omega-memory
Persistent memory for AI coding agents
cursor-feedback-extension
Save your Cursor monthly quota! Unlimited AI interactions in one conversation via MCP feedback loop.
local -gateway
Aggregate multiple MCP servers into a single endpoint with web UI, OAuth 2.1, and profile-based tool management
memory
A MCP (Model Context Protocol) server providing long-term memory for LLMs