Home › Other › garmin-mcp

garmin-mcp

Privacy-first unofficial Garmin Connect MCP for AI health, sleep, activity & recovery agents.

TypeScript
★ 12 stars Last pushed 2026-08-29 License: MIT

Connect

Review any command before running it. Package names and URLs come from the server's own registry entry.

Package (npm 0.5.3)

npx -y [email protected]

Or add to your MCP client config:

{
  "mcpServers": {
    "garmin-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "[email protected]"
      ],
      "env": {
        "GARMIN_TOKEN_PATH": "<YOUR_VALUE>",
        "GARMIN_PRIVACY_MODE": "<YOUR_VALUE>",
        "GARMIN_CACHE": "<YOUR_VALUE>",
        "GARMIN_CACHE_PATH": "<YOUR_VALUE>",
        "GARMIN_DOMAIN": "<YOUR_VALUE>",
        "GARMIN_NO_CACHE": "<YOUR_VALUE>"
      }
    }
  }
}
  • GARMIN_TOKEN_PATH — Optional local path for Garmin Connect tokens. Defaults to ~/.garmin-mcp/garmin_tokens.json. Create it with garmin-mcp-server auth (self-contained Node login, no Python).
  • GARMIN_PRIVACY_MODE — Optional payload mode: summary, structured, or raw. Defaults to structured. raw means full supported Garmin Connect payloads, not unrestricted raw sensor telemetry.
  • GARMIN_CACHE — Optional SQLite cache toggle. Set to true or sqlite to enable.
  • GARMIN_CACHE_PATH — Optional local SQLite cache path. Defaults to ~/.garmin-mcp/cache.sqlite.
  • GARMIN_DOMAIN — Optional Garmin domain override. Use garmin.cn only for China accounts; default is garmin.com.
  • GARMIN_NO_CACHE — Set to true to bypass the in-memory HTTP response cache (60s TTL for GET only). POST/PUT/DELETE and 4xx/5xx responses are never cached regardless.

Related servers

Data from the Official MCP Registry