Garmin Connect

97 tools. 8 can modify or destroy data without limits.

1 destructive tool with no built-in limits. Policy required.

Last updated:

8 can modify or destroy data
89 read-only
97 tools total

Community server · catalogue entry verified 11/06/2026

How to control Garmin Connect ↓

Read (89) Write / Execute (7) Destructive / Financial (1)
Critical Risk

8 of Garmin Connect's 97 tools can modify, destroy, or commit something on every call — and an agent calls them with no built-in limits.

PolicyLayer is an MCP gateway — it sits between your AI agents and Garmin Connect, and nothing reaches the server without passing your rules. These are the rules we recommend:

Deny destructive operations
{
  "delete_activity": {
    "deny_if": [
      {
        "conditions": [],
        "on_deny": "Blocked by default. Requires approval."
      }
    ]
  }
}

Destructive tools should never be available to autonomous agents without human approval.

Rate limit write operations
{
  "remove_gear_from_activity": {
    "limits": [
      {
        "counter": "remove_gear_from_activity_per_hour",
        "window": "hour",
        "max": 30,
        "scope": "grant"
      }
    ]
  }
}

Prevents bulk unintended modifications from agents caught in loops.

Cap read operations
{
  "count_activities": {
    "limits": [
      {
        "counter": "count_activities_per_minute",
        "window": "minute",
        "max": 60,
        "scope": "grant"
      }
    ]
  }
}

Controls API costs and prevents retry loops from exhausting upstream rate limits.

  1. Create a free account and register Garmin Connect — nothing to install.
  2. Add these rules — paste them, or build them visually. Tune the limits to your setup.
  3. Point your MCP client (Claude, Cursor, anything) at your gateway URL.
ENFORCE POLICY ON GARMIN CONNECT →

Free to start. No card required.

READ 89 tools
Read count_activities Get total number of activities Read get_activities Get recent activities with pagination. Returns activity summaries: type, duration, distance, calories, heart r Read get_activities_by_date Search activities within a date range, optionally filtered by activity type (running, cycling, etc.) Read get_activity Get summary data for a specific activity Read get_activity_details Get detailed activity metrics: HR, pace, elevation, cadence, power time series data Read get_activity_exercise_sets Get exercise set details for strength training activities: reps, weight, duration per set Read get_activity_gear Get gear/equipment used during a specific activity Read get_activity_hr_zones Get time spent in each heart rate zone during an activity Read get_activity_power_in_timezones Get power time in zones for cycling/running power activities Read get_activity_split_summaries Get split summary data for an activity with aggregate stats per split Read get_activity_splits Get per-km or per-mile split data for an activity Read get_activity_typed_splits Get typed split data for an activity (e.g. active vs rest intervals) Read get_activity_types Get all available activity types (running, cycling, swimming, etc.) Read get_activity_weather Get weather conditions during an activity: temperature, humidity, wind, condition Read get_adaptive_training_plan_by_id Get an adaptive (Garmin Coach) training plan by ID Read get_adhoc_challenges Get historical ad-hoc challenges the user has participated in Read get_available_badge_challenges Get available badge challenges that can be joined Read get_available_badges Get all available badges that can be earned Read get_badge_challenges Get completed badge challenges Read get_blood_pressure Get blood pressure readings over a date range Read get_body_battery Get Body Battery energy levels: charged, drained, highest, lowest. endDate defaults to startDate if omitted Read get_body_battery_events Get Body Battery charge and drain events for a day (what charged/drained your battery) Read get_body_composition Get body composition data over a date range: weight, BMI, body fat %, muscle mass, bone mass, body water % Read get_cycling_ftp Get latest Functional Threshold Power (FTP) for cycling Read get_daily_events Get daily wellness events for a specific date Read get_daily_health_snapshot Get complete daily health snapshot in a single call: summary, heart rate, stress, body battery, sleep, HRV, re Read get_daily_steps_range Get daily step counts over a date range for trend analysis. Auto-chunks ranges >28 days Read get_daily_summary Get full daily summary: steps, calories, distance, floors, active minutes, heart rate, stress, body battery Read get_daily_weigh_ins Get all weigh-in entries for a specific date Read get_device_last_used Get the last used Garmin device info Read get_device_settings Get settings and configuration for a specific Garmin device Read get_device_solar_data Get solar charging data for solar-equipped Garmin devices Read get_devices Get all registered Garmin devices: model, firmware, last sync Read get_earned_badges Get all earned badges and achievements Read get_endurance_score Get Endurance Score. Single date: omit endDate. Date range: provide both with optional aggregation (daily/week Read get_fitness_age Get Garmin Fitness Age estimate based on fitness level, activity, and body metrics Read get_floors Get floors climbed chart data for a specific date Read get_gear Get all gear/equipment: shoes, bikes, and other tracked equipment Read get_gear_activities Get activities associated with a specific gear item (e.g. runs with a specific pair of shoes) Read get_gear_defaults Get default gear assignments per activity type Read get_gear_stats Get usage statistics for a specific gear item (total distance, activities) Read get_goals Get active goals: step goals, activity goals, weight goals, and their progress Read get_heart_rate Get daily heart rate data: resting HR, max HR, min HR, and time series throughout the day Read get_hill_score Get Hill Score. Single date: omit endDate. Date range: provide both with optional aggregation (daily/weekly/mo Read get_hrv Get Heart Rate Variability (HRV) data. Key recovery indicator. Data may not be available for today, use yester Read get_hrv_range Get HRV data over a date range (day-by-day). Returns array of {date, data} records Read get_hydration Get daily hydration data (water intake) Read get_inprogress_virtual_challenges Get virtual challenges currently in progress Read get_intensity_minutes Get moderate and vigorous intensity minutes for a date Read get_lactate_threshold Get lactate threshold data: HR and pace. Omit dates for latest. Provide dates for historical trend with aggreg Read get_last_activity Get the most recent activity Read get_latest_weight Get the most recent weight entry Read get_lifestyle_logging_data Get daily lifestyle logging data for a date Read get_menstrual_calendar_data Get menstrual cycle calendar data for a date range: cycle phases, predictions, symptoms Read get_menstrual_data_for_date Get menstrual cycle day view for a specific date: current phase, symptoms, predictions Read get_non_completed_badge_challenges Get badge challenges that are started but not yet completed Read get_personal_records Get personal records: longest run, fastest 5K/10K/half/full marathon, longest ride Read get_pregnancy_summary Get pregnancy tracking summary data Read get_primary_training_device Get the primary training device info Read get_progress_summary Get fitness progress stats over a date range: distance, duration, or calories grouped by activity type Read get_race_predictions Get race time predictions for 5K, 10K, half marathon, and marathon. Omit dates for latest. Provide dates for h Read get_respiration Get daily respiration rate data throughout the day. Single date; for ranges use get_respiration_range Read get_respiration_range Get respiration data over a date range (day-by-day). Returns array of {date, data} records Read get_resting_heart_rate Get resting heart rate data for a specific date Read get_scheduled_workout_by_id Get a specific scheduled workout by ID from a training plan Read get_sleep_data Get detailed sleep data for a single night: duration, sleep stages (deep, light, REM, awake), sleep score, bed Read get_sleep_data_range Get sleep data over a date range (day-by-day). Returns array of {date, data} records with sleep stages, score, Read get_sleep_data_raw Get raw sleep data directly from the wellness service with full detail including heart rate and SpO2 during sl Read get_spo2 Get blood oxygen saturation (SpO2) data for a specific date. Single date; for ranges use get_spo2_range Read get_spo2_range Get SpO2 (blood oxygen) data over a date range (day-by-day). Returns array of {date, data} records Read get_steps Get step count for a specific date Read get_steps_chart Get detailed intraday step data throughout the day (step chart) Read get_stress Get daily stress levels: overall score, time in rest/low/medium/high stress, and time series. Single date; for Read get_stress_range Get daily stress data over a date range (day-by-day). Returns array of {date, data} records Read get_training_plan_by_id Get a specific training plan by ID with full schedule and workout details Read get_training_plans Get all training plans from Garmin Coach or custom plans Read get_training_readiness Get Training Readiness score: combines sleep, recovery, training load and HRV. Data may not be available for t Read get_training_readiness_range Get Training Readiness data over a date range (day-by-day). Returns array of {date, data} records Read get_training_status Get Training Status: productive, maintaining, detraining, peaking, recovery, overreaching. Includes training l Read get_user_profile Get user social profile: name, location, profile image, activity preferences, level Read get_user_settings Get user settings: measurement system, time/date format, sleep schedule, HR zones, hydration preferences Read get_vo2max Get VO2 Max estimate for a date (running and cycling). Data may not be available for today, use yesterday. For Read get_vo2max_range Get VO2 Max data over a date range (day-by-day). Returns array of {date, data} records Read get_weekly_intensity_minutes Get weekly intensity minutes over a date range Read get_weekly_steps Get weekly aggregated step counts for trend analysis. Defaults to 52 weeks (1 year). Max 52 weeks Read get_weekly_stress Get weekly aggregated stress data for trend analysis. Defaults to 52 weeks (1 year). Max 52 weeks Read get_weigh_ins Get weigh-in records over a date range Read get_workout Get a specific workout definition by ID Read get_workouts Get saved workouts/training plans

Other MCP servers with similar tools — same risk classification, starter policies for each.

Can an AI agent delete data through the Garmin Connect MCP server? +

Yes. The Garmin Connect server exposes 1 destructive tools including delete_activity. These permanently remove resources with no undo. PolicyLayer blocks destructive tools by default so they never reach the upstream server.

How do I prevent bulk modifications through Garmin Connect? +

The Garmin Connect server has 7 write tools including remove_gear_from_activity, add_gear_to_activity, add_weigh_in. Set a rate limit in your policy -- for example, 10 calls per hour prevents an agent from making more than 10 modifications per hour. PolicyLayer enforces this at the gateway, before calls reach Garmin Connect.

How many tools does the Garmin Connect MCP server expose? +

97 tools across 3 categories: Destructive, Read, Write. 89 are read-only. 8 can modify, create, or delete data.

How do I enforce a policy on Garmin Connect? +

Register the Garmin Connect MCP server in PolicyLayer, apply the suggested rules above (adjust the limits to your use case), and point your AI client at the PolicyLayer proxy URL instead of the server directly. Your agents keep the same tools; PolicyLayer evaluates every call against policy before it executes. Nothing to install, live in minutes.

Enforce policy on every Garmin Connect tool call.

Deterministic rules across all 97 Garmin Connect tools. Per-identity grants. Full audit log. Live in minutes. Nothing to install.

Free to start. No card required.

97 Garmin Connect tools catalogued and risk-classified — across an index of 42,500+ MCP servers.

// GET IN TOUCH

Have a question or want to learn more? Send us a message.

Message sent.

We'll get back to you soon.