Skip to main content
Glama
durely insights
by durely

Export activity FIT file

garmin_download_activity_fit
Idempotent

Download an activity's original FIT file to the exports folder and get its file path, ready to import into Intervals.icu, Golden Cheetah, or a converter.

Instructions

Save the original FIT file of an activity to the server's exports folder and return its path, e.g. to import it into another tool (Intervals.icu, Golden Cheetah, a spreadsheet converter).

The file is exactly what the device recorded. Saved as /exports/<activity_id>.fit; an existing export is kept, not overwritten. For a multisport leg, exports the whole multisport file.

Input Schema

NameRequiredDescriptionDefault
activity_idYesGarmin activity ID from garmin_list_activities

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.5.0

TDQS

A4.5/5.0
Behavior5/5

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

Annotations signal a non-read-only but idempotent, non-destructive write, and the description corroborates and enriches this: it discloses the exact output path (<data dir>/exports/<activity_id>.fit), that an existing export is preserved rather than overwritten, and that a multisport leg yields the whole multisport file. These are exactly the side effects and edge cases an agent needs and that annotations alone cannot convey.

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?

Three tight sentences, front-loaded with the action and return value, followed by the file-format guarantee and the overwrite/multisport edge cases. No sentence is redundant or restates the title.

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?

With no output schema, the description still specifies what is returned (a path) and the exact filename convention, plus overwrite behavior and multisport handling. For a one-parameter export tool this covers everything needed to invoke it correctly and interpret the result.

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

Parameters3/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) and even points to garmin_list_activities as its source, so the description need not explain it further. The description adds no additional semantics about activity_id, which is fine given the schema but keeps this at the baseline.

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 ('Save the original FIT file of an activity') plus the destination and return value, which cleanly separates it from parsed-data siblings like garmin_get_activity or garmin_get_activity_streams. An agent can tell immediately that this yields a raw file, not a JSON activity object.

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?

The description names concrete downstream consumers (Intervals.icu, Golden Cheetah, spreadsheet converters), giving a clear context for when to pick this over the parsed-activity siblings. It does not explicitly say when NOT to use it — e.g., steer toward garmin_get_activity_streams for programmatic analysis — so the routing is implied rather than complete.

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