
benediktwen/garmin-connect-mcp
Developer toolsЭта страница переведена автоматически. Технические детали смотрите в оригинале. Открыть оригинал
Remote MCP server for Garmin Connect — GitHub OAuth, no local setup required
Обзор
Remote MCP server for Garmin Connect. Gives AI assistants access to your Garmin health and activity data over the internet — no local server or app required. Built on top of Taxuspt/garmin_mcp and cyberjunky/python-garminconnect. Taxuspt's original server runs locally on your machine and requires a locally installed AI desktop client. This version runs as a cloud service, protected by GitHub OAuth, so it works from any MCP-compatible AI assistant on any device — without running anything locally. Exposes ~150 Garmin Connect tools so AI assistants can query your health data directly: - Health & Wellness: sleep, HRV, stress, body battery, heart rate, SpO2, respiration, recovery time - Activities: runs, rides, swims — with splits, weather, HR zones, FIT file analysis - Training: readiness, status, VO2max, load, running tolerance, acclimation, trends - Body composition, weight, hydration, energy balance - Workouts (incl.
README
Показан фрагмент оригинального README. Открыть оригинал.
Garmin Connect MCP
Remote MCP server for Garmin Connect. Gives AI assistants access to your Garmin health and activity data over the internet — no local server or app required.
Built on top of Taxuspt/garmin_mcp and cyberjunky/python-garminconnect.
What makes this different from Taxuspt/garmin_mcp
Taxuspt’s original server runs locally on your machine and requires a locally installed AI desktop client. This version runs as a cloud service, protected by GitHub OAuth, so it works from any MCP-compatible AI assistant on any device — without running anything locally.
What it does
Exposes ~150 Garmin Connect tools so AI assistants can query your health data directly:
- Health & Wellness: sleep, HRV, stress, body battery, heart rate, SpO2, respiration, recovery time
- Activities: runs, rides, swims — with splits, weather, HR zones, FIT file analysis
- Training: readiness, status, VO2max, load, running tolerance, acclimation, trends
- Body composition, weight, hydration, energy balance
- Workouts (incl. builders and Garmin Coach), gear, nutrition, courses, calendar events, challenges
The tool modules are kept in sync with Taxuspt/garmin_mcp; this repo adds the remote server layer (GitHub OAuth, persistent token stores, filesystem-tool block).
Choosing which tools are exposed
Every tool definition is sent to the AI assistant with each conversation, so ~150 tools
cost noticeably more context than a focused set. Use GARMIN_ENABLED_TOOLS (allowlist)
or GARMIN_DISABLED_TOOLS (denylist) — comma-separated tool names — to expose only what
you need. Unknown names are logged at startup.
Blocked filesystem tools
download_activity_file, download_course_gpx, set_fit_download_dir and
upload_course read or write arbitrary paths on the server. That is fine for a local
single-user install, but on a remote server one (possibly prompt-injected) call could
overwrite the OAuth token store, the Garmin token or the application code. They are
never registered here, whatever the tool filter says.
How it works
AI assistant → /authorize → GitHub login (+ 2FA) → /auth/callback
→ username verified → MCP access token issued → MCP connection
Access is protected by GitHub OAuth — only the GitHub account set in
GITHUB_ALLOWED_USER_ID can authenticate. GitHub login with 2FA is required
once every 30 days; tokens are persisted to a token store (file or Redis). No credentials are stored
in the AI assistant’s configuration.
- The AI assistant detects the MCP server requires OAuth
- A browser window opens — you log in to GitHub with 2FA
- The server verifies your GitHub account matches
GITHUB_ALLOWED_USER_ID - The AI assistant receives a 30-day access token and a 30-day refresh token
Restart note: OAuth tokens are persisted to the token store, so
Установка
docker run -d --env-file .env -p 8000:8000 \