Skip to main content
Glama

create_workout

Create a new structured workout in the user's Garmin workout library. It never edits an existing one. A workout reaches the watch once it is scheduled on a date.

Args: name: Shown in Garmin Connect and on the watch. steps: Ordered steps, each with "type" (warmup, interval, recovery, rest, cooldown or repeat) and exactly one of "duration_seconds", "distance_meters" or "until_lap": true (the step ends on the lap button). A repeat is {"type": "repeat", "times": 5, "steps": [...]} and can't contain another repeat. Optional target on a step: "pace" (min/km, "4:05" or ["4:00", "4:10"]), "hr" (bpm [150, 165], or a Garmin zone such as "z2" or "z3-z4") or "power" (watts, 250 or [240, 260]; a share of the FTP set in Garmin, "95%" or ["88%", "94%"]; or a power zone, "z3"). A pace target narrower than 5 s/km either side is widened to that, and a single power value becomes a range 5% either side. Example, 15 min warm-up, 5 x 1 km at 4:05 with 90 s recoveries, 10 min cool-down: [{"type": "warmup", "duration_seconds": 900}, {"type": "repeat", "times": 5, "steps": [{"type": "interval", "distance_meters": 1000, "pace": "4:05"}, {"type": "recovery", "duration_seconds": 90}]}, {"type": "cooldown", "duration_seconds": 600}] sport: running (default), cycling, swimming, walking or hiking. description: Optional note stored with the workout. pool_length_meters: For a swim, 25 (default) or 50.

A swim's steps are whole pool lengths (100, 200...), each with an optional "stroke": freestyle, backstroke, breaststroke, butterfly, im, drill or any. Its "pace" is per 100 m ("1:45") and shows on the step as a note rather than an alert. A "rest" with no duration waits for the lap button; "duration_seconds" fixes its length. A "note" (e.g. "kick with board") shows on the step.

Input Schema

NameRequiredDescriptionDefault
nameYes
sportNorunning
stepsYes
descriptionNo
pool_length_metersNo

Output Schema

NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes well beyond the annotations with concrete behavioral rules: pace targets narrower than 5 s/km get widened, a single power value becomes a ±5% range, a repeat cannot nest another repeat, swim steps are whole pool lengths, a swim pace target renders as a note rather than an alert, and a durationless rest waits for the lap button. These are data-normalization side effects that the agent cannot get from readOnlyHint/destructiveHint.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Purpose is front-loaded and every paragraph covers a distinct parameter concern; the long step section is justified by a 0%-documented nested schema. Minor tension remains: 'exactly one of duration_seconds, distance_meters or until_lap' versus the later allowance that a rest with no duration simply waits for the lap button.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

A complex 5-parameter creation tool with an untyped nested payload, fully specified down to interval normalization rules and swim-specific behavior. An output schema exists, so return values need not be described, and the annotations already cover the safety profile.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0% and steps is an opaque untyped object array, so the description carries the full load — and does: it defines the step 'type' vocabulary, the exactly-one-of duration/distance/until_lap rule, the repeat shape, the three target families with formats and ranges, sport defaults, and pool_length_meters values. A complete worked example of a 5x1km session removes ambiguity.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Create a new structured workout in the user's Garmin workout library') and immediately scopes it against the update sibling with 'It never edits an existing one.' The sport list (running, cycling, swimming, walking, hiking) further separates it from create_strength_workout, which covers strength training.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

'A workout reaches the watch once it is scheduled on a date' hints at the schedule_workout follow-up, but no sibling is named and no explicit when-not guidance is given. The read-only/creation boundary is inferable, but an agent must open list_workouts, create_strength_workout, and schedule_workout to work out the routing itself.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources