Skip to main content
Glama

apply_workout

Upload an approved workout to Garmin, schedule it, push it to the watch, and verify targets. Returns current Garmin data with warnings for offline watch or mismatches.

Instructions

WRITE a proposed session to the athlete's Garmin account: upload the workout, schedule it on the proposal's day, push it to the watch, then read it back and verify structure and targets. Call ONLY after the athlete has seen the preview and explicitly agreed - a request ("plan me 10 km") is not agreement, "yes, put it on the watch" is. Not available to the app's own card runs; there the athlete clicks. Returns what is now on Garmin, with any warning (not pushed because the watch is offline; a mismatch found on read-back). A proposal can be applied once; an unknown or used id says so and lists the open ones.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
proposal_idYesThe id propose_workout returned.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
resultYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Added

TDQS

A4.9/5.0
Behavior5/5

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

With no annotations, the description carries full burden and delivers: it discloses that this is a write operation with side effects, that it pushes to the watch and then verifies, possible warnings (offline watch, mismatch), single-use semantics, and the response content. No contradictions or unsupported claims.

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

Conciseness5/5

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

Every sentence earns its place: purpose, consent gate, card-run exception, return value, and id behavior. The purpose is front-loaded with 'WRITE', and the structure is dense without being bloated.

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?

The description covers when to call, what it does, what can go wrong, error outputs, and return value, and an output schema covers the structured result. Nothing required for correct invocation is missing, even without annotations.

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

Parameters4/5

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

The sole parameter proposal_id is already well documented in the schema (pattern + 'returned by propose_workout'), so the baseline is 3. The description adds valuable lifecycle semantics: the proposal can be applied once, and unknown/used ids produce an explanatory response listing open proposals.

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?

The description opens with 'WRITE a proposed session to the athlete's Garmin account' and specifies the full sequence: upload, schedule, push, read back, verify. This clearly distinguishes it as the mutation counterpart to read-only siblings like get_* and propose_workout, while naming the artifact it operates on.

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

Usage Guidelines5/5

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

It states an explicit gate: call only after the athlete has seen the preview and explicitly agreed, and gives concrete examples of what counts and what does not. It also declares a when-not case ('Not available to the app's own card runs; there the athlete clicks').

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