Skip to main content
Glama

get_window_stats

Computes detailed stats for any time window of a Rouvy activity: split metrics, peak power efforts, first-half vs second-half comparison, and HR:power decoupling to reveal pacing and fitness changes.

Instructions

Stats for one stretch of an Activity (e.g. a climb from 20:00 to 35:00), from its per-second Activity file: the same stats as one split of get_activity_intervals, plus the best efforts (peak powers for the durations that fit), the first half vs the second half, and HR:power decoupling between them. %FTP uses the FTP from the Activity snapshot. A note says why any stat is left out.

Input Schema

NameRequiredDescriptionDefault
end_secYesWindow end, in seconds from the start (after start_sec).
start_secYesWindow start, in seconds from the start of the Activity.
activity_idYesAn Activity id as returned by list_activities.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.3.0

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations, the description carries the full burden and discloses substantive behavior: it computes from the per-second file, adds best efforts, first-half vs second-half comparisons, HR:power decoupling, uses FTP from the Activity snapshot, and includes notes for omitted stats. It does not mention read-only safety, required data availability, or performance characteristics, but the output behavior is well covered.

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?

The description is three tight sentences with no filler. It front-loads what the tool returns and then adds the substantive extras and caveats; every clause carries useful information.

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?

There is no output schema, so the description must explain return values, and it does so at a useful level: core stats, best efforts, half comparisons, decoupling, FTP source, and omission notes. It could go further on exact stat definitions, but referencing get_activity_intervals helps anchor the missing detail.

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 coverage is 100%, so the baseline is 3. The description's example 'climb from 20:00 to 35:00' reinforces the start/end window semantics, but it adds no parameter-specific format, bounds, or edge-case detail beyond what the schema already documents.

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 names a specific resource (stats for one time window of an Activity) and scope (from the per-second Activity file). It also explicitly relates the output to a split of get_activity_intervals and lists the extra metrics, so an agent can distinguish it from sibling tools 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 Guidelines4/5

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

It implies when to use this tool by saying it returns 'the same stats as one split of get_activity_intervals, plus...' for a custom window. That gives clear context against the sibling, but it lacks an explicit exclusion or statement of when to prefer get_activity_intervals instead.

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