Skip to main content
Glama
B3r3z

Intervals.icu MCP Server

by B3r3z

get_activity_power_curves

Retrieve watts power curves and best-power points for a single activity. Optionally specify durations and fatigue to get precise power data.

Instructions

Read watts power curves for one activity and optional durations.

Choose this for best-power points from one activity. durations are positive seconds selected exactly from the upstream secs axis; omitted durations use the standard duration set, while full detail preserves the complete upstream axis. fatigue defaults to normal and each distinct selector is requested independently; the response keeps after_kj and does not infer selector identity from curve IDs. Compact points retain aligned sample indices and W/kg activity IDs, while large raw arrays are listed in omitted_fields. Use the supplied full_read continuation or detail='full' when those arrays or unknown fields are needed. Values are upstream watts; no MCP calculations are performed. Successful variants survive failures of other variants. Selection echo and point completeness are separate; request context does not prove upstream selector identity. HTTP 422 guidance includes checking sport settings.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
detailNocompact
api_keyNo
fatigueNo
durationsNo
activity_idYes

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
dataYes
errorNo
queryNo
sourceYes
statusYes
coverageYes
warningsNo
paginationNo
request_idNo
schema_versionNo1.0

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.6/5.0
Behavior5/5

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

With no annotations, the description carries the full burden, and it delivers extensively: it discloses response behavior (keeps after_kj, does not infer selector identity), the meaning of compact vs. raw arrays (omitted_fields), that values are upstream watts with no MCP calculations, partial failure tolerance, and even HTTP 422 guidance. This is unusually thorough and transparent.

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 longer than average but every sentence adds a distinct technical detail. It is front-loaded with purpose and then flows logically through parameters, response behavior, and error handling. There is no fluff, and the structure makes it easy to scan.

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, the description needn't explain return values, but it still covers continuation mechanisms, omitted fields, error handling, and parameter nuances. For a tool with five parameters and no annotations, it leaves nothing an agent needs to know to invoke it correctly.

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 0%, so the description must compensate. It explains durations ('positive seconds selected exactly from the upstream secs axis', omitted uses standard set, full detail preserves axis) and fatigue ('defaults to normal', each selector independent). It also implies the detail parameter's semantics. activity_id is self-explanatory from name; api_key is not explained but is a common auth parameter. It covers most parameters effectively.

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 ('Read'), resource ('watts power curves'), and scope ('one activity'), which clearly distinguishes it from sibling tools like get_athlete_power_curves (athlete-level) and get_activity_power_hr (heart rate). The opening sentence immediately establishes what the tool does.

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?

Explicitly says 'Choose this for best-power points from one activity,' providing clear selection guidance. It also instructs when to use the full_read continuation or detail='full' for complete arrays, which covers the main alternative path. Does not explicitly list when not to use it, but the context is clear enough.

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