Garmin MCP Server
Fitness and health data integration providing access to Garmin Connect activity analytics.
Data last scanned today · Reviewed today
Overview
This MCP server bridges Garmin Connect with AI assistants, exposing a comprehensive library of over 110 tools. It enables users to query health metrics like heart rate, sleep, and respiration, alongside deep training performance data such as VO2 max trends, HRV, and cycling power analytics. The server relies on the python-garminconnect library to interface with your account data. Beyond data retrieval, the server supports activity management, allowing users to modify metadata, edit workout details, and log nutritional information. Advanced users can parse FIT files, download activity records in various formats, or utilize the workout builders to schedule training plans directly through their AI interface.
Our verdict
This server carries a high risk level with a security score of 45/100, primarily due to it being a community-maintained project that has not yet undergone independent editorial or security review. While it offers extensive functionality, the lack of verified authentication and read-only mode protocols means users should exercise caution before connecting personal health data. It is currently suitable for experimental or personal testing environments rather than sensitive data workflows.
- Over 110 tools covering 90 percent of the Garmin API
- Zero direct dependencies minimize the software supply chain surface
- Supports writing data for activity metadata and workout scheduling
- Active repository with 37 contributors and recent commits
- Security score of 45/100 indicates high risk for users
- Authentication and read-only mode methods remain unverified
- Community-maintained without official vendor oversight or review
Tools
| Tool | Description | Risk |
|---|---|---|
| download_activity_file | Downloads the activity and saves it to the configured directory. | low |
| set_fit_download_dir | Sets and persists the default download directory. | medium |
| create_walk_run_workout | Creates a walk/run interval workout with optional heart-rate zone target. | medium |
| create_z2_walk_workout | Creates a steady Z2 walking workout. | medium |
| create_strength_workout | Creates a strength workout from a list of exercises. | medium |
| schedule_week | Schedules multiple workouts in one call. | medium |
Compatibility
| Client | Local | Docker | Remote | Read-only |
|---|---|---|---|---|
| ChatGPT | ||||
| Claude Desktop | ||||
| Cursor | ||||
| VS Code | ||||
| Windsurf |
Frequently asked questions
›Can I limit the number of tools exposed to the LLM?
Yes, you can use the GARMIN_ENABLED_TOOLS environment variable to specify an allowlist of tools, or the GARMIN_DISABLED_TOOLS variable to specify a denylist.
›How do I configure where activity files are downloaded?
You can set the download path using the set_fit_download_dir tool, define the GARMIN_FIT_DOWNLOAD_DIR environment variable, or provide an output_dir argument during the download call.
›Are there any requirements for using the Activity Analysis tools?
Yes, these tools require a compatible power meter and/or electronic shifting components like Shimano Di2 or SRAM eTap to function.
›Are destructive operations like deleting activities supported?
No, certain destructive operations such as delete_activity and delete_blood_pressure have been intentionally excluded from the implementation.
›Why is the get_activity_details tool not available?
This endpoint was excluded due to the high volume of data returned, such as large GPS tracks and chart data, in favor of using get_activity for summaries.
Alternatives
Changelog
- NewGarmin MCP DXT 0.1.0
2026-05-08
Badge
Maintain this server? Add the live badge to your README.