Skip to main content
Glama

Activity workouts

get_activity_workouts
Read-onlyIdempotent

Retrieve the planned workout linked to a recorded Garmin activity, including sport, steps, targets, or suggested-workout phrase. Returns empty when no workout is linked.

Instructions

The planned workout linked to one recorded activity, if any: workoutName, sport and steps, each with intensity, durationType/durationValue (metres for DISTANCE) and a target (e.g. targetType SPEED with targetValueLow/High in m/s). An activity started from one of Garmin's daily suggested workouts may carry only a workoutPhrase (e.g. EASY_WEEK_LOAD_BASE); an empty result means no workout was linked. This is the plan; for how each rep actually went use get_activity_analysis (laps). Get the ID from search_activities.

Input Schema

NameRequiredDescriptionDefault
activity_idYesGarmin activity ID, from search_activities.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv1.1.0

TDQS

A4.6/5.0
Behavior4/5

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

Annotations already declare readOnly/idempotent/non-destructive, so the safety profile is covered; the description adds genuine behavioral context beyond that: the empty-result meaning and the degenerate case where only a workoutPhrase exists (e.g. EASY_WEEK_LOAD_BASE). It does not mention auth or rate limits, but for a read-only lookup those are low-value omissions.

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?

Front-loaded with the purpose, then interpretation details, then the sibling routing — a sensible order. The middle clause is dense with units and field names (metres for DISTANCE, m/s targets), but those details genuinely help interpret the payload and there is no filler.

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?

No output schema exists, so the description must carry the return-value burden, and it does: it names the fields, their units, and the edge cases. Combined with the annotations, an agent has everything needed to decide to call it and to read the result.

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 single parameter is fully documented in the schema (100% coverage, pattern and provenance), so the burden is minimal. The description restates the provenance ('Get the ID from search_activities'), which duplicates rather than extends the schema, but with only one param the semantic gap is negligible.

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 resource and scope: 'the planned workout linked to one recorded activity, if any', and enumerates what comes back (workoutName, sport, steps, targets). It also explicitly marks the boundary against get_activity_analysis, so an agent can distinguish it from siblings without opening any schema.

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?

Gives an explicit routing rule ('This is the plan; for how each rep actually went use get_activity_analysis (laps)') and a prerequisite ('Get the ID from search_activities'). It also defines the null case ('an empty result means no workout was linked'), removing ambiguity about what a blank response means.

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