Everything works without configuration. Settings are environment variables passed by your client (see the client guides), or lines in ~/.garmin-mcp/config.json. Precedence: command-line flag, then environment, then config.json, then the default.

The ones you may want

Variable Default Meaning
GARMIN_AUTO_FETCH true the server downloads missing days by itself; false: it reports what is missing and the assistant asks you first
GARMIN_ENABLE_DESTRUCTIVE false true adds deleting activities, workouts and weigh-ins, and overwriting saved workouts
GARMIN_DATA_DIR ~/.garmin-mcp where tokens, the database and config.json live
GARMIN_FIT_DOWNLOAD_DIR ~/.garmin-mcp/downloads where activity files are saved
GARMIN_TIMEZONE your system’s IANA zone used for “today” and week boundaries
GARMIN_REGION global cn for Garmin China accounts
GARMIN_BROWSER_PATH detected browser used for the sign-in window
GARMIN_ENABLED_TOOLS, GARMIN_DISABLED_TOOLS   comma-separated lists to expose only some tools
GARMIN_LOG_LEVEL info debug, info, warn, error, silent; logs go to stderr

Downloads

Variable Default Meaning
GARMIN_SYNC_CHUNK_DAYS 7 days per download chunk
GARMIN_SYNC_PAUSE_S 1-11 pause after a chunk that downloaded something: a number, or a random range
GARMIN_SYNC_MAX_REQUESTS_PER_DAY 600 daily request budget; a 429 or Cloudflare challenge pauses everything for 6 h
GARMIN_CONCURRENCY 4 parallel requests
GARMIN_MIN_REQUEST_INTERVAL_MS 250 spacing between requests

Network server

Variable Default Meaning
GARMIN_MCP_TRANSPORT stdio streamable-http for a network server
GARMIN_MCP_HOST, GARMIN_MCP_PORT 127.0.0.1, 8000 where it listens
GARMIN_MCP_HTTP_TOKEN   required Authorization: Bearer token; without it the server only listens on localhost
GARMIN_HTTP_ALLOWED_HOSTS   extra hostnames accepted in Host/Origin besides localhost, 127.0.0.1, [::1]

Sign-in

Variable Default Meaning
GARMIN_SSO_STRATEGY auto auto (browser if available, else terminal), browser, curl, fetch, import
GARMIN_EMAIL, GARMIN_PASSWORD   only for the terminal sign-in, only at sign-in time
GARMIN_TOKENS_FILE $GARMIN_DATA_DIR/tokens.json  

config.json

The same settings, in camelCase, for example:

{
  "autoFetch": false,
  "timezone": "Europe/Warsaw"
}