Skip to main content
Glama

List activities

garmin_list_activities
Read-onlyIdempotent

List recorded workouts in a date range with key metrics like type, duration, distance, pace, heart rate, and calories, then use the returned activity ID to fetch full session details.

Instructions

List recorded workouts in a date range, newest first, with activity ID, type, name, start time, duration, distance, pace, average and max heart rate, calories, elevation and training effect. Use this to find an activity, then pass its activityId to garmin_get_activity for the full detail of a single session.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
detailNo'summary' (default) drops per-minute sample series and truncates long lists, which is what you want for almost every question. 'full' returns Garmin's raw payload including every sample -- accurate but potentially enormous, so use it only when the individual data points matter.summary
end_dateNoDate as YYYY-MM-DD, or relative: 'today', 'yesterday', '-7d', '-2w', '-3m'.today
start_dateNoDate as YYYY-MM-DD, or relative: 'today', 'yesterday', '-7d', '-2w', '-3m'.-7d
Behavior4/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds useful behavioral context beyond annotations: the list is ordered newest first, includes specific fields, and supports a date range. It also communicates a typical workflow (list then get detail), which is extra transparency not present in the structured data.

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 sentences: the first states exactly what the tool returns and the ordering; the second gives the usage workflow. No fluff, redundant text, or filler. Front-loads the key purpose and ends with actionable guidance.

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?

For a read-only list tool with three optional parameters, the description fully covers what the tool does, what fields it returns, and how it fits into the broader workflow (use to find an activity, then pass activityId to garmin_get_activity). No output schema exists, but the description enumerates the returned attributes, so the agent knows what to expect. Sibling tools are not needed for this simple use case.

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?

Schema description coverage is 100%, with each parameter (detail, end_date, start_date) already explained in the input schema. The description does not add new parameter-level semantics beyond what the schema provides, so the baseline of 3 is appropriate.

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 states a specific verb ('List') and a clear resource ('recorded workouts'), and specifies the returned fields (activity ID, type, name, etc.) and ordering ('newest first'). It also distinguishes itself from garmin_get_activity by framing the list as a precursor to fetching single-activity detail.

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?

Explicitly tells the agent when to use this tool: 'Use this to find an activity, then pass its activityId to garmin_get_activity for the full detail of a single session.' This names the alternative tool and gives the context (finding an activity before retrieving its full detail).

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/nbaradar/garmin-mcp'

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