Skip to main content
Glama
futureweb

Futureweb Intervals MCP

by futureweb

get_intensity_distribution

Read-only

Analyze training intensity distribution for a date range by mapping activity time in zones to a three-zone model, returning Z1-Z3 shares, hours, polarization index, class, hard sessions, and drift.

Instructions

Use for the training intensity distribution of a period (default the last 4 weeks, read-only): Intervals.icu's time in zones of each activity mapped to the three-zone model (Z1 below the first threshold, Z2 between, Z3 above the second).

Returns Z1/Z2/Z3 shares and hours, the polarization index (Treff et al. 2019), the class (Base, Polarized, Pyramidal, Threshold, HIT) and hard sessions and days for the period, per sport family and per ISO week, and the drift between the two halves. The mapping depends on the zone basis and the zone count of the athlete's model. Activities without zone data are never counted as easy; the coverage is reported. Statistics only, no verdict. Overview: get_coach_context. Method: intervals://methods/intensity (get_guide).

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
end_dateNoLast day YYYY-MM-DD; default today
athlete_idNoDefault: the configured athlete
start_dateNoFirst day YYYY-MM-DD; default 27 days before end_date (4 weeks); max 366 days
zone_basisNoauto = power for cycling, else HR, then pace, then power; or one basis for allauto
sport_typesNoComma-separated activity types, e.g. "Ride,GravelRide"
detail_levelNocompact = period, sports, drift; standard adds ISO weeks, zone mapping and rules; full adds every sessionstandard
threshold_asNoPower zone Z4 (91-105 % FTP) counts as moderate (three-zone Z2) or high (Z3)moderate
output_formatNojson = machine-readable, all fieldstext

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already establish read-only/no-open-world safety, and the description adds real behavioral context on top: missing zone data is never treated as easy, coverage is reported, and the tool is 'statistics only, no verdict'. It also flags that the mapping depends on the athlete's zone basis and zone count — useful caveats not present in structured fields.

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?

Purpose and default period are front-loaded in the first sentence, with returns and cross-references following in a structured block. Dense and mostly waste-free, though the returns enumeration borders on listing what an output schema would normally carry.

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 no output schema, the description carries the full return-shape burden itself (shares, hours, polarization index, class, per-sport and per-ISO-week breakdown, half-to-half drift), and it notes coverage reporting. An agent has enough to call and interpret the tool across all 8 optional parameters.

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 would be 3, but the description adds interpretive layer beyond the schema: the three-zone model (below first threshold / between / above second) and the threshold_as behavior ('Z4 counts as moderate (Z2) or high (Z3)'), which clarifies how the power-to-zone decision changes the result.

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 precise verb+resource: computes training intensity distribution of a period, mapping Intervals.icu time-in-zones to a three-zone model with explicit Z1/Z2/Z3 definitions. The output list (shares, hours, polarization index, class, drift) is specific enough to distinguish it from siblings like get_training_load or get_training_zones without opening any schema.

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?

'Use for the training intensity distribution of a period' gives a clear trigger, plus defaults (last 4 weeks, read-only). It routes to get_coach_context for the overview and get_guide/intervals://methods/intensity for method detail, but never states when to prefer it over adjacent siblings such as get_training_load or get_training_summary.

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