Skip to main content
Glama
eddmann

Garmin Connect MCP Server

by eddmann

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
GARMIN_EMAILYesYour Garmin Connect email address
GARMIN_PASSWORDYesYour Garmin Connect password

Capabilities

Features and capabilities supported by this server

CapabilityDetails
tools
{
  "listChanged": true
}
logging
{}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}
extensions
{
  "io.modelcontextprotocol/ui": {}
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
query_activitiesA

Query activities with flexible parameters and pagination support.

This unified tool supports multiple query patterns:

  1. Get specific activity: provide activity_id

  2. Get activities by date range: provide start_date and end_date (paginated)

  3. Get activities for specific date: provide date

  4. Get paginated activities: use cursor and limit

  5. Get last activity: no parameters

All queries can be filtered by activity_type (e.g., 'running', 'cycling').

Pagination: For large time ranges, use pagination to retrieve all activities:

  1. Make initial request without cursor

  2. Check response["pagination"]["has_more"]

  3. Use response["pagination"]["cursor"] for next page

Returns: JSON string with structure: { "data": { "activity": {...} // Single activity mode OR "activities": [...], // List mode "count": N }, "pagination": { // List mode only (when paginated) "cursor": "...", // Use for next page (null if no more) "has_more": true, "limit": 20, "returned": 20 }, "metadata": {...} }

get_activity_detailsA

Get comprehensive details for a specific activity.

Fetch exactly the information you need about an activity with flexible detail options.

By default, includes splits, weather, HR zones, and gear. Exercise sets are only included when explicitly requested (useful for strength training).

When include_splits=True and the activity has only 1 lap, estimated km/mile splits will be computed based on average pace.

get_activity_socialB

Get social details for an activity (likes, comments, kudos).

compare_activitiesA

Compare multiple activities side-by-side.

Analyzes 2-5 activities and provides:

  • Side-by-side metrics comparison

  • Identification of best/worst performances

  • Performance insights and patterns

Example: activity_ids="12345678,12345679,12345680"

find_similar_activitiesA

Find activities similar to a reference activity.

Finds activities matching specified criteria:

  • type: Same activity type (running, cycling, etc.)

  • distance: Similar distance (±20%)

  • elevation: Similar elevation gain (±30%)

  • duration: Similar duration (±20%)

Returns similarity scores and comparisons.

Example: criteria="type,distance"

query_health_summaryA

Get comprehensive daily health snapshot with pagination support.

Includes stats, user summary, training readiness, training status, Body Battery, and Body Battery events.

Supports single date or date range queries with pagination.

Pagination: For large date ranges, use pagination:

  1. Make initial request with start_date and end_date

  2. Check response["pagination"]["has_more"]

  3. Use response["pagination"]["cursor"] for next page

Returns: JSON string with structure: { "data": { "summaries": [...], // Range mode (paginated) "count": N OR {...} // Single date mode }, "pagination": { // Range mode only "cursor": "...", "has_more": true, "limit": 30, "returned": 30 }, "metadata": {...} }

query_sleep_dataA

Get sleep data and analysis.

Retrieves sleep duration, sleep stages (deep, light, REM), sleep scores, HRV, resting heart rate, and body battery impact.

Supports single date or date range queries.

query_heart_rate_dataA

Get heart rate data.

Retrieves heart rate data including resting HR, average HR, min/max values. Supports single date or date range queries.

query_activity_metricsA

Get activity metrics (steps, stress, etc.).

Includes steps, stress, respiration, SpO2, floors climbed, hydration, blood pressure, and body composition.

Select specific metrics to retrieve using the metrics parameter. Default: steps and stress.

query_devicesB

Query Garmin devices.

Get comprehensive device information including last used device, primary training device, settings, solar data, and alarms.

query_gearA

Query gear and equipment.

Get comprehensive gear information including defaults and usage stats.

get_user_profileA

Get comprehensive user profile with optional stats, personal records, and devices.

query_goals_and_recordsA

Get goals, personal records, and race predictions.

Returns your activity goals, personal best performances, and predicted race times based on recent training.

query_challengesA

Query challenges and badges.

Filters by status (active/available/earned) and type (badge/adhoc/virtual).

analyze_training_periodA

Analyze training over a specified period with comprehensive insights.

Provides:

  • Total volume (activities, distance, time, elevation)

  • Activity type breakdown

  • Weekly trends

  • Performance insights

Example periods: "30d", "this-month", "2024-01-01:2024-01-31"

get_performance_metricsA

Get comprehensive performance metrics.

Includes VO2 max, hill score, endurance score, heart rate variability, and fitness age data.

Supports both single-date and date-range queries.

get_training_effectA

Get training effect and progress summary.

Supports:

  1. Training effect for specific activity (provide activity_id)

  2. Progress summary over date range (provide start_date, end_date, metric)

query_weight_dataA

Query weight data.

Get weight measurements for a specific date or date range.

manage_weight_dataA

Add or delete weight entries.

Actions:

  • add: Add a new weight entry (provide weight, optionally date)

  • delete: Delete weight entries (provide weigh_in_ids)

manage_workoutsB

Manage structured workouts.

Actions:

  • list: Get all workouts

  • get: Get specific workout by ID

  • download: Download workout file

  • upload: Upload a new workout

log_health_dataB

Log health data entries.

Data types:

  • body_composition: Requires data with weight, body_fat, etc.

  • blood_pressure: Requires data with systolic, diastolic

  • hydration: Requires data with volume_ml

All data should be provided as a JSON string.

query_womens_healthA

Query women's health data.

Data types:

  • pregnancy: Get pregnancy tracking summary

  • menstrual: Get menstrual cycle data (for specific date or date range)

Prompts

Interactive templates invoked by user choice

NameDescription
analyze_recent_trainingAnalyze Garmin training for a given period.
sleep_quality_reportAnalyze sleep quality over a period.
training_readiness_checkCheck if I'm ready to train today.
activity_deep_diveProvide comprehensive analysis of an activity.
compare_recent_runsCompare recent runs to identify trends.
health_summaryProvide comprehensive health overview.

Resources

Contextual data attached and managed by the client

NameDescription
athlete_profile_resourceProvide athlete profile with stats and zones for context-aware clients.
training_readiness_resourceProvide current training readiness, Body Battery, and recovery status.
health_today_resourceProvide today's health snapshot (steps, sleep, stress, HR).

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/eddmann/garmin-connect-mcp'

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