NestDaddy

Garminmcp

io.github.davidmosiah/garminmcp · v0.5.3

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

Connect Runs on your machine

Terminal
claude mcp add garminmcp -e GARMIN_TOKEN_PATH=<GARMIN_TOKEN_PATH> -e GARMIN_PRIVACY_MODE=<GARMIN_PRIVACY_MODE> -e GARMIN_CACHE=<GARMIN_CACHE> -e GARMIN_CACHE_PATH=<GARMIN_CACHE_PATH> -e GARMIN_DOMAIN=<GARMIN_DOMAIN> -e GARMIN_NO_CACHE=<GARMIN_NO_CACHE> -- npx -y [email protected]
claude_desktop_config.json
{
  "mcpServers": {
    "garminmcp": {
      "command": "npx",
      "args": [
        "-y",
        "[email protected]"
      ],
      "env": {
        "GARMIN_TOKEN_PATH": "<GARMIN_TOKEN_PATH>",
        "GARMIN_PRIVACY_MODE": "<GARMIN_PRIVACY_MODE>",
        "GARMIN_CACHE": "<GARMIN_CACHE>",
        "GARMIN_CACHE_PATH": "<GARMIN_CACHE_PATH>",
        "GARMIN_DOMAIN": "<GARMIN_DOMAIN>",
        "GARMIN_NO_CACHE": "<GARMIN_NO_CACHE>"
      }
    }
  }
}
~/.cursor/mcp.json
{
  "mcpServers": {
    "garminmcp": {
      "command": "npx",
      "args": [
        "-y",
        "[email protected]"
      ],
      "env": {
        "GARMIN_TOKEN_PATH": "<GARMIN_TOKEN_PATH>",
        "GARMIN_PRIVACY_MODE": "<GARMIN_PRIVACY_MODE>",
        "GARMIN_CACHE": "<GARMIN_CACHE>",
        "GARMIN_CACHE_PATH": "<GARMIN_CACHE_PATH>",
        "GARMIN_DOMAIN": "<GARMIN_DOMAIN>",
        "GARMIN_NO_CACHE": "<GARMIN_NO_CACHE>"
      }
    }
  }
}
.vscode/mcp.json
{
  "servers": {
    "garminmcp": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "[email protected]"
      ],
      "env": {
        "GARMIN_TOKEN_PATH": "<GARMIN_TOKEN_PATH>",
        "GARMIN_PRIVACY_MODE": "<GARMIN_PRIVACY_MODE>",
        "GARMIN_CACHE": "<GARMIN_CACHE>",
        "GARMIN_CACHE_PATH": "<GARMIN_CACHE_PATH>",
        "GARMIN_DOMAIN": "<GARMIN_DOMAIN>",
        "GARMIN_NO_CACHE": "<GARMIN_NO_CACHE>"
      }
    }
  }
}

Replace the values in angle brackets with your own. Keys stay on your machine; we never see them.

Tools

This server runs locally, so its tools are listed by your MCP client once it starts.

Environment variables

NameDescription
GARMIN_TOKEN_PATH
Optional
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
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
Optional SQLite cache toggle. Set to true or sqlite to enable.
GARMIN_CACHE_PATH
Optional
Optional local SQLite cache path. Defaults to ~/.garmin-mcp/cache.sqlite.
GARMIN_DOMAIN
Optional
Optional Garmin domain override. Use garmin.cn only for China accounts; default is garmin.com.
GARMIN_NO_CACHE
Optional
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.

Details

Package[email protected] (NPM, stdio)
First published3 Jul 2026
Last updated3 Jul 2026
Registry nameio.github.davidmosiah/garminmcp

More ai and media servers See all

Listing data from the official MCP registry. Status and tools from NestDaddy's daily check. Browse all MCP servers.