Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
SUUNTO_CLIENT_IDYesYour Suunto API client ID
SUUNTO_CLIENT_SECRETYesYour Suunto API client secret
SUUNTO_TOKEN_STORAGENoOptional storage backend for tokens (e.g., 'keychain')
SUUNTO_SUBSCRIPTION_KEYYesYour Suunto API subscription key

Capabilities

Features and capabilities supported by this server

CapabilityDetails
tools
{}
resources
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
list_workoutsA

Returns the user's recent Suunto workouts ordered newest-first. Each item: workoutKey (string id), activityId, sport, startTime (epoch ms), totalTime (s), totalDistance (m), totalCalories, avgHeartRate, maxHeartRate, totalAscent (m), totalDescent (m). Auto-paginates across pages until limit is reached or no more workouts exist. Use get_workout for full detail (laps, HR zones, sport-specific metrics) on a single result. Read-only.

get_workoutA

Returns the full summary for one workout: all fields Suunto exposes including laps, HR zones, training-effect score, and sport-specific metrics (pace zones for running, power for cycling, etc.). Throws SuuntoNotFoundError if the workoutKey does not exist. Use list_workouts to discover valid workoutKey values. For second-by-second time-series (HR, pace, GPS) use get_workout_samples instead. Read-only.

get_workout_samplesA

Returns the time-series sample stream for one workout. Each sample: timestamp (ms), heartRate (bpm), speed (m/s), altitude (m), power (W), cadence, latitude, longitude. Sampled at the device's recording interval (typically 1 s). Long workouts (>2 h) may return thousands of records — use get_workout_fit with full=false for a compact summary instead. Throws SuuntoNotFoundError if the key is invalid. Read-only.

get_workout_fitA

Downloads the workout's binary FIT file from Suunto and returns it parsed to JSON. Default (full=false): compact summary { sport, total_distance_km, avg_heart_rate, training_effect, laps, records_sample (first 5 / middle 5 / last 5 records) }. Set full=true to receive every parsed FIT record — responses are often >100 KB for long workouts. Use the default for analysis and summaries; full=true only when raw record-level data is required. Read-only.

export_workout_gpxA

Returns the workout's GPS route as a GPX 1.1 XML string (not JSON). Each trackpoint contains lat, lon, elevation, and timestamp. Suitable for direct import into Strava, Komoot, Google Earth, or any GPX-compatible tool. Returns a valid but empty GPX document if the workout has no GPS data. Use get_workout_samples for numeric time-series (HR, power, cadence) instead of GPS. Read-only.

get_daily_activityA

Returns the 24/7 activity summary for one calendar day: { steps, activeCalories, totalCalories, avgHeartRate, minHeartRate, maxHeartRate, restingHeartRate }. Throws SuuntoNotFoundError if the watch did not sync data for that date. Use list_daily_activity to fetch a date range efficiently. Requires Activity API subscription on apizone; returns 404 without it. Read-only.

list_daily_activityA

Returns 24/7 activity summaries for each day in [from, to] inclusive, ordered chronologically. Each entry: { date, steps, activeCalories, totalCalories, avgHeartRate, minHeartRate, maxHeartRate, restingHeartRate }. Days where the watch did not sync are omitted from the result. Use get_daily_activity for a single day. Requires Activity API subscription on apizone; returns 404 without it. Read-only.

get_sleepA

Returns the sleep summary for one night keyed by the morning wake-up date: { totalSleep (s), deepSleep (s), lightSleep (s), remSleep (s), awake (s), efficiency (%), sleepScore }. A session ending the morning of 2026-04-20 is keyed to 2026-04-20. Throws SuuntoNotFoundError if no sleep was recorded for that date. Use list_sleep for a date range. Requires Sleep API subscription on apizone; returns 404 without it. Read-only.

list_sleepA

Returns sleep summaries for each night in [from, to] inclusive, keyed by wake-up date, ordered chronologically. Each entry: { date, totalSleep (s), deepSleep (s), lightSleep (s), remSleep (s), awake (s), efficiency (%), sleepScore }. Nights where no sleep was recorded are omitted. Use get_sleep for a single night. Requires Sleep API subscription on apizone; returns 404 without it. Read-only.

get_recoveryA

Returns the recovery and HRV summary for one date: { recoveryScore (0–100), hrv (ms, rMSSD), stressLevel, readiness }. Throws SuuntoNotFoundError if no recovery data exists for that date. Use list_recovery for a date range. Requires Recovery API subscription on apizone; returns 404 without it. Read-only.

list_recoveryA

Returns recovery and HRV summaries for each day in [from, to] inclusive, ordered chronologically. Each entry: { date, recoveryScore (0–100), hrv (ms, rMSSD), stressLevel, readiness }. Days without recovery data are omitted. Use get_recovery for a single day. Requires Recovery API subscription on apizone; returns 404 without it. Read-only.

list_subscriptionsA

Returns all active webhook subscriptions on this Suunto account as an array of { id, eventType, callbackUrl, createdAt }. Returns an empty array if no webhooks are registered. Use to audit which event types are already wired before adding new subscriptions. Requires Subscriptions API product on apizone. Read-only.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription
Most recent workoutSummary of the latest workout synced from your Suunto watch.
Last night's sleepSleep stages, duration, and score for the most recent night.
Today's recoveryRecovery / HRV / stress for today.
Today's activitySteps, calories, and daily heart rate for today.
This week's training summaryAggregated workout count, total duration, and total distance for the current ISO week.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/googlarz/suunto-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server