Skip to main content
Glama
VictorForV
by VictorForV

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
INTERVALS_API_KEYYesYour Intervals.icu API key (available under Settings → Developer Settings).
INTERVALS_ATHLETE_IDYesYour Intervals.icu athlete ID (available under Settings → Developer Settings).

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": false
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
get_athlete_profileA

The athlete's profile: name, location, timezone, sex.

    Read this first when you need to interpret local times or address the
    athlete by name.
    
get_sport_settingsA

Training zones and thresholds per sport: FTP, LTHR, max HR, power, heart-rate and pace zones, sweet spot range.

    Read this before judging whether a session was easy or hard; zone
    boundaries differ per sport.
    
list_activitiesB

Completed activities in a date range, newest first.

    Defaults to the last 30 days. Filter by activity_type such as Run,
    TrailRun, Ride, Swim, Hike, Workout, WeightTraining, Yoga. Each entry
    carries distance, duration, pace, heart rate, elevation, training load
    and the CTL/ATL standing at the time. The response reports how many
    activities matched versus how many were returned.
    
get_activityA

One activity by id, in the same shape as a list_activities entry.

    Use it when you already have an id (from list_activities, an event,
    or the athlete) and want that one activity without re-listing a whole
    window. It does not currently surface fields list_activities omits.
    
get_activity_intervalsA

Laps and detected intervals inside one activity.

    Use it to see how a session was structured: per-lap distance, duration,
    pace, heart rate, power and zone. This is where interval execution shows
    up, such as whether reps faded.
    
get_activity_streamsA

Time series inside one activity, downsampled.

    types is a comma-separated list, for example heartrate, velocity_smooth,
    altitude, cadence, watts, temp, latlng. Returns `points` evenly spaced
    samples per series plus min/mean/max over the whole series. points must
    be between 2 and 2000. The raw data can exceed ten thousand samples per
    series, so pass full=true only when the shape of every second genuinely
    matters -- not a small `points` value, which is rejected rather than
    silently answered with the full series.

    latlng sometimes comes back from intervals.icu as latitude only rather
    than [lat, lon] pairs; when that happens the series carries a note
    saying so instead of a silently wrong coordinate.
    
get_wellnessB

Daily wellness and training-load history.

    Defaults to the last 30 days. Per day: CTL (fitness), ATL (fatigue),
    ramp rate, plus whatever the athlete logs — weight, resting HR, HRV,
    sleep, soreness, fatigue, stress, mood, motivation. This is the record
    to read before judging whether load is sustainable.
    
get_training_readinessA

Assess current form from CTL/ATL/ramp rate and recent HRV, coach-style.

    Defaults to a six-week window so recent HRV has a real baseline to
    compare against. Returns TSB (fitness minus fatigue) classified into a
    band -- high_risk, overreaching, neutral, fresh, very_fresh -- each
    with a plain-language note, plus a ramp-rate read (declining,
    maintaining, building, aggressive) and, when HRV is logged, the last
    7 days against the rest of the window with a flag if it has dropped
    more than 10% below baseline.
    
get_training_load_chartA

A PNG chart of CTL (fitness), ATL (fatigue) and TSB (form) over time.

Defaults to the last 90 days, the usual window for seeing a build and a taper. Use this when a shape -- a spike, a plateau, a steady climb -- says more than the numbers would on their own.

get_eventsA

Planned calendar entries: future workouts, races and goals.

    Defaults to today through 28 days ahead. Pass an earlier oldest to see
    what was planned in the past. An empty list means nothing is scheduled.
    
get_best_effortsA

Best-effort curve for a sport: the athlete's peak sustained values.

    kind is hr, pace or power. Returns the best value held for 5s, 15s, 30s,
    1m, 5m, 10m, 20m, 30m, 1h and 1h30m over the window, which defaults to
    the last 12 months. Use it to compare current form against past peaks.
    
get_best_effort_chartA

A PNG of the best-effort curve for a sport: HR, pace or power against duration or distance, log-scaled since a curve spans seconds to hours.

    kind is hr, pace or power, same as get_best_efforts. Use this when the
    shape of the curve -- a plateau, a cliff past some duration -- says
    more than the ten named points get_best_efforts returns.
    
get_gearA

Registered gear such as shoes and bikes, with accumulated distance.

Useful for mileage on a given pair of shoes. An empty list means the athlete tracks no gear.

list_workoutsA

The athlete's saved workout library and its folders.

    These are workout templates, not completed sessions; use list_activities
    for what was actually done.
    
intervals_get_rawA

Escape hatch: GET any intervals.icu v1 path and return it unshaped.

    Use only when a dedicated tool cannot answer the question, since raw
    payloads are large. path is relative to https://intervals.icu/api/v1,
    for example "athlete/{athlete}/activities"; "{athlete}" expands to the
    configured athlete id. Pass query arguments in params, not in the path.
    This is still read-only.

    Field names are returned as-is, but values that look like credentials
    or personal contact info -- email, API keys, tokens, invitation links
    -- are replaced with "[redacted]" wherever they appear in the payload.
    

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

A4/5.0

Scored across 15 tools

Disambiguation5/5

Every tool targets a distinct resource: profile, wellness, settings, activities (list vs single), intervals, streams, readiness, charts, events, best efforts, gear, workouts, and a raw fallback. Even closely related tools like get_activity_intervals and get_activity_streams are clearly separated by their descriptions.

Naming Consistency4/5

The naming is mostly consistent with a get_/list_ + noun pattern. The notable outlier is intervals_get_raw, which reverses the convention, and minor singular/plural inconsistency between get_best_efforts and get_best_effort_chart, but the pattern is otherwise predictable.

Tool Count5/5

15 tools sits right at the upper bound of a well-scoped set, and each tool maps cleanly to a meaningful part of the intervals.icu API. No redundant or filler tools; even the raw escape hatch serves a clear fallback role.

Completeness5/5

The surface thoroughly covers the read-only athlete analytics domain: profile, training load, wellness, activities with multiple detail levels, best efforts, charts, events, gear, and workout templates. The raw escape hatch closes any remaining gaps, making dead ends unlikely.

Maintenance

ActivityMaintained
ResponsivenessNo issues