- Home
- MCP servers
- Garmin Connect
Garmin Connect
- typescript
0
GitHub Stars
typescript
Language
6 months ago
First Indexed
3 months ago
Catalog Refreshed
Documentation & install
Readme and setup notes from the catalogue, plus a client-ready config you can copy for your MCP host.
Installation
Add the following to your MCP client configuration file.
Configuration
View docs{
"mcpServers": {
"sedoglia-garmin-mcp-ts": {
"command": "node",
"args": [
"C:\\\\percorso\\\\a\\\\garmin-mcp-ts\\\\dist\\\\index.js"
]
}
}
}You can run a Model Context Protocol (MCP) server that connects Garmin Connect data to your preferred client, letting you ask natural-language questions about your activities, health metrics, sleep, and more. This guide shows you how to install, configure, and use the Garmin Connect MCP Server so you can explore your Garmin data with ease.
How to use
You will run a local MCP server that exposes Garmin Connect data to your MCP client. Start the server, then connect your client to it using the MCP URL or local executable path provided in the configuration. You can ask questions like about recent activities, health metrics, sleep details, workout plans, and advanced analytics. Use natural language prompts to explore data, generate insights, and request task automation such as downloading a workout or checking your training readiness.
How to install
Prerequisites you need before installing: Node.js 18.0 or higher, npm 8.0 or higher, Claude Desktop installed, and a Garmin Connect account with valid credentials.
Step-by-step installation flow for a quick setup (Bundle Precompiled is recommended):
# Step 1: Install the secure vault helper (recommended for security)
npm install keytar
# Step 2: Download the prebuilt MCP bundle
wget https://github.com/sedoglia/garmin-mcp-ts/releases/download/v4.0.0/diabetes-m-mcp.mcpb
# Step 3: Verify integrity (optional)
wget https://github.com/sedoglia/garmin-mcp-ts/releases/download/v4.0.0/diabetes-m-mcp.mcpb.sha256
sha256sum -c garmin-mcp-ts.mcpb.sha256
# Step 4: Install the Claude Desktop extension (recommended method)
# This is performed inside Claude Desktop following the on-screen prompts
Configure credentials securely in Claude Desktop or by following the provided setup steps to encrypt Garmin credentials and store tokens locally. Do not save credentials in plain text. After installation, restart Claude Desktop and verify the Garmin MCP extension is active in Settings → Developer.
If you prefer manual setup or want to run from source, you can clone the project, install dependencies, and build it, then configure the MCP server in Claude Desktop. Detailed steps for the clone-based flow are provided in the next section.
Additional configuration and security notes
The MCP server stores credentials and tokens locally using AES-256-GCM encryption. A two-tier security model keeps the encryption key in the operating system’s vault (Windows Credential Manager, macOS Keychain, or Linux Secret Service). If the native vault is unavailable, a fallback encrypted file is used. Your Garmin credentials are never stored in plain text.
To verify the encryption setup, you can run a diagnostic script that checks the encryption state and key storage. This helps ensure that both the key and the credentials are protected.
# Optional: check the encryption status (from the project directory)
npm run check-encryption
# Optional: test keytar integration (if available locally)
npm run test-keytar
Server connection configuration (MCP entry points)
You can run the Garmin MCP server locally as a stdio server. The following runtime configurations are provided as examples for the local setup.
{
"mcpServers": {
"garmin_win": {
"type": "stdio",
"name": "garmin_win",
"command": "node",
"args": ["C:\\percorso\\a\\garmin-mcp-ts\\dist\\index.js"]
},
"garmin_unix": {
"type": "stdio",
"name": "garmin_unix",
"command": "node",
"args": ["/percorso/a/garmin-mcp-ts/dist/index.js"]
}
}
}
Troubleshooting and tips
If the server does not appear in Claude Desktop, verify that the path to dist/index.js is correct in the configuration, ensure the JSON syntax is valid, then restart Claude Desktop and check the logs for errors.
Common issues include authentication failures due to incorrect Garmin credentials, rate limiting from Garmin, or missing encryption keys. Recheck credentials, ensure you can log into Garmin Connect manually, and wait a bit if you encounter rate limits.
Available tools
get_activity_comments
Obtain comments on a specific activity.
get_activity_details
Fetch detailed information for a specific activity.
get_health_metrics
Retrieve daily health metrics (steps, heart rate, VO2 max).
get_sleep_data
Get detailed sleep information (duration, quality, stages).
get_workouts
Retrieve planned workouts.
get_devices
List connected Garmin devices.
get_user_profile
Fetch user profile details.
get_training_load
Weekly training load and balance metrics.
get_load_ratio
Acute-to-ch chronic load ratio, injury risk indicator.
get_performance_condition
Current performance condition during activity.
compare_activities
Compare 2-5 activities side by side.
find_similar_activities
Find similar activities by type/distance/duration (20% tolerance).
analyze_training_period
Comprehensive trends, volume, and training patterns.
get_all_gear
List all gear and their details (requires UUID from Garmin Connect).
get_courses
Retrieve saved courses/routes.
get_sleep_movement
Sleep movement and restlessness data.
get_training_plans
List available training plans.
get_training_plan_by_id
Get details for a specific training plan.
get_menstrual_data
Fetch menstrual data for a given date.
get_pregnancy_summary
Obtain pregnancy-related summary.
get_gear_activities
Get activities associated with a gear (requires UUID).