Skip to main content
Glama
happyc0der

garmin-connect-api

Get steps

get_steps
Read-onlyIdempotent

Fetch one day's total steps and 24 hourly totals by GMT hour for a specified date, showing activity timing without local-time conversion.

Instructions

Return one day's steps: the total, and 24 hourly totals by GMT hour, not local time.

For the total beside the day's other numbers use get_day_summary; for daily totals over a range with an average and the change, get_trend with metric steps. total is null, not 0, when Garmin did not answer. include_buckets adds Garmin's quarter-hour buckets.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
dayYesThe calendar date, YYYY-MM-DD.
include_bucketsNoAdd Garmin's quarter-hour buckets.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
dayYes
totalNoNone when Garmin did not answer.
bucketsNoGarmin's quarter-hour buckets, only when asked for.
hourly_gmtNo24 values, hour 0 to 23 GMT.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.3.0

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent and openWorld, but the description adds real behavioral detail: hourly totals are GMT not local time, total is null rather than 0 when Garmin did not answer, and include_buckets surfaces quarter-hour granularity. It stops short of mentioning auth needs, rate limits or error cases beyond the null semantics.

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 return shape, then routing alternatives, then edge-case semantics. Every sentence carries distinct information with no filler.

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?

Output schema exists so return values need not be re-explained, annotations cover the safety profile, and the description still supplies the timezone, null-vs-zero and bucket caveats an agent would otherwise miss. Nothing material is absent for a two-parameter read tool.

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%, so both parameters are already documented in the schema; the description only restates include_buckets' effect and implies the day scope. The GMT-vs-local note describes the output rather than adding parameter meaning, so baseline 3 applies.

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 ('Return one day's steps') plus the exact return shape (total and 24 hourly totals). It explicitly disambiguates from siblings by naming get_day_summary and get_trend, so an agent can choose correctly without opening any 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?

Names two alternatives and the precise condition that selects each: get_day_summary for the total beside the day's other numbers, get_trend with metric steps for range/average/change. This is explicit when-to-use routing rather than implied guidance.

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