Skip to main content
Glama
happyc0der

garmin-connect-api

Get stress

get_stress
Read-onlyIdempotent

Fetch one day's Garmin stress metrics: average, peak, rest minutes, low/medium/high band minutes, and unmeasured time. Optionally include 3-minute samples.

Instructions

Return one day's stress: the average and peak, and the minutes at rest, in Garmin's low, medium and high bands, and unmeasured.

The day's average alone is also in get_day_summary; for the daily average over weeks or months use get_trend with metric stress. With no stress data for the day the reply is null, or its fields are. include_samples adds the three-minute readings, which run to hundreds; leave it off unless the shape of the day matters.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
dayYesThe calendar date, YYYY-MM-DD.
include_samplesNoAdd the three-minute readings.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
resultYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.3.0

TDQS

A4.6/5.0
Behavior4/5

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

Annotations already cover the safety profile (readOnly, idempotent, openWorld), so the bar is lower; the description adds real behavioral context by disclosing that the reply is null (or its fields are) when a day has no stress data, and that include_samples inflates the response to hundreds of three-minute readings. It stops short of covering auth/quota details, but the return-size and empty-data behavior are the material risks here.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the return shape, then routing, then edge cases; every sentence carries information. It is slightly more prose-heavy than needed and could compress the sibling-comparison sentence, but there is 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?

An output schema exists, so return values need not be explained, yet the description still outlines them and covers the two risky edge cases: null replies for days with no data and response bloat from include_samples. For a 2-parameter read tool with full annotation coverage, nothing required for correct invocation 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 baseline is 3; the description nonetheless adds meaning beyond the schema's terse 'Add the three-minute readings' by quantifying the volume ('run to hundreds') and prescribing default-off behavior. The 'day' parameter (YYYY-MM-DD) is already fully specified in the 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?

Names a specific verb and resource ('Return one day's stress') and enumerates the returned fields: average, peak, minutes at rest, low/medium/high bands, unmeasured. It also explicitly distinguishes itself from get_day_summary and get_trend, so an agent can route 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?

States when to use alternatives explicitly: the daily average alone lives in get_day_summary, and multi-week/month aggregates in get_trend with metric stress. It also gives a conditional rule for include_samples ('leave it off unless the shape of the day matters'). Nothing is left to inference.

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