Skip to main content
Glama

get_heart_rate

Read-only

Retrieves all-day heart rate readings for a chosen date and time window, returning gaps, low/average/high blocks, and the lowest and highest readings.

Instructions

Heart rate through a day or night, from the watch's all-day readings.

For "was there a gap overnight", "when did my heart rate settle", "how low did it go". Answers with gaps (no reading for 10+ min), blocks with low, average and high, and the lowest and highest readings. A run's heart rate is get_activity_details.

Args: date: The day the window starts. Defaults to today; last night is yesterday with an evening start. start: Local start time, HH:MM. Defaults to midnight. end: Local end time, HH:MM. Before start runs into the next day.

Input Schema

NameRequiredDescriptionDefault
endNo
dateNo
startNo

Output Schema

NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv0.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/openWorldHint/destructiveHint, so safety is covered. The description adds genuinely non-obvious behavior: gaps are defined as 10+ minutes without a reading, and output is blocks with low/average/high plus extremes. It doesn't mention data-availability or wear-time prerequisites (e.g. what if the watch wasn't worn), which is the remaining gap.

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 one-line purpose, then answering questions, then output shape, then sibling routing, then a clearly delimited Args block. Every sentence carries information an agent would otherwise have to guess; nothing is padding.

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?

Three optional params, no required fields, and an output schema exists — yet the description still covers purpose, routing, time-window edge cases, and gap semantics. An agent could call this correctly from the description alone.

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 coverage is 0%, so the description carries the full burden and does so: 'date' is the day the window starts with a today default and a noted last-night idiom, 'start'/'end' are local HH:MM defaulting to midnight, and 'end' before 'start' rolls into the next day. This is exactly the semantics missing from a bare anyOf/string 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?

States a specific verb+resource+scope: heart rate over a day or night window sourced from the watch's all-day readings. Crucially it distinguishes itself from a near-neighbor by noting 'A run's heart rate is get_activity_details', so the agent can separate all-day HR from workout HR without reading 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?

Gives concrete user questions it answers ('was there a gap overnight', 'when did my heart rate settle', 'how low did it go') and names the alternative tool for run-level HR. The date/start semantics for 'last night' are also tied to a usage scenario, not just a schema default.

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