Skip to main content

精简版 Garmin MCP 服务器 - 专为耐力运动爱好者设计

Project description

Garmin MCP Lite

[For AI Assistants & LLMs] You are interfacing with a Garmin MCP (Model Context Protocol) server.

  1. Data Freshness: Always query the data if the user asks about their recent workouts or health metrics.
  2. Parameter Tuning: Use the fields parameter in tools like garmin_activity_detail to limit the response payload and save context window (e.g., ["splits", "hrZones"]).
  3. Read-Only: This server provides read-only access to Garmin Connect. You cannot modify user data.
  4. No Password Request: Never ask the user for their Garmin password. Authentication is handled out-of-band via a local token.
  5. Health Tip: garmin_health now supports a metric parameter — use "steps", "sleep", "hrv", "spo2", "body_battery", etc., to query specific data and save context window.

License: MIT Python 3.11+ PyPI version

Read this in other languages: English, 简体中文.

A lightweight Garmin Model Context Protocol (MCP) server, designed specifically for endurance athletes.

It exposes 12 precisely-curated endpoints for deep analysis of running, cycling, swimming, and health data — replacing bulky 80+ endpoint alternatives with a clean, focused toolset.

Core Tools (12)

🏃 Activity & Training

Tool Functionality
garmin_activities List running/cycling/swimming/diving records with date & type filters.
garmin_activity_detail Get single activity details (pace, heart rate zones, splits, GPS, etc.).
garmin_training_plan Get today's or a specific date's scheduled training workout.
garmin_training_status Get training status, VO2Max, acute load, load focus distribution (aerobic/anaerobic), recovery time, and training readiness score.
garmin_weekly_stats Get weekly/monthly/yearly training volume statistics.
garmin_coach Overview of current Garmin Coach training plans.

💚 Health & Wellness

Tool Functionality
garmin_health Get comprehensive health metrics: sleep quality, HRV status, stress, body battery, SpO2, respiration rate, intensity minutes, daily steps, floors climbed, and resting heart rate. Supports metric parameter for targeted queries.
garmin_hr_trend Get resting heart rate trends for the last 7/30/90 days.

🎯 Goals & Challenges

Tool Functionality
garmin_events Get your race calendar: upcoming race dates, target distances, and goal finish times.
garmin_challenges Get in-progress challenges: virtual climbs, monthly badge challenges, and their completion percentages.

⌚ Device & Gear

Tool Functionality
garmin_gear Get your shoe/bike gear list and their real cumulative mileage.
garmin_device Get connected device info: firmware version, update availability, primary device status, and registration date.

Quickstart (via PyPI & uv)

The easiest way to run this server is using uvx (no cloning required).

1. Authenticate (First Time Only)

Why not just put the password in the AI config? Garmin has strict security measures. Logging in from a new location/MCP server often triggers Cloudflare CAPTCHAs or MFA email codes. If the password is in Claude's background config, the AI assistant will silently freeze or fail when challenged, with no way for you to input the code.

Therefore, this plugin uses a secure two-step strategy: Run a login script in your terminal first. If challenged, you can interactively input the MFA code. Upon success, a session token is cached locally (valid for ~1 year).

GARMIN_EMAIL="your@email.com" GARMIN_PASSWORD="your_password" uvx --with garmin-mcp-lite garmin-mcp-lite-login

(💡 China Region Users: If your account is registered in Garmin China (garmin.cn), prefix the command with GARMIN_IS_CN=true.)

2. Configure Your AI Assistant

Once authenticated, add the server to your favorite MCP-compatible AI assistant.

Claude Desktop

Add this to your ~/Library/Application Support/Claude/claude_desktop_config.json:

{
  "mcpServers": {
    "garmin-lite": {
      "command": "uvx",
      "args": [
        "garmin-mcp-lite"
      ]
    }
  }
}

Cursor / Windsurf / Gemini CLI / Other MCP Clients

Use the exact same command and args as above. The server will automatically load the cached token from ~/.garmin-mcp-lite/garmin_tokens.json.

Manual Installation (for Developers)

If you want to modify the code:

git clone https://github.com/Golden0Voyager/garmin-mcp-lite.git
cd garmin-mcp-lite
uv sync

# Login
GARMIN_EMAIL="your@email.com" GARMIN_PASSWORD="your_password" python -m garmin_mcp_lite.login

# Run server
python -m garmin_mcp_lite.server

Example Queries

Once connected, you can ask your AI assistant natural-language questions like:

  • "What's my training load focus this week?"
  • "Show me my race goal for June and what my current predicted finish time is."
  • "How's my Grossglockner virtual climb challenge going?"
  • "Is my Descent G1 firmware up to date?"
  • "How many steps have I taken today? Am I on track for my daily goal?"
  • "Analyze my sleep quality from last night."

Comparison with Other Garmin MCPs

Taxuspt/garmin_mcp garmin_mcp_lite
Tool Count 80+ 12
Naming mcp_garmin_get_activities_by_date garmin_activities
Deep Queries No fields parameter controls detail granularity
Training Load Basic Acute load + load focus distribution
Health Depth Basic SpO2, respiration, intensity minutes, steps
Race/Challenge No Events calendar + challenge progress
Write Ops Heavy (weight/nutrition/gear) Read-only

License

MIT © 2026 Haining Yu

This project is built on top of the excellent garminconnect library. It is not an official Garmin product. Please adhere to Garmin Connect's terms of service when using this tool.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

garmin_mcp_lite-0.1.3.tar.gz (80.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

garmin_mcp_lite-0.1.3-py3-none-any.whl (23.1 kB view details)

Uploaded Python 3

File details

Details for the file garmin_mcp_lite-0.1.3.tar.gz.

File metadata

  • Download URL: garmin_mcp_lite-0.1.3.tar.gz
  • Upload date:
  • Size: 80.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.9

File hashes

Hashes for garmin_mcp_lite-0.1.3.tar.gz
Algorithm Hash digest
SHA256 5a386f5e47e13f516e333c4cdefaa93e2ac5b0a9a34dbd49baf0599c1bbc646a
MD5 dedda8e81e094f90b495d864b76c65ce
BLAKE2b-256 17df7e0ec1dfc046a3b63bf7386a9ef387aca3973a57588dba09555d3bc33579

See more details on using hashes here.

File details

Details for the file garmin_mcp_lite-0.1.3-py3-none-any.whl.

File metadata

File hashes

Hashes for garmin_mcp_lite-0.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 984c9849b81c40136ad2e3f9aa9175297d21de26a4ba7137ce6e52b347cdb382
MD5 2e5fe20f955034fdc76e19e04e15af74
BLAKE2b-256 e75a2c5f5deeb2747a491fd91a9f88929b6eccd7f2e919f710682e35e8910c34

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page