Skip to main content
Garmin Personal API MCP

Garmin Personal API MCP

v0.1

Your Garmin data,ready to ask.

Use the official Garmin Personal API to bring your activities, sleep, HRV, Body Battery, heart rate, and wellness data into a compatible AI client. The open-source server runs entirely on your computer and never asks for your Garmin password.

›Connect @trainingloadai/garmin-personal-api-mcp
  • 25 read-only tools
  • Runs entirely locally
  • Official Garmin Personal API

Animated examples show a local MCP host calling Garmin recovery, activity, sleep, HRV, stress, and Body Battery tools before returning a plain-text answer.

How it works

Garmin Personal API data, fetched locally when you ask.

When you ask a question, the local server fetches the required data from the Garmin Personal API and returns the result to your AI client. This project runs no cloud relay and stores no Garmin data remotely; any further processing depends on the AI provider and privacy policy you choose.

01

Your local MCP host

A compatible AI client chooses a Garmin tool for the question you asked. No browser extension or hosted connector is required.
MCP host
02

The local MCP server

The Node.js process validates inputs, controls date ranges and sample volume, then returns structured results to your AI client.
local process
03

Garmin Personal API

Your token is sent over HTTPS directly to the Garmin Personal API. The server exposes read operations only.
official API · HTTPS

Authentication without password scraping

Your Garmin Personal API key completes authorization on your computer—not in chat.

Create a Garmin Personal API key in Garmin Connect and authorize once. The CLI stores the key and cached bearer token in a local file readable only by you. It never uses the username-and-password scraping flow found in older Garmin Connect integrations.

Credential
Personal API key
Runtime
entirely local
Operations
GET / read-only

Quickstart

Send one line to your AI client to connect to the Garmin Personal API.

Copy the request below into Codex, Claude Code, Cursor, or another AI client that can work locally. The client can check the runtime, install and configure the package, connect the tools, and open the private local authorization page; you only enter your Garmin Personal API key there.

  1. 01

    Prepare your Garmin Personal API key

    Create your Garmin Personal API key on Garmin Connect's dedicated Personal API Token page. Garmin shows a new key only once, so copy it before leaving—but never paste it into an AI chat. You will enter it on a private page served only by this computer.

  2. 02

    Copy one line into your AI client

    Codex, Claude Code, Cursor, or another capable coding agent can identify the npm package, read its setup instructions, and handle the client-specific details.

    Paste into Codex, Claude Code, Cursor, or another agent
    Connect @trainingloadai/garmin-personal-api-mcp

    The detailed, machine-readable flow lives in the repository’s AGENTS.md ↗, not in your prompt.

  3. 03

    Connect on the local page

    The auth command opens a temporary page at 127.0.0.1. Paste the key there—not in chat. The page validates it with Garmin, saves it with user-only permissions, then closes its local listener.

    Your client handlesauth → register → doctor → verify
  4. 04

    Reload your client, then ask

    Restart once so your client can load the newly registered Garmin tools. Then ask a question normally—there are no commands or tool names to remember.

    “Summarize my sleep, HRV, Body Battery, stress, and activities for yesterday.”

    Prefer the official details? Read the Codex, Claude Code, or Cursor MCP guide.

Manual setup · advanced

Prefer to wire it yourself?

The one-line agent flow above is the recommended path. These exact commands are for developers who want to inspect or configure the local process connection themselves.

Transport
local process (stdio)
Protocol test
Initialize · List Tools · Call Tool
Last verified
October 23, 2026

This package never needs a server URL, Docker container, or hosted account. Restart the client after changing its MCP configuration.

Codex CLI
codex mcp add trainingloadai -- npx -y @trainingloadai/garmin-personal-api-mcp
codex mcp list

What you can ask

Raw Garmin data, shaped for a useful conversation.

Twenty-five focused tools turn Garmin Personal API data into bounded, useful context while preserving the original units.

01

Activities & FIT

Search Garmin activities, inspect workout steps, or decode FIT laps, power, heart rate, cadence, and sampled records.
search_activitiesget_activityget_activity_recording
02

Daily recovery

Bring sleep, HRV, Body Battery, stress, daily summaries, and fitness age into one grounded conversation.
get_dayget_sleepget_hrvget_body_battery
03

Sleep & HRV

Read one night in detail or compare bounded sleep and overnight HRV summaries across a recent period.
get_sleepget_sleep_summariesget_hrv_summaries
04

Heart & oxygen

Query heart-rate summaries, configured heart-rate zones, resting heart rate, and pulse oximetry data.
get_heart_rateget_heart_rate_zonesget_spo2
05

Wellness & nutrition

Read steps, hydration, stress, weight, food logs, wellness activities, and cycle data without account writes.
get_stepsget_hydrationget_weight+ 5 more
06

Profile context

Use profile settings and fitness age to interpret Garmin values in the context of the person they belong to.
get_profileget_heart_rate_zones

Garmin Personal API data

One local interface for activity, recovery, and health questions.

The server maps Garmin Personal API endpoints to twenty-five deliberate MCP tools—not one oversized endpoint and not a generic scraper.

A

Garmin activity API and FIT recordings

Search activities by date, sport, or title; inspect the activity summary and workout steps; then decode a Garmin FIT file only when lap or sampled recording detail is needed. Power, pace, cadence, heart rate, temperature, and GPS coordinates stay tied to their original units.

  • latest running activity
  • lap and power drift
  • FIT samples on demand
B

Garmin sleep, HRV, and Body Battery data

Read a single day or compare summaries across a bounded range. Sleep stages, overnight HRV, Body Battery charge and drain, and stress can be placed in the same answer without pretending that a wellness signal is a medical diagnosis.

  • sleep stages
  • HRV summaries
  • Body Battery trend
C

Heart rate and daily health summaries

Query daily summaries, steps, hydration, continuous heart-rate aggregates, SpO2, weight, food logs, and wellness activities. Exact high-frequency samples are omitted by default so a simple Garmin health question does not flood the model context.

  • resting heart rate
  • daily steps and stress
  • weight and hydration
D

Profile, heart-rate zones, and fitness context

Use the Garmin profile, configured heart-rate zones, fitness age, and cycle data to interpret a number in the context of the person it belongs to. Every tool remains a data retrieval tool; it does not issue a diagnosis or edit a Garmin account.

  • heart-rate zones
  • fitness age
  • profile-aware answers

Privacy boundary

A local Garmin MCP with a boundary you can inspect.

This project does not host or forward your Garmin data. Tool results do enter the AI client and model you choose, where that provider's privacy policy applies.

Read the security policy ↗
01

Credentials stay local

Your Garmin Personal API key and cached bearer token are stored only on your computer.

02

Read-only by construction

Every exposed Garmin operation is a GET. There are no workout, device, or account writes.

03

Private by default

High-frequency samples and exact FIT coordinates are omitted unless explicitly requested.

04

No telemetry

The server has no analytics, crash reporting, account system, database, or remote relay.

FAQ

Clear answers about the Garmin Personal API and MCP.

Exact answers about API keys, local operation, client support, FIT activity data, privacy, and read-only limits.

10

answers

One setup request

Paste one line.
Let your client handle the rest.

Paste the package request into Codex, Claude Code, Cursor, or another capable agent. It finds the setup instructions, opens the private local Garmin Personal API authorization page, and verifies the connection.

›Connect @trainingloadai/garmin-personal-api-mcp