Garmin Connect MCP Server

Local setup required. This server has to be cloned and prepared on your machine before you register it in Claude Code.
1

Set the server up locally

Run this once to clone and prepare the server before adding it to Claude Code.

Run in terminal
git clone https://github.com/leewnsdud/garmin-connect-mcp.git
cd garmin-connect-mcp
uv sync
2

Register it in Claude Code

After the local setup is done, run this command to point Claude Code at the built server.

Run in terminal
claude mcp add garmin-connect-mcp -- node "<FULL_PATH_TO_GARMIN_CONNECT_MCP>/dist/index.js"

Replace <FULL_PATH_TO_GARMIN_CONNECT_MCP>/dist/index.js with the actual folder you prepared in step 1.

README.md

Integrate Garmin Connect running data with LLMs for analysis and training.

garmin-mcp

Garmin Connect 러닝 데이터를 LLM에 제공하는 MCP(Model Context Protocol) 서버입니다.

Claude Desktop 등 MCP 클라이언트와 연동하여 러닝 훈련 분석, 계획 수립, 워크아웃 생성 등을 수행할 수 있습니다.

주요 기능

  • 러닝 활동 조회 - 최근 활동, 날짜별 조회, 상세 분석, 스플릿 데이터 (47개 필드: 페이스, 심박, 케이던스, 러닝 다이나믹스, 파워, HR존, GAP, 경사도, 스태미나, 온도 등)
  • 트레일러닝 분석 - ClimbPro 경사 구간 분석, 등급별 난이도, Grade Adjusted Pace, Run/Walk Detection, 날씨 조건
  • 주간/월간 요약 - 볼륨 트렌드, 전월 대비 비교
  • 훈련 지표 - VO2max, 훈련 상태, 훈련 준비도, 레이스 예측, 젖산역치
  • 심박/HRV - 일간 심박, 심박변이도, 활동별 심박존 분포
  • 웰니스 - 수면, 스트레스, 바디배터리, SpO2
  • 개인 기록/목표 - PR, 피트니스 목표
  • 워크아웃 생성 - 시간/거리 기반 인터벌, 템포 등 구조화된 워크아웃을 Garmin 워치에 전송 (페이스/심박/케이던스/파워 타겟)
  • 러닝화 관리 - 신발별 누적 거리 + 마모율 추적
  • 개인정보 보호 - 모든 API 응답에서 PII(소유자 이름, 프로필 ID, GPS 좌표) 자동 필터링

요구 사항

  • Python 3.10+
  • uv 패키지 매니저
  • Garmin Connect 계정

설치

git clone https://github.com/leewnsdud/garmin-connect-mcp.git
cd garmin-connect-mcp
uv sync

인증

최초 1회 인증이 필요합니다.

uv run python scripts/auth.py

이메일, 비밀번호를 입력하면 OAuth 토큰이 ~/.garminconnect/에 저장됩니다. MFA 사용 시 코드 입력 프롬프트가 나타납니다.

토큰이 만료되면 다시 실행하거나, .env 파일에 자격증명을 설정하면 자동 갱신됩니다.

Claude Desktop 연동

~/Library/Application Support/Claude/claude_desktop_config.json에 추가:

{
  "mcpServers": {
    "garmin-mcp": {
      "command": "/Users/<username>/.local/bin/uv",
      "args": [
        "--directory",
        "/path/to/garmin-mcp",
        "run",
        "garmin-mcp"
      ]
    }
  }
}

uv의 전체 경로를 사용해야 합니다. which uv로 확인하세요.

설정 후 Claude Desktop을 재시작하면 도구가 활성화됩니다.

환경 변수 (선택)

.env.example을 참고하여 .env 파일을 생성합니다.

변수 설명 기본값
GARMIN_EMAIL Garmin Connect 이메일 -
GARMIN_PASSWORD Garmin Connect 비밀번호 -
GARMIN_TOKEN_DIR 토큰 저장 경로 ~/.garminconnect
GARMINTOKENS Base64 인코딩 토큰 (CI/Docker용) -

제공 도구 (24개)

Activities

도구 설명 주요 파라미터
get_recent_activities 최근 러닝 활동 목록 (GAP, RWD 포함) count (기본 20, 최대 100)
get_activities_by_date 날짜 범위로 러닝 활동 조회 start_date, end_date
get_activity_detail 활동 상세 정보 (스태미나, 임팩트 로드 포함) activity_id
get_activity_splits km별 스플릿 데이터 activity_id
get_activity_weather 활동 중 날씨 조건 (온도, 습도, 풍속) activity_id
get_activity_typed_splits ClimbPro 경사 구간 분석 (등급, GAP) activity_id

Summary

도구 설명 주요 파라미터
get_weekly_running_summary 주간 러닝 요약 end_date, weeks (최대 12)
get_monthly_running_summary 월간 러닝 요약 + 전월 비교 year, month

Training

도구 설명 주요 파라미터
get_training_status 훈련 상태 date
get_training_readiness 훈련 준비도 점수 date
get_vo2max_and_fitness VO2max + 피트니스 나이 date
get_race_predictions 5K/10K/하프/풀 예상 기록 없음
get_lactate_threshold 젖산역치 심박/페이스 start_date, end_date

Heart Rate

도구 설명 주요 파라미터
get_heart_rate_data 일간 심박 데이터 date
get_hrv_data 심박변이도 (HRV) date
get_activity_hr_zones 활동별 심박존 분포 activity_id

Wellness

도구 설명 주요 파라미터
get_sleep_data 수면 데이터 date
get_daily_wellness 스트레스/바디배터리/SpO2/호흡수 date
get_weekly_wellness_summary 주간 웰니스 트렌드 end_date, weeks (최대 4)

Records & Goals

도구 설명 주요 파라미터
get_personal_records 개인 기록 (1K~마라톤) 없음
get_goals 피트니스 목표 status (active/completed/all)

Workout

도구 설명 주요 파라미터
create_running_workout 워크아웃 생성 및 Garmin에 업로드 (시간/거리 기반, 페이스/심박/케이던스/파워 타겟) name, steps, description
get_workouts 저장된 워크아웃 목록 count (기본 20, 최대 100)

Gear

도구 설명 주요 파라미터
get_running_gear 러닝화 목록 + 누적 거리 + 마모율 없음

워크아웃 생성 가이드

create_running_workout으로 구조화된 러닝 워크아웃을 생성하고 Garmin 워치에 동기화할 수 있습니다.

Step 타입

타입 설명
warmup 워밍업
interval 인터벌 (고강도)
recovery 회복 조깅
rest 완전 휴식 (서서 쉬기)
cooldown 쿨다운
repeat 반복 그룹

종료 조건 (Step 기간)

필드 타입 설명 예시
duration_seconds int 시간 기반 "duration_seconds": 300 (5분)
distance_meters int 거리 기반 "distance_meters": 1000 (1km)

하나의 워크아웃에서 시간/거리 기반 step을 혼합 사용할 수 있습니다.

Target 타입

타입 값 형식 예시
pace min:sec/km "min": "4:30", "max": "4:50"
heart_rate bpm "min": 140, "max": 155
cadence spm "min": 170, "max": 185
power watts "min": 280, "max": 320

옵션

  • 워크아웃 메모: description 파라미터로 전체 설명 추가
  • Step 메모: 각 step에 "description": "메모" 추가
  • 마지막 회복 건너뛰기: repeat step에 "skip_last_rest": true 추가

예시: 4x1km 거리 기반 인터벌

{
  "name": "4x1km Intervals @4:30",
  "description": "10K 레이스 대비 VO2max 인터벌",
  "steps": [
    {
      "typ

Tools (5)

get_recent_activitiesRetrieve recent running activities including performance metrics.
get_activity_detailGet detailed analysis for a specific activity.
get_training_statusCheck current training status.
create_running_workoutCreate and upload a structured workout to Garmin Connect.
get_daily_wellnessRetrieve stress, body battery, SpO2, and respiratory data.

Environment Variables

GARMIN_EMAILGarmin Connect email address
GARMIN_PASSWORDGarmin Connect password
GARMIN_TOKEN_DIRDirectory path to store OAuth tokens

Configuration

claude_desktop_config.json
{"mcpServers": {"garmin-mcp": {"command": "/Users/<username>/.local/bin/uv", "args": ["--directory", "/path/to/garmin-mcp", "run", "garmin-mcp"]}}}

Try it

Analyze my last 5 runs and tell me if my training load is increasing too quickly.
What is my current VO2max and how does it compare to my race predictions?
Create a structured workout for tomorrow: 10 minutes warmup, 4x1km intervals at 4:30 pace, and 5 minutes cooldown.
Summarize my body battery and stress levels for the past week to see if I am recovering well.
Show me my personal records for 5K and 10K distances.

Frequently Asked Questions

What are the key features of Garmin Connect MCP?

Detailed running activity analysis including pace, heart rate, and power metrics.. Training load and readiness tracking including VO2max and lactate threshold.. Structured workout creation and synchronization to Garmin devices.. Wellness monitoring including sleep, stress, and body battery data.. Automatic PII filtering for privacy protection..

What can I use Garmin Connect MCP for?

Generating personalized training plans based on current fitness and recovery status.. Analyzing performance trends over time to optimize race preparation.. Creating complex interval workouts via natural language and syncing them to a Garmin watch.. Monitoring recovery metrics like HRV and sleep to adjust training intensity..

How do I install Garmin Connect MCP?

Install Garmin Connect MCP by running: git clone https://github.com/leewnsdud/garmin-connect-mcp.git && cd garmin-connect-mcp && uv sync

What MCP clients work with Garmin Connect MCP?

Garmin Connect MCP works with any MCP-compatible client including Claude Desktop, Claude Code, Cursor, and other editors with MCP support.

Turn this server into reusable context

Keep Garmin Connect MCP docs, env vars, and workflow notes in Conare so your agent carries them across sessions.

Need the old visual installer? Open Conare IDE.
Open Conare