# garminmcp [Health: Active]

**Category:** 🏃 Sports  
**Repository:** https://github.com/davidmosiah/garminmcp  
**GitHub Stars:** 13  
**npm Downloads (last month):** 207  
**Views:** 3  
**Installs:** 0  
**Upvotes:** 0  
**Directory Page:** https://allmcps.com/mcp/garminmcp

## Description
Privacy-first MCP server for Garmin Connect health, sleep, recovery and activities.

## Claude Desktop Quick Installation
Install path detected from listing signals. Uses `npx` (confidence: high):

```json
"mcpServers": {
  "garminmcp": {
    "command": "npx",
    "args": ["-y","delx-wellness-hermes"]
  }
}
```

## Documentation

## What garminmcp MCP server does

The garminmcp MCP server exposes Garmin Connect data to MCP-compatible AI clients. It covers daily and weekly summaries, sleep, HRV, stress, Body Battery, training readiness, heart rate, SpO2, respiration, intensity minutes, hydration, activities, profile and device information, and weight.

The server is intended for personal AI workflows using user-authorized Garmin data. It is an unofficial project and does not use official Garmin Health API partnership access. The data may support personal analysis, but the project states that it is not medical advice and should not be used for diagnosis or treatment.

## How it works

The default transport is stdio. An MCP client starts the package with `npx -y garmin-mcp-unofficial`, then invokes the available tools. The server also supports Streamable HTTP in stateless mode. HTTP listens on loopback by default, with a health endpoint at `/health` and an MCP endpoint at `/mcp`.

Authentication is performed through the package's local Node-based login flow. It prompts for Garmin email, password, and MFA when required, without requiring a separate Python installation. The password is not stored. Garmin Connect tokens are saved locally in `~/.garmin-mcp/garmin_tokens.json` with user-only permissions and are not returned through tools.

## Setup and configuration

Run `npx -y garmin-mcp-unofficial setup` to write local MCP configuration, then run `npx -y garmin-mcp-unofficial auth` to authenticate. The `doctor` command checks whether the installation is ready. A combined setup and authentication flow is available with `npx -y garmin-mcp-unofficial setup --auth`.

For HTTP mode, run `npx -y garmin-mcp-unofficial --http`. The host, port, and transport can be configured with `GARMIN_MCP_HOST`, `GARMIN_MCP_PORT`, and `GARMIN_MCP_TRANSPORT=http`. Privacy behavior uses `GARMIN_PRIVACY_MODE`, which defaults to `summary`; local SQLite caching is optional through `GARMIN_CACHE=sqlite`.

If Garmin responds with HTTP 429, a Cloudflare challenge, or an incomplete authentication response, stop retrying temporarily. Repeated headless login attempts can increase throttling.

## Tools and capabilities

Start with `garmin_connection_status` to check connectivity. `garmin_daily_summary` provides daily readiness, sleep, and load information, while `garmin_weekly_summary` produces a broader scorecard, identifies bottlenecks, and supports next-week planning.

Additional tools expose per-day wellness signals, activities, profile and device details, and weight. The server also includes prompts and resources, including `garmin_intraday_investigation` for focused analysis such as stress on a selected date. Responses can be requested in JSON where supported by the tool.

## Limitations and notes

The connector depends on unofficial Garmin Connect personal-token access rather than an official Garmin Health API integration. Availability of individual data fields depends on what Garmin provides for the account and request. Privacy mode can redact or limit data, while structured mode retains normalized aliases and upstream fields after secret and GPS redaction.

Garmin credentials and tokens remain local to the machine running the connector. The MCP client does not receive them. Local caching is disabled unless explicitly enabled. Date ranges for activity queries preserve the supplied calendar date and reject invalid values before contacting Garmin Connect.

_Full upstream README: https://allmcps.com/mcp/garminmcp/readme_

