Skip to main content
Glama
hhopke
by hhopke

icu_get_sport_settings

Read-onlyIdempotent

Retrieve an athlete's configured power, HR, and pace zones from Intervals.icu, including FTP, FTHR, max HR, and thresholds, to align zone-based metrics with the athlete's charts.

Instructions

Get per-sport thresholds and the athlete's configured power/HR/pace zones.

Returns outdoor/indoor FTP, FTHR, max HR, running pace and swim threshold, plus the zone sets configured in Intervals.icu (HR zones in bpm, power zones as %FTP, pace zones as % of threshold pace) with their names.

This is the ONLY source of the athlete's real zones. Intervals.icu derives them from the threshold (unless set explicitly) and stamps them into every activity at import, so time-in-zone, HRSS and TSS are all computed from these — reasoning about zones from any other number puts the answer at odds with the athlete's own charts. Zones are not derived from curve data.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
athlete_idNoAthlete ID (for coaches managing multiple athletes)

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
resultYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changedv5.0.1
    • addedInput schema / properties / athlete_id
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "Athlete ID (for coaches managing multiple athletes)"
      +}
  2. First observedv0.1.0

TDQS

A4.4/5.0
Behavior5/5

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

Annotations already cover the safety profile (readOnly, idempotent, non-destructive), so the description's job is to add behavioral context, and it does substantially. It reveals that zones are derived from the threshold unless explicitly set, stamped into every activity at import, and that time-in-zone, HRSS, and TSS are all computed from these values. It also explicitly states 'Zones are not derived from curve data,' a behavioral caveat not inferable from schema or annotations.

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?

The description is front-loaded with the main purpose, followed by the return-value list, then the caveat paragraph. The final paragraph is slightly verbose and repeats the 'ONLY source' framing, but each sentence carries substantive domain information rather than filler. It could be tightened by a sentence, yet remains readable and well-structured.

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?

With an output schema present and the optional parameter fully described, the description only needs to supply intent and caveats, which it does thoroughly. It covers units (bpm, %FTP, % threshold pace), the derivation behavior, and the explicit warning about curve data, giving an agent everything needed to invoke the tool correctly. No critical gaps remain.

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?

The single parameter (athlete_id) is fully documented in the schema with a description and default, so schema coverage is 100% and the description does not need to repeat parameter details. The description adds no parameter-specific meaning, but none is missing given the simple optional parameter. Baseline 3 is appropriate because the schema carries the full parameter burden.

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?

The description opens with a specific verb and resource ('Get per-sport thresholds and the athlete's configured power/HR/pace zones'), clearly distinguishing it from write-oriented siblings like icu_update_sport_settings and icu_create_sport_settings. It enumerates exactly what is returned (FTP, FTHR, max HR, pace, swim threshold, zone sets), leaving no ambiguity about the tool's purpose.

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?

The description does not name explicit alternative tools, but it gives actionable guidance: it declares itself 'the ONLY source of the athlete's real zones' and warns that reasoning from any other number produces answers at odds with the athlete's own charts. This tells an agent when to use this tool (whenever zones/time-in-zone/HRSS/TSS are needed) and implicitly steers away from curve-derived values. It stops short of explicitly listing siblings like icu_get_power_curves or icu_get_hr_curves as alternatives.

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

Deploy Server

Other Tools