Garmin Connect
Garmin Connect on Garmin's official Personal API: sleep, HRV, body battery, activities.
Connector by Mason-Levyy · GitHub account verified by the MCP Registry
Install
Works with Claude Code, Codex, VS Code, Cursor, Windsurf, Claude Desktop. Read the repository before you give any tool access to your data.
npx agentmarket install connector/mason-levyy-garmin-personal-mcp
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: data-analysis
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this server can do and what it asks for, from its tool list, install config and code. Checked Oct 25, 2026.
- Tools
- 24 read · 1 write · 0 delete · 1 not yet classified
- Secrets
- 1 (API keys, tokens or passwords)
- Install scripts
- None found
- Runs as
- Python package
Tools by what they do 26
Read from the source code; the running server may list different tools.
Read 24 · Look things up without changing anything.
garmin_get_activitygarmin_get_activity_workoutsgarmin_get_body_batterygarmin_get_daily_summariesgarmin_get_daily_summarygarmin_get_daygarmin_get_fitness_agegarmin_get_food_loggarmin_get_heart_rategarmin_get_heart_rate_zonesgarmin_get_hrvgarmin_get_hrv_summaries
Show 12 more tools
garmin_get_hydrationgarmin_get_menstrual_cyclegarmin_get_menstrual_daygarmin_get_profilegarmin_get_sleepgarmin_get_sleep_summariesgarmin_get_spo2garmin_get_stepsgarmin_get_stressgarmin_get_weightgarmin_get_weight_goalsgarmin_get_wellness_activities
Write 1 · Create, change, send or run things.
garmin_download_activity
Not yet classified 1 · We could not tell from the name and description.
garmin_search_activities
Secrets and settings it asks for
Secrets: values you paste in that let it act as you.
GARMIN_PERSONAL_API_KEY
Other settings (environment variables or headers).
GARMIN_MCP_DOWNLOAD_DIR
Network hosts it talks to 3
connect.garmin.com· found in codegithub.com· found in coderaw.githubusercontent.com· found in code
Files it touches
- Any path the agent passes to its tools
Tools (26)
Read from the source code; the running server may differ. Descriptions are the server’s own words; hidden characters are shown as [U+…].
garmin_download_activityDownload activity fileDownload an activity's original file (a ZIP, usually holding a .fit) and save it on the machine running this server as activity-<activity_id>.zip, replacing any earlier download. Returns the saved path, size, and the files inside. activity_id: activityId from garmin_search_activities. directory: a subfolder of the download folder to save in, e.g. "races" (default: the download folder itself). The download folder is GARMIN_MCP_DOWNLOAD_DIR, else a garmin folder in the Downloads directory; paths that lead outside it are rejected.
garmin_get_activityGet activityFull detail for one activity: summary metrics (distance, time, pace, HR, power, cadence, elevation, training effect, calories), device and location metadata, and split/lap summaries. activity_id: activityId from garmin_search_activities or garmin_get_day.
garmin_get_activity_workoutsGet activity workoutsThe structured workout(s) followed during an activity, step by step with targets. activity_id: activityId from garmin_search_activities or garmin_get_day.
garmin_get_body_batteryGet body batteryDaily Body Battery: amount charged and drained, plus the events that moved it (sleep, activities, stress) with Garmin's feedback. start, end: YYYY-MM-DD inclusive (default: the 7 days ending today). Any length works; long ranges are fetched 31 days at a time. chunks: split each day into this many intervals (e.g. 24 for hourly) and include each interval's lowest and highest level. Omitted, the every-few-minutes readings are left out to keep the response small.
garmin_get_daily_summariesGet daily summariesDaily wellness summaries across a date range, grouped per day (movement, calories, heart rate, intensity minutes, stress, body battery, hydration, respiration, pulse ox, jet lag). About 1-2 KB per day, so for a long trend in one metric prefer garmin_get_steps, garmin_get_stress, or garmin_get_sleep_summaries. start, end: YYYY-MM-DD inclusive (default: the 7 days ending today). Ranges over a year are fetched in yearly requests.
garmin_get_daily_summaryGet daily summaryEvery all-day wellness total for one date: steps, distance, floors, total/active/BMR calories, intensity minutes, heart rate, stress, body battery, SpO2, respiration, and time active/sedentary/asleep. date: YYYY-MM-DD (default: today).
garmin_get_dayGet day overviewOne day at a glance: daily summary (steps, calories, intensity minutes, resting HR, stress, body battery), last night's sleep, HRV, body battery, stress, and the day's activities. A section Garmin has no data for yet comes back as {"error": ...} while the rest still load. date: YYYY-MM-DD (default: today).
garmin_get_fitness_ageGet fitness ageFitness age versus chronological age as of a date, the achievable fitness age, and the components behind it (vigorous days and minutes, resting heart rate, BMI or body fat %), or the reason none is available. date: YYYY-MM-DD (default: today). full_history_scan: search all history for the latest value; false limits it to the 28 days before date.
garmin_get_food_logGet food logFoods logged in Garmin Connect's nutrition tracker for a day, with serving sizes, calories and nutrients consumed, nutrition goals, and a per-meal breakdown. date: YYYY-MM-DD (default: today). meal_id: limit to one meal; ids appear in mealDetails of an unfiltered call. include_media: also return logged food photos.
garmin_get_heart_rateGet heart rateResting, minimum, and maximum heart rate for a day, the 7-day resting average, and any abnormal high/low heart rate alerts. date: YYYY-MM-DD (default: today). include_samples: also return the all-day readings (large).
garmin_get_heart_rate_zonesGet heart rate zonesHeart rate zone floors per sport, with the training method and the resting, max, and lactate threshold heart rates the zones were built on. generate_defaults: return Garmin's default zones when none are configured.
garmin_get_hrvGet HRV nightOne night of heart-rate variability: the summary (last-night average, 5-minute high, weekly average, baseline band, status) plus every reading taken during sleep. date: YYYY-MM-DD, the morning you woke up (default: today).
garmin_get_hrv_summariesGet HRV summariesNightly HRV summaries across a date range: last-night average, weekly average, baseline band, status, and Garmin's feedback. start, end: YYYY-MM-DD inclusive (default: the 7 days ending today).
garmin_get_hydrationGet hydrationDaily water intake, goal, estimated sweat loss, and intake logged during activities, all in mL. start, end: YYYY-MM-DD inclusive (default: the 7 days ending today). Any length works; long ranges are fetched 31 days at a time.
garmin_get_menstrual_cycleGet menstrual cycleMenstrual cycle summary as of a date: current phase, day in cycle, days until the next phase, period length, fertile window, predicted ovulation and cycle length, and pregnancy details when tracking a pregnancy. date: YYYY-MM-DD (default: today).
Show 11 more tools
garmin_get_menstrual_dayGet menstrual cycle dayOne day in detail: logged symptoms, flow, mood, and other entries, that day's cycle summary, and weekly weight goal ranges during pregnancy. date: YYYY-MM-DD (default: today). today: the reference date for predictions (default: today). reduced: return a lighter response. skip_baby_movement: leave out kick counts. include_analysis: add Garmin's cycle analysis.
garmin_get_profileGet profile settingsProfile settings: display name, measurement system and display formats, time zone, hydration units and containers, and preferred training days. Check measurementSystem before converting units for the user.
garmin_get_sleepGet sleepThe full sleep record for the night ending on date: sleep score and its components, deep/light/REM/awake seconds, start and end times, overnight heart rate, SpO2, respiration, sleep stress, naps, and Garmin's feedback. date: YYYY-MM-DD, the morning you woke up (default: today, i.e. last night).
garmin_get_sleep_summariesGet sleep summariesNightly sleep records across a date range, same fields as garmin_get_sleep. Use it for sleep trends. start, end: YYYY-MM-DD inclusive (default: the 7 days ending today). Any length works; long ranges are fetched 31 days at a time.
garmin_get_spo2Get SpO2Blood oxygen (pulse ox) for a day: average, lowest, latest, sleep average, 7-day average, hourly averages, and altitude acclimation. date: YYYY-MM-DD (default: today). include_samples: also return every individual reading (large).
garmin_get_stepsGet stepsDaily total steps, distance (meters), and step goal. start, end: YYYY-MM-DD inclusive (default: the 7 days ending today). Any length works; long ranges are fetched 28 days at a time.
garmin_get_stressGet stressDaily overall stress level (0-100) and seconds spent in high, medium, low, and rest stress. start, end: YYYY-MM-DD inclusive (default: the 7 days ending today). Any length works; long ranges are fetched 28 days at a time.
garmin_get_weightGet weightDaily weight summaries over a range, the range average, and the nearest weigh-ins before and after it (handy when the range itself has none). Weights are in grams; body composition (BMI, body fat %, muscle and bone mass) appears when a smart scale recorded it. start, end: YYYY-MM-DD inclusive (default: the 7 days ending today). include_all: list every weigh-in per day with its time and body composition, not just the latest.
garmin_get_weight_goalsGet weight goalsWeight goals in effect during a date range and their target ranges. start, end: YYYY-MM-DD inclusive (default: the 7 days ending today).
garmin_get_wellness_activitiesGet wellness activitiesWellness activities recorded by the device, each with its type, start and end time, per-metric summary values, and time in zones. Regular workouts like runs and rides are in garmin_search_activities instead. start, end: YYYY-MM-DD inclusive (default: the 7 days ending today).
garmin_search_activitiesSearch activitiesRecorded activities (runs, rides, swims, strength, dives, ...), newest first, with name, type, start time, distance, duration, pace/speed, HR, power, cadence, calories, elevation, and training effect. Pass an activityId to garmin_get_activity for splits and full detail. All filters are optional and combine: start, end: YYYY-MM-DD, by the activity's local start date. search: text in the activity name or description. activity_type: parent type key, e.g. running, cycling, swimming, strength_training, hiking, walking. activity_subtype: a child key such as trail_running or indoor_cycling. excluded…
Compare and alternatives
Featured in
Signals
- Stars
- 30
- Forks
- 3
- Open issues
- 0
- Contributors
- 2
- Weekly downloads
- 697
- Last commit
- Oct 24, 2026 (4 days ago)
- Last release
- Oct 22, 2026 (6 days ago)
- Last package publish
- Oct 22, 2026 (6 days ago)
From GitHub (fetched Oct 24, 2026) and the package registry.
Details
- Registry name
io.github.Mason-Levyy/garmin-personal-mcp- Version
- 0.1.1
- Auth
- API key
- Packages
- pypi garmin-personal-mcp
- License
- MIT
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
More from Mason-Levyy
Cite this page
Garmin Connect MCP server. Agent Mart. https://agentmart.dev/connectors/mason-levyy-garmin-personal-mcp (last updated 2026-10-24)