MCP server that provides access to Garmin Connect data including activities, training status, recovery metrics, sleep data, body battery, and workout information
14 tools with consistent verb-noun naming (get_*). All have descriptions (avg ~90 chars, within baseline 34-392). Input schemas present for all tools with proper type definitions. However, descriptions are generic and lack LLM-optimized guidance on WHEN to use each tool vs. similar ones. Parameter descriptions are minimal (e.g., 'Date in YYYY-MM-DD format (optional, defaults to today)' repeated across 6 tools). No output schemas documented. No error handling guidance. No tool annotations (readOnlyHint, etc.). Composition is sound, each tool has one responsibility, but descriptions don't explain dependencies or recovery paths.
Get a list of recent activities with optional filtering by date range and activity type
Get detailed information about a specific activity including splits, heart rate data, and training effect
Get body battery data including current level, daily pattern, and stress impact
Get calendar events including workouts, races, and notes
Get heart rate data including resting heart rate, heart rate zones, and daily pattern
Get recovery metrics including HRV (Heart Rate Variability), recovery time, and recovery status
No output schemas documented. LLMs cannot plan downstream calls or extract required fields without knowing response structure. All 14 tools lack return type documentation.
Descriptions are generic and lack LLM-optimized guidance. No explanation of WHEN to use each tool vs. similar ones (e.g., get_training_status vs. get_training_readiness). Descriptions average ~65 chars but lack context for tool selection.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 61 | 2026-07-28+ | v2 |
Get sleep data including sleep duration, sleep stages, sleep score, and sleep insights
Get daily steps data including step count, step goal, and daily pattern
Get stress data including current stress level, daily pattern, and stress insights
Get training readiness score and assessment based on sleep, stress, and recovery metrics
Get current training status including productivity level, training load, and recommendations
Get the user's Garmin profile information including name, email, timezone, and unit preferences
Get VO2max data including current VO2max estimate, trend, and training effect on VO2max
Get scheduled workouts from Garmin Coach including workout details, steps, and targets
No error handling guidance. Tools lack recovery hints (e.g., 'If authentication fails, check GARMIN_USERNAME and GARMIN_PASSWORD environment variables'). No categorization of retryable vs. fatal errors.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint). All tools are read-only but lack explicit annotation. Agents cannot infer safety properties without annotations.
Parameter descriptions are repetitive and minimal. Six tools with date parameters all say 'Date in YYYY-MM-DD format (optional, defaults to today)' without explaining what the date filters or why it matters.