Privacy-first unofficial Garmin Connect MCP for AI health, sleep, activity & recovery agents.
Connect Runs on your machine
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]
{
"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>"
}
}
}
}
{
"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>"
}
}
}
}
{
"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
| Name | Description |
|---|---|
GARMIN_TOKEN_PATHOptional | 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_MODEOptional | Optional payload mode: summary, structured, or raw. Defaults to structured. raw means full supported Garmin Connect payloads, not unrestricted raw sensor telemetry. |
GARMIN_CACHEOptional | Optional SQLite cache toggle. Set to true or sqlite to enable. |
GARMIN_CACHE_PATHOptional | Optional local SQLite cache path. Defaults to ~/.garmin-mcp/cache.sqlite. |
GARMIN_DOMAINOptional | Optional Garmin domain override. Use garmin.cn only for China accounts; default is garmin.com. |
GARMIN_NO_CACHEOptional | 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 published | 3 Jul 2026 |
| Last updated | 3 Jul 2026 |
| Registry name | io.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.
