
k8sautom8/garmin_mcp
Developer toolsこのページは AI により自動翻訳されています。技術的な詳細は原文をご確認ください。 原文を見る
garmin_mcp for Garmin Connect with MFA
概要
This Model Context Protocol (MCP) server connects to Garmin Connect and exposes your fitness and health data to OpenWebUI, Claude or any other MCP-compatible clients via Streamable HTTP transport. Credits: https://github.com/Taxuspt/garmin_mcp - covering: - Activity management (list, get details, splits, weather, gear) - Health & wellness metrics (steps, heart rate, sleep, stress, body battery) - Training & performance data (VO2 Max, HRV, training effect, fitness age) - Device management - Gear tracking - Weight management - Challenges & badges - Workouts - Women's health data - Data management (add body composition, blood pressure, hydration) - Personalised training and diet recommedations - - Network-accessible MCP server for Kubernetes/container deployments - - OAuth tokens cached to avoid repeated MFA prompts - - Supports containerised deployments with environment-based MFA codes - Python 3.10+ (3.
README
以下は原文 README の抜粋です。原文を見る。
Garmin MCP Server
This Model Context Protocol (MCP) server connects to Garmin Connect and exposes your fitness and health data to OpenWebUI, Claude or any other MCP-compatible clients via Streamable HTTP transport.
Credits: https://github.com/Taxuspt/garmin_mcp
Features
-
78+ MCP Tools covering:
- Activity management (list, get details, splits, weather, gear)
- Health & wellness metrics (steps, heart rate, sleep, stress, body battery)
- Training & performance data (VO2 Max, HRV, training effect, fitness age)
- Device management
- Gear tracking
- Weight management
- Challenges & badges
- Workouts
- Women’s health data
- Data management (add body composition, blood pressure, hydration)
- Personalised training and diet recommedations
-
Streamable HTTP Transport - Network-accessible MCP server for Kubernetes/container deployments
-
Token Persistence - OAuth tokens cached to avoid repeated MFA prompts
-
Non-interactive MFA - Supports containerised deployments with environment-based MFA codes
Prerequisites
- Python 3.10+ (3.12 recommended)
- Garmin Connect account credentials
- For Kubernetes: kubectl access to your cluster
Deployment Options
1. Standalone (Local Development)
Installation
# Clone the repository
git clone
cd garmin_mcp
# Install dependencies
uv sync
Running
With stdio transport (for MCP clients like Claude Desktop):
export GARMIN_EMAIL="[email protected]"
export GARMIN_PASSWORD="your-password"
export GARMIN_MCP_TRANSPORT="stdio"
uv run garmin-mcp
With Streamable HTTP transport (for network access):
export GARMIN_EMAIL="[email protected]"
export GARMIN_PASSWORD="your-password"
export GARMIN_MCP_TRANSPORT="streamable-http"
export GARMIN_MCP_HOST="0.0.0.0"
export GARMIN_MCP_PORT="8000"
uv run garmin-mcp
The server will be accessible at http://localhost:8000/mcp
First-Time Setup (MFA - Only if enabled on Garmin Connect)
If you have MFA enabled on your Garmin Connect account, you’ll need to provide the 2FA code on first run. You have two options:
Option A: Interactive (for local development)
- The server will prompt for the MFA code in the terminal
Option B: Non-interactive (for automation)
export GARMIN_MFA_CODE="123456" # Code from email/SMS
export GARMIN_MFA_WAIT_SECONDS="180" # Optional: wait up to 180s for code to appear
Note: If MFA is not enabled on your Garmin Connect account, you can skip these environment variables.
After successful login, OAuth tokens are saved to ~/.garminconnect and future runs won’t require MFA until tokens expire.
Configuration with Claude Desktop
Edit your Claude Desktop configuration:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"garmin": {
"command": "uv",
インストール
docker run --rm -it \設定
{
"mcpServers": {
"garmin": {
"command": "uv",
"args": ["run", "garmin-mcp"],
"env": {
"GARMIN_EMAIL": "[email protected]",
"GARMIN_PASSWORD": "your-password",
"GARMIN_MCP_TRANSPORT": "stdio"
}
}
}
}