Garmin MCP Server

126 tools. 28 can modify or destroy data without limits.

5 destructive tools with no built-in limits. Policy required.

Last updated:

28 can modify or destroy data
98 read-only
126 tools total

Community server · catalogue entry verified 10/06/2026

How to control Garmin MCP Server ↓

Read (98) Write / Execute (23) Destructive / Financial (5)
Critical Risk

28 of Garmin MCP Server's 126 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 MCP Server, and nothing reaches the server without passing your rules. These are the rules we recommend:

Deny destructive operations
{
  "delete_course": {
    "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 MCP Server — 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 →

Free to start. No card required.

WRITE 23 tools
Write remove_gear_from_activity Remove gear association from an activity Unlinks a specific piece of gear from an activity. Write log_custom_food log_custom_food Write add_body_composition Add body composition data Args: date: Date in YYYY-MM-DD format weigh Write add_gear_to_activity Associate gear with an activity Links a specific piece of gear (like shoes, bike, etc.) to an activit Write add_hydration_data Add hydration data Args: value_in_ml: Amount of liquid in milliliters Write add_weigh_in Add a new weight measurement Args: weight: Weight value unit_key: Unit of wei Write add_weigh_in_with_timestamps Add a new weight measurement with specific timestamps Args: weight: Weight value Write create_custom_food create_custom_food Write create_strength_workout create_strength_workout Write create_walk_run_workout create_walk_run_workout Write create_z2_walk_workout Create a steady Z2 walking workout and upload it to Garmin Connect. Args: name: Workout n Write log_food Quick-add a food entry with macro values to the nutrition log Logs food directly by name and macros w Write schedule_week Schedule a list of workouts for the week in a single call. Idempotent: if a workout is already schedu Write schedule_workout Schedule a workout to a specific calendar date This adds an existing workout from your Garmin workout Write schedule_workouts schedule_workouts Write set_activity_name Set or update the name of an activity. Args: activity_id: ID of the activity to update Write set_blood_pressure Set blood pressure values Args: systolic: Systolic pressure (top number) Write set_fit_download_dir Set and persist the default directory for downloaded activity files. Stores the absolute path in a sm Write update_custom_food update_custom_food Write upload_course upload_course Write upload_workout upload_workout Write upload_workouts upload_workouts Write upsert_and_log upsert_and_log
READ 98 tools
Read count_activities Get total count of activities in the user's Garmin account Returns the total number of activities rec Read download_activity_file download_activity_file Read download_workout Download a workout as a FIT file Downloads the workout in FIT format. The binary data cannot be retur Read get_activities get_activities Read get_activities_by_date get_activities_by_date Read get_activities_fordate Get activities for a specific date Args: date: Date in YYYY-MM-DD format Read get_activity get_activity Read get_activity_exercise_sets Get exercise sets for strength training activities Args: activity_id: ID of the activity Read get_activity_fit_data Download and parse FIT file for an activity to expose advanced cycling data. Returns data not availab Read get_activity_gear Get gear data used for an activity Args: activity_id: ID of the activity to retrieve gear Read get_activity_hr_in_timezones Get heart rate data in different time zones for an activity Args: activity_id: ID of the Read get_activity_power_in_timezones Get power distribution across training zones for an activity. Returns time spent in each power zone w Read get_activity_split_summaries Get split summaries for an activity Args: activity_id: ID of the activity to retrieve spl Read get_activity_splits Get splits for an activity Args: activity_id: ID of the activity to retrieve splits for Read get_activity_typed_splits Get typed splits for an activity Args: activity_id: ID of the activity to retrieve typed Read get_activity_types Get all available activity types Returns a list of all activity types supported by Garmin Connect, Read get_activity_weather Get weather data for an activity Args: activity_id: ID of the activity to retrieve weathe Read get_adhoc_challenges Get user-created social/group challenges (e.g., step competitions with friends) Returns challenges cr Read get_all_day_events Get daily wellness events data Args: date: Date in YYYY-MM-DD format Read get_all_day_stress Get all-day stress data Args: date: Date in YYYY-MM-DD format Read get_available_badge_challenges Get official Garmin badge challenges available to join Returns monthly/seasonal challenges from Garmi Read get_badge_challenges Get all badge challenges the user has joined (completed and in-progress) Returns the user's history o Read get_blood_pressure Get blood pressure data Args: start_date: Start date in YYYY-MM-DD format end Read get_body_battery Get body battery data with events Args: start_date: Start date in YYYY-MM-DD format Read get_body_battery_events Get body battery events data Args: date: Date in YYYY-MM-DD format Read get_body_composition Get body composition data for a single date or date range Args: start_date: Date in YYYY- Read get_courses List all courses saved on Garmin Connect. Returns a curated list of courses with id, name, distance, Read get_custom_food_serving_units Get available serving units for custom foods Returns the list of valid serving units (e.g. G, ML, OZ) Read get_custom_foods Search or list user's custom foods Returns custom foods the user has created. Use the search paramete Read get_cycling_ftp Get the latest cycling Functional Threshold Power (FTP) data. Returns the most recent cycling FTP est Read get_daily_steps Get steps data for a date range Args: start_date: Start date in YYYY-MM-DD format Read get_daily_weigh_ins Get weight measurements for a specific date Args: date: Date in YYYY-MM-DD format Read get_device_alarms Get alarms from all Garmin devices Returns all configured alarms with their schedules, sounds, and en Read get_device_last_used Get information about the last used Garmin device Read get_device_settings Get settings for a specific Garmin device Returns device configuration including time/date format, un Read get_device_solar_data Get solar data for a specific device Returns solar charging data for devices with solar panels (e.g., Read get_devices Get all Garmin devices associated with the user account Read get_earned_badges Get earned badges for user Read get_endurance_score Get endurance score data between dates Args: start_date: Start date in YYYY-MM-DD format Read get_fitnessage_data Get fitness age data Args: date: Date in YYYY-MM-DD format details: If True, Read get_floors Get floors climbed data Args: date: Date in YYYY-MM-DD format Read get_full_name Get user's full name from profile Read get_gear Get all gear registered with the user account Returns complete gear inventory including usage statist Read get_goals get_goals Read get_heart_rates Get full heart rate time-series data Note: This returns detailed 2-minute interval data (~25KB). Read get_heart_rates_summary Get heart rate summary with essential metrics (lightweight version) Returns a compact summary (~500 b Read get_hill_score Get hill score data between dates Args: start_date: Start date in YYYY-MM-DD format Read get_hrv_data Get Heart Rate Variability (HRV) data Args: date: Date in YYYY-MM-DD format r Read get_hrv_trend Get HRV (Heart Rate Variability) trend over a date range. Returns daily HRV values and weekly rolling Read get_hydration_data Get hydration data Args: date: Date in YYYY-MM-DD format Read get_inprogress_virtual_challenges Get in-progress virtual challenges/expeditions Returns virtual challenges (like walking expeditions o Read get_lactate_threshold Get lactate threshold data Returns lactate threshold information, which is the exercise intensity at Read get_lifestyle_logging_data Get lifestyle logging data for a specific date Returns lifestyle logging data which allows users to t Read get_menstrual_calendar_data Get menstrual calendar data between specified dates Automatically chunks requests longer than 92 days Read get_menstrual_data_for_date Get menstrual data for a specific date Args: date: Date in YYYY-MM-DD format Read get_morning_training_readiness Get morning training readiness score Returns the morning training readiness assessment, which evaluat Read get_non_completed_badge_challenges Get badge challenges currently in progress (not yet completed) Returns active challenges the user has Read get_nutrition_daily_food_log Get daily food consumption records for a date Returns food items logged throughout the day including Read get_nutrition_daily_meals Get daily meal summaries for a date Returns meal-level summaries (breakfast, lunch, dinner, snacks) Read get_nutrition_daily_settings Get nutrition plan/settings for a date Returns the user's nutrition goals and targets including Read get_personal_record Get personal records for user Read get_power_duration_curve get_power_duration_curve Read get_pregnancy_summary Get pregnancy summary data Read get_primary_training_device Get information about the primary training device Returns details about the device designated as prim Read get_progress_summary_between_dates get_progress_summary_between_dates Read get_race_predictions Get predicted race times based on current fitness level Returns Garmin's predictions for 5K, 10K, hal Read get_respiration_data Get full respiration time-series data Note: This returns detailed interval data (~20KB). For Read get_respiration_summary Get respiration summary with essential metrics (lightweight version) Returns a compact summary (~300 Read get_respiration_trend Get overnight respiration rate trend over a date range. Elevated resting respiration rate (compared t Read get_rhr_day Get resting heart rate data Args: date: Date in YYYY-MM-DD format Read get_scheduled_workouts Get scheduled workouts between two dates with curated summary list Returns workouts that have been sc Read get_sleep_data Get full sleep data with all details Note: This returns detailed sleep data (~50KB). For a co Read get_sleep_summary Get sleep summary with only essential metrics (lightweight version) This endpoint returns a compact s Read get_spo2_data Get SpO2 (blood oxygen) data Args: date: Date in YYYY-MM-DD format Read get_stats Get daily activity stats with curated essential metrics Returns a summary of daily health and activit Read get_stats_and_body Get stats and body composition data Args: date: Date in YYYY-MM-DD format Read get_steps_data Get detailed steps data with 15-minute intervals Note: This returns full interval data (~14KB). For a Read get_stress_data Get full stress time-series data Note: This returns detailed interval data (~35KB) including body bat Read get_stress_summary Get stress summary with essential metrics (lightweight version) Returns a compact summary (~400 bytes Read get_training_effect Get training effect data for a specific activity Args: activity_id: ID of the activity to Read get_training_load_trend Get the Performance Management Chart (CTL/ATL/TSB) over a date range. Returns Chronic Training Load ( Read get_training_plan_workouts Get training plan workouts for the week containing the given date Returns workouts from your active t Read get_training_readiness Get training readiness data with curated metrics Returns training readiness score and contributing fa Read get_training_status Get training status with curated metrics Returns comprehensive training status including load, VO2 ma Read get_unit_system Get user's preferred unit system from profile Read get_user_profile Get user profile information Read get_user_summary Get user summary data (compatible with garminconnect-ha) Args: date: Date in YYYY-MM-DD f Read get_userprofile_settings Get user profile settings Read get_vo2max_trend Get VO2 max trend over a date range. Returns daily VO2 max estimates from Garmin's FirstBeat algorith Read get_weekly_intensity_minutes Get weekly intensity minutes data aggregates Returns weekly intensity minutes (moderate and vigorous) Read get_weekly_steps Get weekly step data aggregates Returns weekly step totals for the specified number of weeks ending a Read get_weekly_stress Get weekly stress data aggregates Returns weekly stress values for the specified number of weeks endi Read get_weigh_ins Get weight measurements between specified dates Args: start_date: Start date in YYYY-MM-D Read get_workout_by_id Get detailed information for a specific workout Returns workout details including segments and step s Read get_workouts Get all workouts with curated summary list Returns a count and list of workout summaries with essenti Read request_reload Request reload of epoch data Args: date: Date in YYYY-MM-DD format Read unschedule_workout unschedule_workout Read unschedule_workouts unschedule_workouts

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

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

Yes. The Garmin MCP Server server exposes 5 destructive tools including delete_course, delete_food_log, delete_weigh_ins. 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 MCP Server? +

The Garmin MCP Server server has 23 write tools including remove_gear_from_activity, log_custom_food, add_body_composition. 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 MCP Server.

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

126 tools across 3 categories: Destructive, Read, Write. 98 are read-only. 28 can modify, create, or delete data.

How do I enforce a policy on Garmin MCP Server? +

Register the Garmin MCP Server 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 MCP Server tool call.

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

Free to start. No card required.

126 Garmin MCP Server 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.