Skip to main content
Glama
Garmin Connect MCP

Garmin Connect MCP

by pedrokehl

Get Body Battery (date range)

garmin_get_body_battery
Read-onlyIdempotent

Retrieve daily Body Battery energy levels, charged and drained totals, and time-series values for a date range up to 31 days to analyze energy patterns and activity impact.

Instructions

Get Body Battery (energy level 0–100) per day: charged and drained totals, a time series bodyBatteryValuesArray, feedback events and the activities that impacted it. Maximum range: 31 days. Set chunks to get the lowest and highest values of each part of the day instead of reading the full series.

Input Schema

NameRequiredDescriptionDefault
chunksNoSplit each day into this many intervals and report the min/max Body Battery of each (e.g. 4 = every 6 hours).
endDateYesLast day of the range (inclusive). The range may span at most 31 days, counting both ends. Format YYYY-MM-DD, in the user's local calendar.
startDateYesFirst day of the range (inclusive). Format YYYY-MM-DD, in the user's local calendar.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4/5.0
Behavior3/5

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

Annotations already declare readOnly, idempotent, non-destructive, openWorld, so the safety profile is covered. The description adds genuine context beyond that: the 31-day cap and the payload shape. However it says nothing about authentication scope, whether missing days are returned, or response size for a 31-day full series, which is the main risk an agent faces here.

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?

Three front-loaded sentences with zero filler: what you get, the hard limit, then the parameter tip. The most decision-relevant facts (payload contents, 31-day cap) appear before the optional `chunks` guidance.

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?

For a read-only no-output-schema tool with fully documented parameters, the description covers payload contents and range limits adequately. It leaves unanswered how results are keyed per day, at what granularity the values array is sampled, and what happens for days with no data — minor but real gaps for a time-series endpoint.

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 the baseline is 3. The description adds only marginal semantic value: it restates the 31-day limit already in `endDate`'s schema and hints that `chunks` replaces full-series reads, but the schema already explains the chunk math (4 = every 6 hours) more precisely.

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 Body Battery') plus the payload contents: charged/drained totals, the `bodyBatteryValuesArray` time series, feedback events, and impacting activities. The 0–100 energy framing and named array make it unmistakable versus metric siblings like garmin_get_daily_summary or garmin_get_stress.

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?

Gives a clear operating constraint (maximum range 31 days) and a concrete alternative mode of use: set `chunks` to get per-interval min/max 'instead of reading the full series.' It does not say when to prefer this over a sibling like garmin_get_daily_summary or what to do when the range exceeds 31 days, so it stops short of full when/when-not guidance.

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