Garmin Workouts MCP
The Garmin Workouts MCP server manages Garmin Connect workouts and activities, with enhanced support for strength training, payload inspection, and schema validation.
Workout Management
List, retrieve, delete, upload, and schedule workouts in Garmin Connect
Workout Authoring & Validation
Preview workout payloads before uploading (no credentials needed)
Validate workouts against the schema to catch mapping errors early
Retrieve the machine-readable JSON input schema for client integration
Generate workout data from a natural language description
Strength Training Support
List supported strength exercises with optional filtering
Resolve friendly aliases (e.g.
"t bar row") to Garmin internal enum mappingsHandles rep-based end conditions and flexible exercise definitions
Activity & Calendar Access
List, retrieve, and get weather data for Garmin Connect activities (with pagination, search, and type filtering)
View your Garmin Connect training calendar by year, month, or day
Flexible Authentication
Operates without Garmin credentials for non-Garmin tools (e.g., preview, schema inspection, exercise resolution)
Provides tools for managing Garmin Connect workouts, enabling users to create, preview, validate, list, and schedule strength and cardio workouts while resolving exercise metadata and supported sport types.
Garmin Workouts MCP
garmin-workouts-mcp is a standalone MCP server for Garmin Connect workouts.
It is intended as a focused extension for workflows that need a bit more structure around Garmin workout payloads, especially strength training.
This project is packaged as a stdio MCP server and can be published as an OCI image for MCP registries and Glama deployment. It is not a standalone public HTTP MCP endpoint.
Additions
Supports Garmin strength workout steps with
repsend conditions.Supports exercise metadata via explicit Garmin enums or friendly aliases.
Adds
preview_workout_payloadso payloads can be inspected before upload.Adds
validate_workoutfor early schema and mapping errors.Adds
resolve_supported_strength_exercisefor quick mapping checks.Adds
get_workout_input_schemafor machine-readable client integration.Includes
walkingas a supported sport type, which is also reflected in the prompt/schema.Keeps the familiar list/get/delete/schedule/calendar/activity tools.
Related MCP server: Garmin MCP Server
Environment
Garmin-backed tools authenticate lazily when they are called:
Authentication path:
GARMIN_EMAILandGARMIN_PASSWORD
The server can start without credentials. Tools that do not talk to Garmin, such as payload preview and schema inspection, still work without secrets.
Workout Input
The upload and preview tools accept a JSON object shaped like this:
{
"name": "Upper Day",
"type": "strength",
"steps": [
{
"stepType": "warmup",
"endConditionType": "lap.button",
"stepDescription": "General warm-up"
},
{
"stepType": "interval",
"exercise": "incline db press",
"endConditionType": "reps",
"stepReps": 8,
"stepDescription": "8-10 reps"
},
{
"stepType": "rest",
"endConditionType": "time",
"stepDuration": 120
}
]
}For strength exercises, either pass a friendly alias:
{ "exercise": "t bar row" }or explicit Garmin enums:
{
"exercise": {
"category": "ROW",
"exerciseName": "T_BAR_ROW"
}
}You can also inspect the accepted structure programmatically through get_workout_input_schema, or resolve likely Garmin strength mappings with resolve_supported_strength_exercise.
Development
Run tests in Docker Compose:
docker compose run --rm testsBuild the runtime image:
docker build -t garmin-workouts-mcp:local .Smoke test the stdio server startup without Garmin credentials:
python - <<'PY'
import subprocess
proc = subprocess.Popen(
["bash", "-lc", "tail -f /dev/null | docker run --rm -i garmin-workouts-mcp:local"]
)
try:
proc.wait(timeout=5)
print(f"container exited early with code {proc.returncode}")
finally:
if proc.poll() is None:
proc.terminate()
proc.wait()
print("container stayed up for 5 seconds")
PYPublishing
The intended OCI image location is:
ghcr.io/pranciskus/garmin-workouts-mcpRegistry metadata lives in server.json. The OCI image carries the required label:
io.modelcontextprotocol.server.name=io.github.pranciskus/garmin-workouts-mcpGlama ownership metadata lives in glama.json. It declares the GitHub maintainer account that can claim and manage the Glama listing.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- Alicense-qualityDmaintenanceAn MCP server featuring an interactive React UI for Garmin Connect integration. It allows users to access and interact with Garmin fitness and health data through the Model Context Protocol.Last updated9MIT
- Alicense-qualityBmaintenanceThis Model Context Protocol (MCP) server connects to Garmin Connect and exposes your fitness and health data to Claude and other MCP-compatible clients.Last updated1MIT
- Alicense-qualityCmaintenanceMCP server to interact with Garmin Connect, enabling retrieval of health, activity, and device data through natural language.Last updated63MIT
- Alicense-qualityCmaintenancePersonal MCP server for interacting with your Garmin Connect data. Exposes 62 tools across 11 domains including activities, health, training, and workouts.Last updated1MIT
Related MCP Connectors
MCP server for Withings health data — sleep, activity, heart, and body metrics.
List, fetch, create, edit (replace), delete and schedule structured workouts on Garmin Connect (runn
Wger MCP — wraps wger Workout Manager REST API (free, no auth for read)
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/pranciskus/garmin-workouts-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server