Skip to main content

Garmin Workouts MCP Server

Project description

Garmin Workouts MCP Server

An MCP server that allows you to create, list, and manage Garmin Connect workouts using natural language descriptions through MCP-compatible clients.

Features

  • Create workouts: Generate structured Garmin workouts from natural language descriptions using AI
  • List workouts: View all your existing workouts on Garmin Connect
  • Get workout details: Retrieve detailed information about specific workouts
  • MCP Integration: Works with any MCP-compatible client (Claude Desktop, etc.)

Setup

  1. Install and run using uvx:
uvx garmin-workouts-mcp
  1. Configure in your MCP client (e.g., Claude Desktop):

Add to your MCP client configuration:

{
  "mcpServers": {
    "garmin-workouts": {
      "command": "uvx",
      "args": ["garmin-workouts-mcp"]
    }
  }
}

On first use, you'll be prompted to login to Garmin Connect. Upon successful login, access and refresh tokens will be stored locally for subsequent calls.

Usage

This server provides the following MCP tools that can be used through any MCP-compatible client:

Generate Workout Data Prompt

Use the generate_workout_data_prompt tool to create a prompt for an LLM to generate structured workout data:

generate_workout_data_prompt("10 min warmup, 5x(1km at 4:30 pace, 2min recovery), 10 min cooldown")

Upload Workout

Use the upload_workout tool to upload structured workout data to Garmin Connect:

upload_workout(workout_data_json)

List Workouts

list_workouts()

Get Workout Details

get_workout("workout_id_here")

The tool supports various workout types:

  • Running: pace targets, distance/time based intervals
  • Cycling: power, cadence, speed targets
  • Swimming: time/distance based sets
  • Strength training: circuit-style workouts
  • General cardio: heart rate based training

Workout Description Examples

  • "30min easy run at conversational pace"
  • "5km tempo run at 4:15 min/km pace"
  • "10 min warmup, 3x(20min at 280w, 5min at 150w), 10min cooldown"
  • "Swimming: 400m warmup, 8x(50m sprint, 30s rest), 400m cooldown"
  • "Strength circuit: 5x(30s pushups, 30s squats, 30s plank, 60s rest)"

Environment Variables

  • GARTH_HOME: Custom location for Garmin credentials (optional, defaults to ~/.garth)

Attributions

This project incorporates some ideas and prompts originally developed in openai-garmin-workout, which is licensed under the MIT License.

License

This project is licensed under the MIT License - see the LICENSE file for details.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

garmin_workouts_mcp-0.1.2.tar.gz (9.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

garmin_workouts_mcp-0.1.2-py3-none-any.whl (9.8 kB view details)

Uploaded Python 3

File details

Details for the file garmin_workouts_mcp-0.1.2.tar.gz.

File metadata

  • Download URL: garmin_workouts_mcp-0.1.2.tar.gz
  • Upload date:
  • Size: 9.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.10.18

File hashes

Hashes for garmin_workouts_mcp-0.1.2.tar.gz
Algorithm Hash digest
SHA256 7cb59eabcf066f4557a2e783e38ac752b431e0121e7a87c2be0f52b288591086
MD5 efdc7c462e325a90c5d678b9b996ba1e
BLAKE2b-256 dc9994b58490f4f3df3eed2867396fd30ad9801a01e9e7facf0be4ad246e65c9

See more details on using hashes here.

File details

Details for the file garmin_workouts_mcp-0.1.2-py3-none-any.whl.

File metadata

File hashes

Hashes for garmin_workouts_mcp-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 2b3aee09374d3207ac79b14dd65d42c783c3ea02144d8c8ce045b48aa3c415ef
MD5 72e0957ff5227cd21b893e6affa146ac
BLAKE2b-256 7ee506bb26613b24bb7a69b539963375a46c4d43ee0e808db5a6a0341977fbe1

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page