Skip to main content
Glama
JJRPF

Garmin MCP Server

by JJRPF

download_activity_file

Download a Garmin activity to disk as a file. Provide an activity ID and choose fit, gpx, tcx, or csv format to save it locally.

Instructions

Download an activity and save it to disk as a file.

Saves the activity in the requested format. Defaults to the original .fit file; Garmin also supports gpx, tcx, and csv.

Directory resolution (first match wins):

  1. output_dir argument (one-off; not persisted)

  2. GARMIN_FIT_DOWNLOAD_DIR environment variable

  3. persisted config (set via set_fit_download_dir) If none is configured, returns status "needs_setup" with a suggested default (the server's current working directory). In that case, ask the user where to save, call set_fit_download_dir(path), then call this tool again.

Files are named "{activity_id}.{ext}" and overwrite any existing file.

Args: activity_id: Garmin activity ID format: One of fit, gpx, tcx, csv (default fit) output_dir: Optional one-off directory override (not persisted)

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
formatNofit
output_dirNo
activity_idYes

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
resultYes

Schema Changelog

Changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. First observedv0.1.0

TDQS

A5/5.0
Behavior5/5

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

With no annotations present, the description carries the full behavioral burden and does so thoroughly: it discloses that files overwrite existing ones, how output directories are resolved, that an environment variable and persisted config are honored, and the exact setup fallback behavior. It also names the file format as '{activity_id}.{ext}', leaving no ambiguity about side effects.

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?

The description is front-loaded with the core purpose, then uses a numbered list for directory resolution and clear short paragraphs for format, setup, and naming. Every sentence contributes necessary operational detail; nothing is wasted or redundant.

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?

Given the tool's complexity, the description is complete: it covers format selection, directory precedence, setup failure mode, the follow-up action needed, file naming, and overwrite behavior. Because an output schema exists, the description does not need to explain the return payload, but it even mentions the 'needs_setup' status.

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 description coverage is 0%, so the description must compensate, and it does. It defines activity_id as a Garmin activity ID, format as one of fit/gpx/tcx/csv with default fit, and output_dir as an optional one-off directory override that is not persisted. This adds meaningful semantics beyond the bare schema.

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 a specific verb and resource: 'Download an activity and save it to disk as a file.' It clearly differentiates itself from sibling tools like download_workout by targeting activity files in formats fit, gpx, tcx, and csv.

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?

The description provides a complete setup flow: it explains directory resolution order, when 'needs_setup' is returned, what the agent should ask the user, and that set_fit_download_dir should be called before retrying. It also clarifies format options and defaults, giving the agent clear context for when and how to invoke this tool.

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

Install Server

Other Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/JJRPF/garmin_mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server