mcp-garmin
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| get_body_weightC | Body weight for a day (YYYY-MM-DD) — grams, BMI, body fat, etc. |
| get_weight_historyB | Weight history for the last N days (up to end, YYYY-MM-DD). |
| get_blood_pressureB | Blood pressure reading for a day (YYYY-MM-DD). |
| get_body_batteryB | Body Battery readings for a day (YYYY-MM-DD). |
| get_body_battery_stressC | Body Battery + stress summary for a day (YYYY-MM-DD). |
| get_body_battery_stress_historyB | Body Battery + stress history for the last N days (up to end). |
| get_daily_heart_rateB | Daily heart rate for a day (YYYY-MM-DD): max, min, resting. |
| get_hrvB | HRV history for the last N days (period=days, up to end, YYYY-MM-DD). |
| get_resting_heart_rateA | Resting heart rate history for the last N days (up to end, YYYY-MM-DD). |
| get_sleepB | Sleep data for a day (YYYY-MM-DD) including sleep stage time blocks. |
| get_sleep_detailB | Sleep details (daily data) for a day (YYYY-MM-DD). |
| get_sleep_summaryB | Daily summary for a day (YYYY-MM-DD). Returns only sleep-related fields if available, otherwise the full dict. |
| get_daily_stressB | Stress history for the last N days (period=days, up to end, YYYY-MM-DD). |
| get_weekly_stressB | Stress history for the last 7 days (up to end, YYYY-MM-DD). |
| get_training_status_dailyB | Training status for a day (YYYY-MM-DD). |
| get_training_status_weeklyB | Training status for the last week (up to end, YYYY-MM-DD). |
| get_training_status_monthlyB | Training status for the last month (up to end, YYYY-MM-DD). |
| get_training_readinessB | Morning Training Readiness for a day (YYYY-MM-DD). |
| get_morning_readinessA | Morning Readiness for a day (YYYY-MM-DD) — alias for get_training_readiness. |
| get_daily_stepsB | Step count for the last day (period=1, up to end, YYYY-MM-DD). |
| get_weekly_stepsB | Step count for the last 7 days (period=7, up to end, YYYY-MM-DD). |
| get_daily_summaryB | Daily summary for a day (YYYY-MM-DD): steps, calories, heart rate. |
| get_daily_summary_historyA | Daily summary history for the last N days (up to end, YYYY-MM-DD). |
| get_daily_hydrationB | Fluid intake including daily goal for a day (YYYY-MM-DD). |
| get_hydration_historyA | Fluid intake history for the last N days (period=days, up to end, YYYY-MM-DD). |
| get_activitiesC | List of recent activities (limit/start pagination). |
| get_activity_detailC | Details for a single activity (activity_id). |
| get_activity_mapC | Map data (GPS track) for an activity (activity_id). |
| get_fitness_activitiesC | Fitness activities (steps/calories) for the last N days (up to end). |
| get_personal_recordsC | All personal records. |
| get_personal_record_typesC | Available record types. |
| get_device_infoA | Active Garmin device: type, name, battery level. |
| get_connected_devicesA | List of all connected Garmin devices. |
| get_nutrition_logB | Nutrition log for a day (YYYY-MM-DD) — calories, macros, meals. |
| get_nutrition_statusB | Nutrition status: current calorie goals and consumption. |
| get_steps_goalB | Steps goal for a day (YYYY-MM-DD) — device + user + sync status. |
| get_weight_goalB | Weight goal for a day (YYYY-MM-DD) — target + target ranges. |
| get_garmin_scoresA | Garmin fitness scores for a day (YYYY-MM-DD) — Vo2Max, Endurance, Power. |
| get_user_profileB | Garmin user profile: name, email, age, sex, height, location. |
| get_user_settingsB | User settings: VO2Max, thresholds, measurement system, sleep times. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 40 tools
Many tools have unclear or overlapping boundaries: get_sleep, get_sleep_detail, and get_sleep_summary all appear to return daily sleep data with no crisp distinction, while get_training_readiness and get_morning_readiness are explicit duplicates. The many body battery/stress and daily/weekly variants further blur selection.
All tools follow a consistent get_<domain> snake_case pattern, which is predictable. However, suffixes like _detail, _summary, _history, and _status are used inconsistently, and duplicate alias names add minor confusion.
40 tools is well beyond the typical well-scoped range and feels heavy for a read-only health data server. Many endpoints could be consolidated into parameterized fetch functions (e.g., period, date range, and detail level).
The server covers a broad range of Garmin health data: weight, heart, HRV, sleep, stress, training, steps, hydration, activities, records, devices, nutrition, and goals. It is mostly complete for read-only access, though a few history variants and some single-day-only metrics are missing.