BG

benediktwen/garmin-connect-mcp

Developer tools

Эта страница переведена автоматически. Технические детали смотрите в оригинале. Открыть оригинал

0 stars 17 forks Качество 70 Тренд 14MIT

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.

  1. The AI assistant detects the MCP server requires OAuth
  2. A browser window opens — you log in to GitHub with 2FA
  3. The server verifies your GitHub account matches GITHUB_ALLOWED_USER_ID
  4. 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

Открыть полный README на GitHub

Установка

docker run -d --env-file .env -p 8000:8000 \
Новичок в MCP? Начните с руководства на mcpskill.org →