Skip to main content
Glama
Garmin MCP for macOS

Garmin MCP for macOS

by devnjw

garmin_api_spo2

Read-only

Retrieve daily SpO2 and acclimation data from Garmin Connect for a selected date or default 7-day range, supporting up to 31 days.

Instructions

Daily oxygen saturation and acclimation data. Raw JSON fields are not normalized. Date ranges default to 7 days and allow at most 31 days (activity search uses pagination).

Tool call template

This tool declares no required parameters. Add optional parameters from the input schema as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {},
    "name": "garmin_api_spo2"
  }
}

Input Schema

NameRequiredDescriptionDefault
calendar_dateNo

Output Schema

NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.2.0

TDQS

B3.3/5.0
Behavior4/5

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

Annotations already declare readOnly/openWorld/non-destructive, and the description adds genuinely useful context: raw JSON fields are not normalized (so the agent must parse unprocessed values) and there is a hard 31-day range ceiling. It does not explain what the response looks like or what happens with an out-of-range request, keeping it below 5.

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

Conciseness3/5

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

Front-loaded and short, with no filler sentences, but the parenthetical about activity search pagination is a distracting non-sequitur that dilutes an otherwise tight definition. Two of the three sentences earn their place.

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

Completeness3/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 needn't be described, and the annotations cover the safety profile. However, with zero parameter documentation and no guidance on how the date-range limits interact with calendar_date, the definition leaves a material gap for actually invoking the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% and there is one parameter, calendar_date, whose format (ISO date? relative?) is never explained in the description. The date-range sentences discuss limits generally but never tie them to the single parameter, so the agent must guess the accepted value shape.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Names a specific resource (daily oxygen saturation + acclimation data) that is clearly distinct from every sibling in the list. It lacks an explicit verb ('get'/'fetch'), but the returned resource is unambiguous, so an agent can tell what it retrieves without opening the schema.

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

Usage Guidelines3/5

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

Offers real constraints — default 7-day range, 31-day maximum — which guide how to call it, but gives no explicit when-to-use vs. when-to-prefer-an-alternative guidance. The trailing note that 'activity search uses pagination' is confusing in an SpO2 context and does not route the agent to any sibling.

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