Skip to main content
Glama
happyc0der

garmin-connect-api

Get activity

get_activity
Read-onlyIdempotent

Fetch a single Garmin Connect activity by ID to view its type, start time, duration, distance, heart rate, calories, and raw record data.

Instructions

Return one activity by id: type, start time (UTC and local wall clock), duration, distance, heart rate and calories, plus Garmin's full record under raw.

Ids come from list_activities, recent_strength_sessions or week_summary. It has no per-set or per-lap detail: for a strength session's exercises, reps and weights use get_activity_sets; for a run, ride or swim's laps and pacing, get_activity_laps.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
activity_idYesGarmin's activity id, from list_activities.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
rawNo
nameNo
stepsNo
max_hrNo
caloriesNo
has_setsNoWhether this is a strength activity, the kind that carries per-set detail.
average_hrNo
distance_mNo
duration_sNo
start_timeNoStart instant, UTC.
activity_idYes
activity_typeNo
start_time_localNoWall-clock start where the activity happened, as YYYY-MM-DDTHH:MM:SS. Deliberately has no timezone: Garmin gives the time, not the zone.
moving_duration_sNo
elapsed_duration_sNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.3.0

TDQS

A4.7/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint and openWorldHint, so safety is covered; the description adds value by disclosing the return shape (type, UTC and local wall clock start time, duration, distance HR, calories, raw record) and by stating a deliberate scope limitation. It does not mention auth requirements or rate limits, but it adds real behavioral context beyond the annotations.

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?

Front-loaded with the primary action and return contents, then the id provenance, then the scope exclusion. Two tight sentences with no filler; every clause carries routing or content information.

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?

An output schema exists, so return values need not be spelled out, yet the description still summarizes the key fields and clearly marks the boundary against the per-set and per-lap tools. For a single-required-param read tool in a large sibling set, nothing an agent needs to call it correctly is missing.

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?

Schema coverage is 100% so the schema already documents activity_id; the description adds meaning by listing the three tools that produce valid ids (list_activities, recent_strength_sessions, week_summary), which is more than the schema's single mention of list_activities. Above the baseline 3 because the provenance guidance is genuinely additive.

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 (return one) and resource (activity by id) and enumerates the fields returned, then explicitly distinguishes itself from get_activity_sets and get_activity_laps by naming the scope it omits (per-set, per-lap). An agent can select this over its close siblings without opening 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 Guidelines5/5

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

Gives explicit routing: the id comes from list_activities, recent_strength_sessions or week_summary, and it names concrete alternatives with the condition that selects them (get_activity_sets for strength exercises/reps/weights, get_activity_laps for run/ride/swim laps and pacing). Both when-to-use and when-to-use-something-else are covered.

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