garmin-connect-mcp

garmin-connect-mcp

An MCP server that provides access to Garmin Connect fitness, health, and training data through 61 specialized tools. It enables users to query activities, sleep metrics, and performance stats directly within AI clients like Claude or Cursor.

Category
访问服务器

README

garmin-connect-mcp

MCP server for Garmin Connect. Access your fitness, health, and training data from Claude Code, Claude Desktop, Cursor, Windsurf, or any MCP client.

61 tools across 7 categories: activities, daily health, trends, sleep, body composition, performance/training, and profile/devices.

API endpoints and authentication flow based on python-garminconnect by cyberjunky.

Requirements

  • Node.js 20+
  • A Garmin Connect account (email and password)

Installation

Claude Code

claude mcp add garmin -e GARMIN_EMAIL=you@email.com -e GARMIN_PASSWORD=yourpass -- npx -y @nicolasvegam/garmin-connect-mcp

Claude Desktop

Add to ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows):

{
  "mcpServers": {
    "garmin": {
      "command": "npx",
      "args": ["-y", "@nicolasvegam/garmin-connect-mcp"],
      "env": {
        "GARMIN_EMAIL": "you@email.com",
        "GARMIN_PASSWORD": "yourpass"
      }
    }
  }
}

Cursor

Add to .cursor/mcp.json in your project root:

{
  "mcpServers": {
    "garmin": {
      "command": "npx",
      "args": ["-y", "@nicolasvegam/garmin-connect-mcp"],
      "env": {
        "GARMIN_EMAIL": "you@email.com",
        "GARMIN_PASSWORD": "yourpass"
      }
    }
  }
}

Windsurf

Add to ~/.codeium/windsurf/mcp_config.json:

{
  "mcpServers": {
    "garmin": {
      "command": "npx",
      "args": ["-y", "@nicolasvegam/garmin-connect-mcp"],
      "env": {
        "GARMIN_EMAIL": "you@email.com",
        "GARMIN_PASSWORD": "yourpass"
      }
    }
  }
}

Any MCP Client

Run the server with environment variables:

GARMIN_EMAIL=you@email.com GARMIN_PASSWORD=yourpass npx -y @nicolasvegam/garmin-connect-mcp

The server communicates over stdio using the Model Context Protocol.

Available Tools

Activities (12 tools)

Tool Description
get_activities List recent activities with pagination
get_activities_by_date Search activities within a date range
get_last_activity Get the most recent activity
count_activities Get total number of activities
get_activity Summary data for a specific activity
get_activity_details Detailed metrics: HR, pace, elevation time series
get_activity_splits Per-km or per-mile split data
get_activity_weather Weather conditions during activity
get_activity_hr_zones Time in each heart rate zone
get_activity_exercise_sets Strength training sets (reps, weight)
get_activity_types All available activity types
get_progress_summary Fitness stats over a date range by activity type

Daily Health (14 tools)

Tool Description
get_daily_summary Full daily summary (steps, calories, distance, etc.)
get_steps Step count for a date
get_steps_chart Intraday step data throughout the day
get_heart_rate Heart rate data (resting, max, zones, time series)
get_resting_heart_rate Resting heart rate for a date
get_stress Stress levels and time series
get_body_battery Body Battery energy levels (date range)
get_body_battery_events Battery charge/drain events for a day
get_respiration Breathing rate data
get_spo2 Blood oxygen saturation
get_intensity_minutes Moderate/vigorous intensity minutes
get_floors Floors climbed chart data
get_hydration Daily hydration/water intake
get_daily_events Daily wellness events

Trends (4 tools)

Tool Description
get_daily_steps_range Daily step counts over a date range
get_weekly_steps Weekly step aggregates
get_weekly_stress Weekly stress aggregates
get_weekly_intensity_minutes Weekly intensity minutes

Sleep (2 tools)

Tool Description
get_sleep_data Sleep stages, score, bed/wake times
get_sleep_data_raw Raw sleep data with HR and SpO2

Body Composition (5 tools)

Tool Description
get_body_composition Weight, BMI, body fat %, muscle mass (date range)
get_latest_weight Most recent weight entry
get_daily_weigh_ins All weigh-ins for a date
get_weigh_ins Weigh-in records over a date range
get_blood_pressure Blood pressure readings (date range)

Performance & Training (11 tools)

Tool Description
get_vo2max VO2 Max estimate (running/cycling)
get_training_readiness Training Readiness score
get_training_status Training status and load
get_hrv Heart Rate Variability
get_endurance_score Endurance fitness score
get_hill_score Climbing performance score
get_race_predictions 5K/10K/half/full marathon predictions
get_fitness_age Estimated fitness age
get_personal_records All personal records
get_lactate_threshold Lactate threshold HR and pace
get_cycling_ftp Functional Threshold Power (cycling)

Profile & Devices (13 tools)

Tool Description
get_user_profile User social profile and preferences
get_user_settings User settings, measurement system, sleep schedule
get_devices Registered Garmin devices
get_device_settings Settings for a specific device
get_device_last_used Last used device info
get_primary_training_device Primary training device
get_device_solar_data Solar charging data
get_gear All tracked gear/equipment
get_gear_stats Usage stats for a gear item
get_goals Active goals and progress
get_earned_badges Earned badges and achievements
get_workouts Saved workouts
get_workout Specific workout by ID

Authentication

Uses Garmin Connect credentials (email/password) via environment variables. OAuth tokens are cached in ~/.garmin-mcp/ to avoid re-authentication on each request.

MFA (Multi-Factor Authentication)

If your Garmin account has MFA enabled (required for devices with ECG capabilities), you need to run the interactive setup once before using the MCP server:

GARMIN_EMAIL='you@email.com' GARMIN_PASSWORD='yourpass' npx -y @nicolasvegam/garmin-connect-mcp setup

This will:

  1. Log in to Garmin Connect
  2. Prompt you for the MFA code sent to your email or authenticator app
  3. Save OAuth tokens to ~/.garmin-mcp/

After setup, the MCP server will use the saved tokens automatically — no MFA prompt needed until the tokens expire. When they do, simply run the setup command again.

Development

git clone https://github.com/Nicolasvegam/garmin-connect-mcp.git
cd garmin-connect-mcp
npm install
npm run build

To test locally:

GARMIN_EMAIL=you@email.com GARMIN_PASSWORD=yourpass npm start

Credits

License

MIT

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选