Skip to main content
Glama
csikosaron98

Intervals.icu MCP Server

by csikosaron98

get_wellness_data

Retrieve an athlete's wellness data from Intervals.icu, including training metrics, vitals, sleep, and subjective scores. Specify a date range and optionally include custom fields.

Instructions

Get wellness data for an athlete from Intervals.icu.

By default returns standard wellness fields (training metrics, vitals, sleep, subjective scores, etc.). Set include_all_fields=True to also include any additional or custom fields configured by the user in Intervals.icu.

Args: athlete_id: The Intervals.icu athlete ID (optional, will use ATHLETE_ID from .env if not provided) api_key: The Intervals.icu API key (optional, will use API_KEY from .env if not provided) start_date: Start date in YYYY-MM-DD format (optional, defaults to 30 days ago) end_date: End date in YYYY-MM-DD format (optional, defaults to today) include_all_fields: If True, include additional and custom fields beyond the standard set (optional, defaults to False)

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
api_keyNo
end_dateNo
athlete_idNo
start_dateNo
include_all_fieldsNo

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
resultYes

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?

With no annotations provided, the description carries the behavioral disclosure burden. It does so well by revealing that standard fields are returned by default, that include_all_fields=True extends to custom fields, that athlete_id and api_key optionally fall back to .env values, and that dates default to a 30-day window. It does not mention error behavior or rate limits, but it adequately describes what the tool does at invocation time.

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 moderately sized and well-structured: a purpose sentence, a sentence about behaviors, and a logical Args block. The Args lines repeat parameter names from the schema but add valuable default and format context, so nothing is wasted. It could be slightly tighter, but it remains readable and front-loaded with the core function.

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?

Given five all-optional parameters and an existing output schema, the description supplies enough to call the tool correctly: parameter defaults, credential sources, date formats, and the field-scoping flag. There is no need to describe return values because the output schema exists. Minor omissions like invalid-input handling do not impede correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description is the sole source of param meaning. It fully compensates by documenting all five parameters in the Args section, adding format specifics (YYYY-MM-DD), default values (30 days ago, today, False), and the .env fallback for credentials. This is exactly the semantics an agent needs beyond raw JSON schema.

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 opens with a specific verb and resource: 'Get wellness data for an athlete from Intervals.icu.' It then enumerates the content domains (training metrics, vitals, sleep, subjective scores), which clearly separates it from sibling tools focused on activities, events, gear, and custom items. There is no ambiguity about what this 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?

The description establishes a clear use context: whenever an agent needs wellness data for an athlete. It also gives practical guidance on the include_all_fields flag, explaining when to set it to True. It does not explicitly name alternative tools or state when not to use it, but the semantics of 'wellness data' are distinct enough among the siblings to provide clear direction.

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