Skip to main content
Glama
jakub-m-arch

Intervals.icu MCP Server

by jakub-m-arch

List activities

list_activities
Read-onlyIdempotent

List completed activities within a date range, showing distance, time, pace, heart rate, and training load per activity type. Defaults to last 30 days.

Instructions

List completed activities (runs, rides, etc.) in a date range, newest first, with distance, time, pace/GAP, heart rate and training load, plus totals per activity type. Defaults to the last 30 days. Use get_activity for details of one activity.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
typeNoOnly this activity type, e.g. "Run", "Ride", "Walk" (case-insensitive).
limitNoMaximum activities to return (default 50, max 200).
newestNoLast day (YYYY-MM-DD), inclusive. Default: today.
oldestNoFirst day (YYYY-MM-DD). Default: 30 days ago.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
countYes
rangeYes
truncatedYesTrue if more activities exist than were returned
activitiesYes
totals_by_typeYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.0.0

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already cover read-only, idempotent, and non-destructive behavior, so the description adds valuable behavioral context: it returns completed activities, newest first, with pace/GAP, heart rate, training load, and totals per type. No contradiction exists.

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?

Two dense, efficient sentences: action, scope, ordering, key output fields, defaults, and the relevant alternative. Every clause earns its place and the core purpose is front-loaded.

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 full schema parameter coverage, a true output schema, and safety annotations, the description covers the essential decision factors: what is returned, how it is ordered, the default window, and when to use get_activity instead. No critical calling detail is missing.

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?

The schema documents all four parameters at 100% coverage, so the baseline applies. The description's mention of a date range and default of 30 days reinforces the oldest/newest parameters but does not add meaning beyond what the schema already provides.

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 clearly states the verb and resource: it lists completed activities in a date range, with ordering, key metrics, and per-type totals. It explicitly distinguishes from get_activity but does not differentiate from the sibling search_activities, leaving some sibling ambiguity.

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 gives a clear alternative: 'Use get_activity for details of one activity,' and states the default 30-day window. It does not explain when search_activities should be preferred, so usage guidance is strong but not exhaustive.

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