Skip to main content
Glama

πŸƒ Garmin MCP Server

OpenClaw Platform Β· Port 8422

FastMCP server for Garmin Connect β€” live GPS tracking, health metrics, and activity data for AI agents.


⚑ Quick Start

# 1. Clone / enter project
cd garmin-mcp

# 2. Install dependencies
pip install -r requirements.txt

# 3. Configure credentials
cp .env.example .env
# Edit .env β†’ set GARMIN_EMAIL and GARMIN_PASSWORD

# 4. Run server
python server.py

Server starts at: http://localhost:8422

First run logs into Garmin Connect and caches the session token at ~/.garmin_mcp_tokens. Subsequent runs reuse the cached token (no re-login needed).


Related MCP server: Garmin MCP Server

πŸ› οΈ Tools (12 total)

#

Tool

Description

1

garmin_get_daily_summary

Steps, HR, stress, calories, sleep, distance

2

garmin_get_heart_rate

Resting/max HR + time-series timeline

3

garmin_get_steps

15-min interval step breakdown

4

garmin_get_sleep

Deep/light/REM/awake stages + score

5

garmin_get_stress

Avg/max stress + ASCII chart

6

garmin_get_body_battery

Energy levels over 1–7 day range

7

garmin_list_activities

Recent activities with IDs for drill-down

8

garmin_get_activity_details

Full activity stats + lap splits

9

garmin_get_gps_track

GPS coordinates from recorded activity

10

garmin_get_livetrack

Real-time position via LiveTrack polling

11

garmin_get_hrv

HRV last-night + weekly average

12

garmin_get_training_readiness

Today's readiness score + factors


πŸ“‘ LiveTrack Real-time GPS

  1. On your Garmin device β†’ start activity β†’ enable LiveTrack

  2. Garmin sends a share URL to your contacts, e.g.: https://livetrack.garmin.com/session/abc123.../token/xyz...

  3. Extract the session token (between /session/ and /token/)

  4. Call garmin_get_livetrack with that token β€” positions update ~every 4 seconds


πŸ”Œ OpenClaw Integration

Add to your OpenClaw config:

skills:
  - name: garmin-health
    transport: streamable-http
    url: http://localhost:8422

Or connect via MCP protocol URL in Claude Desktop:

http://localhost:8422/sse

πŸ” Auth Notes

  • Uses the unofficial garminconnect Python library (no Garmin Developer Program approval needed)

  • Tokens cached at ~/.garmin_mcp_tokens β€” delete this file to force re-login

  • Garmin may prompt for 2FA on first login in some regions

  • Rate limiting: avoid calling more than ~100 times/hour to prevent IP blocks


πŸ“ Project Structure

garmin-mcp/
β”œβ”€β”€ server.py          # FastMCP server (12 tools)
β”œβ”€β”€ garmin_client.py   # Auth + session wrapper
β”œβ”€β”€ models.py          # Pydantic v2 input models
β”œβ”€β”€ utils.py           # Markdown/JSON formatters
β”œβ”€β”€ requirements.txt
β”œβ”€β”€ .env.example
└── README.md

🌐 Response Formats

All tools support response_format:

  • "markdown" (default) β€” human-readable tables, great for chat UIs

  • "json" β€” raw Garmin API data, great for downstream processing


Built for the Dr. Arty+ Team Β· OpenClaw Platform Β· 2026

F
license - not found
-
quality - not tested
B
maintenance

Maintenance

–Maintainers
–Response time
–Release cycle
–Releases (12mo)
Commit activity

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/kritsanan1/garmin-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server