Skip to main content
Glama
jakub-m-arch

Intervals.icu MCP Server

by jakub-m-arch

Find workouts with matching intervals

search_intervals
Read-onlyIdempotent

Search past training activities for intervals matching specific duration and intensity ranges, using % of threshold for power, pace, or heart rate.

Instructions

Find past activities containing intervals of a given duration and intensity, e.g. "4–6 minute reps at 95–105% of threshold". Intensity is % of threshold (FTP, threshold pace or LTHR depending on the metric).

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
limitNoMax activities (default 20).
metricNoWhich intensity to use (default AUTO).
min_repsNoMinimum matching intervals (default 1).
max_intensityYesMaximum intensity, % of threshold.
min_intensityYesMinimum intensity, % of threshold.
max_duration_sYes
min_duration_sYes

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
countYes
activitiesYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.0.0

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds valuable behavioral context beyond annotations: results are limited to past activities, intensity is expressed as % of threshold, and the threshold type depends on the selected metric. This helps the agent understand what the search actually means.

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 two sentences with no filler. The core action and criteria are front-loaded, and the example is compact and clarifying. Every sentence contributes meaning.

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?

For a read-only search tool with an output schema and safety annotations, this description is largely complete. It explains the core concept and intensity semantics. The main gaps are not stating duration units explicitly and not addressing how this tool relates to search_activities, but these are minor given the schema and parameter names.

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 71%, so the description partially compensates by explaining that intensity is a percentage of threshold and giving an interval example. However, it does not clarify that durations are in seconds (the example uses minutes while parameter names end in `_s`), and the min/max duration parameters still rely on their names rather than explicit description.

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?

The description uses a specific verb and resource: 'Find past activities containing intervals of a given duration and intensity.' The concrete example ('4–6 minute reps at 95–105% of threshold') makes the tool's purpose unmistakable. It does not explicitly distinguish itself from sibling search tools like search_activities, but the interval-specific matching criteria make the purpose clear.

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?

The usage context is implied: use this tool when you need past activities containing intervals matching duration and intensity criteria. However, there is no explicit when-not-to-use guidance or mention of alternatives such as search_activities or list_activities, leaving the agent to infer the boundary between sibling tools.

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