Skip to main content
Glama
jakub-m-arch

Intervals.icu MCP Server

by jakub-m-arch

Get activity details

get_activity
Read-onlyIdempotent

Retrieve detailed metrics and analysis for a single training activity, including heart-rate and pace zones, recovery, and fitness impact. Optionally include intervals/laps.

Instructions

Get details of one activity: summary metrics, description, time in heart-rate and pace zones, aerobic decoupling, HR recovery, fitness/fatigue after the session and, optionally, the list of intervals/laps with pace and HR. Activity ids look like "i123456789" (see list_activities).

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
idYesActivity id, e.g. "i123456789" (from list_activities or search_activities).
include_rawNoAlso include all raw non-empty API fields (large). Default: false.
include_intervalsNoInclude intervals/laps (work and recovery segments). Default: false.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
rawNo
activityYes
intervalsNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.0.0

TDQS

A3.9/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, covering the safety profile. The description adds genuine value beyond annotations by enumerating the actual content returned (zones, aerobic decoupling, HR recovery, fitness/fatigue) and noting the optional intervals. It stops short of describing response size or performance characteristics, but with an output schema present that gap is minor.

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 a single dense sentence that front-loads the core purpose and the id format hint, followed by the field list. It is efficient with no filler, though the long enumeration of metrics could have been structured as a list for faster scanning. The 'see list_activities' pointer is a useful, low-cost addition.

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?

With an output schema, full parameter coverage, and safety annotations in place, the description covers what the tool returns well. It clarifies the id format and flags that include_raw output is large (via schema). Nothing critical for a correct call is missing, though it could note the interplay between include_raw and include_intervals.

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% and each parameter (id, include_raw, include_intervals) has a descriptive schema entry. The description adds marginal value by explaining that include_intervals yields 'the list of intervals/laps with pace and HR', which enriches the schema's terse 'Include intervals/laps' note. This meets the baseline for a fully-covered schema without going beyond it.

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 uses a specific verb ('Get') and resource ('one activity') and enumerates precisely what is returned: summary metrics, description, zone times, aerobic decoupling, HR recovery, fitness/fatigue, and optionally intervals. It distinguishes itself from list_activities/search_activities by emphasizing it targets a single activity id, and even notes the id format.

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 description implies when to use it (when you need details of one activity) and points to list_activities for obtaining ids, which is helpful routing. However, it never explicitly contrasts with the many activity-specific siblings (get_activity_streams, get_activity_histogram, get_activity_best_efforts) to say 'use this for summary details, not those'. No explicit exclusions are given.

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