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
- Install and run using uvx:
uvx garmin-workouts-mcp
- 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)
Credits
This project incorporates ideas and prompt designs inspired by 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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file garmin_workouts_mcp-0.2.1.tar.gz.
File metadata
- Download URL: garmin_workouts_mcp-0.2.1.tar.gz
- Upload date:
- Size: 10.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d3141622ca9931ba6febecd5788650c22cc1073735dbf64b198379d6aea34a18
|
|
| MD5 |
30bf7913f6fa9d9e2d5116d9f8d3b999
|
|
| BLAKE2b-256 |
dc19ddb9fa263a44e574785aec6a034c424f2b3b50f0a68f2c61b2134aa897c7
|
File details
Details for the file garmin_workouts_mcp-0.2.1-py3-none-any.whl.
File metadata
- Download URL: garmin_workouts_mcp-0.2.1-py3-none-any.whl
- Upload date:
- Size: 10.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
beb2b6854a4edd567926aeb30986b6a9584020f65092dea9865e129c7118aab9
|
|
| MD5 |
f09905e0432c11ea2111b3919d24e63a
|
|
| BLAKE2b-256 |
c604f5ffcb6a20e899df36ca1f6a50f7b356bf982a629320b81b8bd050d3f43d
|