Skip to main content
Glama

Search activities

garmin_search_activities
Read-only

Search and filter Garmin Connect activities by date, type, name, distance, duration, elevation, power, or location to find specific runs, rides, swims, dives, and workouts.

Instructions

Recorded activities (runs, rides, swims, strength, dives, ...), newest first, with name, type, start time, distance, duration, pace/speed, HR, power, cadence, calories, elevation, and training effect. Pass an activityId to garmin_get_activity for splits and full detail.

All filters are optional and combine: start, end: YYYY-MM-DD, by the activity's local start date. search: text in the activity name or description. activity_type: parent type key, e.g. running, cycling, swimming, strength_training, hiking, walking. activity_subtype: a child key such as trail_running or indoor_cycling. excluded_activity_subtypes: child keys to leave out. event_type: race, training, recreation, fitness, specialEvent, or uncategorized. favorite: true for favorites only, false for non-favorites. exclude_children: hide individual legs of multisport activities. sort_by: a field such as distance, duration, or name (default: start time). sort_order: asc or desc (default desc). min_/max_distance (meters), min_/max_duration (timer seconds), min_/max_elapsed_duration (seconds including pauses), min_/max_elevation (gain, meters), min_avg_power (watts). north, south, east, west: a bounding box in decimal degrees around the start location; give all four or none. Dives: min_/max_max_depth (centimeters), deco_dive, min_/max_bottom_time (seconds). required_fields: activity fields that must be present, e.g. avgPower. limit, offset: page through results (each activity is about 3-4 KB).

Input Schema

NameRequiredDescriptionDefault
endNo
eastNo
westNo
limitNo
northNo
southNo
startNo
offsetNo
searchNo
sort_byNo
favoriteNo
deco_diveNo
event_typeNo
sort_orderNo
max_distanceNo
max_durationNo
min_distanceNo
min_durationNo
activity_typeNo
max_elevationNo
max_max_depthNo
min_avg_powerNo
min_elevationNo
min_max_depthNo
max_bottom_timeNo
min_bottom_timeNo
required_fieldsNo
activity_subtypeNo
exclude_childrenNo
max_elapsed_durationNo
min_elapsed_durationNo
excluded_activity_subtypesNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.1

TDQS

A4.8/5.0
Behavior4/5

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

Annotations already declare readOnlyHint and openWorldHint, so the safety profile is covered; the description adds real context on top: newest-first ordering, per-activity payload size (~3-4 KB) for pagination planning, units for every numeric filter, and the multisport exclude_children behavior. It stops short of covering any rate limits or auth requirements, so a 4 rather than a 5.

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?

Roughly a dozen terse lines that map one-to-one onto 32 parameters, front-loaded with the identity of the resource and the handoff to garmin_get_activity. Dense but zero filler; nothing repeats the schema's titles without adding 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?

With 32 optional parameters, no output schema, and 0% schema description coverage, the description nevertheless states the return fields, result ordering, and paging mechanism. An agent could invoke this correctly on the first try without further documentation.

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 carries the full burden and does: it explains units (meters, timer seconds vs elapsed seconds, centimeters), the parent/child key distinction for activity_type vs activity_subtype, valid event_type values, and defaults for sort_order, favorite, and exclude_children. This is meaningfully more than the schema's bare titles.

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?

Opens with a specific verb+resource and enumerates what each result carries (name, type, distance, pace, HR, power, training effect). It also routes detail-seeking callers to garmin_get_activity, so it is distinguishable from the closest sibling 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?

States that all filters are optional and combine, gives the explicit alternative ('Pass an activityId to garmin_get_activity for splits and full detail'), and specifies defaults (sort by start time, desc) and the all-four-or-none bounding-box rule. There is no inference required to pick this tool over a sibling.

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