Skip to main content
Glama
durely
by durely

Sleep

garmin_get_sleep
Read-onlyIdempotent

Fetches nightly sleep data from a local cache, covering bed/wake times, sleep stages, naps, score, respiration, and stress, enabling review or analysis of recent sleep patterns.

Instructions

Get nightly sleep from the local cache: bed and wake time, total sleep, deep/light/REM/awake time, naps, sleep score with quality and Garmin's feedback, awake count, average respiration and sleep stress. JSON mode adds the sleep score's components (duration, stress, deep/light/REM %, restlessness, awake count) with Garmin's rating each.

A night belongs to the date you woke up. Defaults to the last 14 nights, at most 92 per call.

Input Schema

NameRequiredDescriptionDefault
end_dateNoDefaults to today
start_dateNoLocal calendar date, yyyy-MM-dd
response_formatNo'markdown' for readable text (default), 'json' for complete structured datamarkdown

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.5.0

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare readOnly/idempotent/non-destructive, so the bar is lower; the description adds that data comes from a local cache (implying possible staleness absent a sync), the per-call cap of 92 nights, and that JSON mode expands the payload with score components. It does not say what happens when the cache is empty or not yet synced.

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 paragraphs, front-loaded with the verb and resource, then the return contents, then the date and volume rules. The long field list earns its place because there is no output schema to describe the payload.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description correctly compensates by enumerating return fields and JSON extras, and it covers date semantics and volume limits. The one gap is cache-related behavior — what is returned when a night has not been synced — which matters given 'local cache' and the existence of garmin_sync.

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 goes beyond it by explaining the date-semantics convention (a night belongs to the wake-up date) and the 92-nights-per-call limit that constrains start_date/end_date. It also clarifies that response_format switches payload richness, adding meaning beyond the enum labels.

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 ('Get nightly sleep from the local cache') and then enumerates exactly what data comes back (bed/wake time, sleep stages, score, respiration, stress). No sibling in the list covers sleep, and the field enumeration makes the scope unmistakable.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

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

'A night belongs to the date you woke up' plus the default window (last 14 nights) and the 92-night ceiling give the agent concrete calling context. It stops short of naming when to prefer a sibling (e.g., garmin_get_daily_health or garmin_get_hrv) for overlapping wellness questions.

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