Skip to main content
Glama
happyc0der

garmin-connect-api

Create workout from DTO

create_workout_from_dto

Create a Garmin Connect workout from a complete DTO when the standard builder cannot represent its structure. Send custom workout shapes as-is; exercise names are not validated.

Instructions

Create a workout from a full Garmin DTO, for shapes the builder omits.

Sent to Garmin as given: exercise names are not checked against the catalogue here, so prefer create_strength_workout where it can express it.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
workoutYesA complete Garmin workout DTO.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
rawNo
nameNo
sportNo
updatedNo
workout_idYes
descriptionNo
schedule_idNoSet when the workout was just scheduled: what unschedule_workout takes.
scheduled_onNoSet when the workout was just scheduled: its calendar day.
estimated_duration_sNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.3.0

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare readOnly=false, openWorld=true, idempotent=false and destructive=false, so the write/network profile is covered. The description adds genuinely non-redundant behavior: the payload is 'Sent to Garmin as given' and exercise names are not validated against the catalogue, which tells the agent malformed input will not be caught locally.

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?

Two short sentences, no filler. The disambiguating constraint and the preferred-alternative routing are both front-loaded before any elaboration.

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

Completeness4/5

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

An output schema exists, so return values need no explanation, and annotations carry the safety profile. The description supplies the two things an agent actually needs here — that the DTO is unvalidated and that a builder is usually preferable — though it says nothing about auth prerequisites or failure behavior for malformed DTOs.

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?

Only one parameter, and the schema already documents it at 100% coverage with additionalProperties=true, so the baseline is 3. The description goes beyond that by explaining what happens to the DTO once supplied (pass-through, no catalogue validation), which changes how carefully an agent must construct it.

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 workout') and immediately scopes it as a raw-DTO path 'for shapes the builder omits'. The second sentence names the sibling create_strength_workout as the preferred route, so an agent can separate this from the builder tools without reading either schema.

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

Usage Guidelines4/5

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

Explicitly says to prefer create_strength_workout 'where it can express it', which is a real routing rule rather than an implied one. It does not mention create_endurance_workout or any other builder sibling, so coverage of alternatives is partial rather than complete.

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