Privacy-first, unofficial Fitbit MCP server for AI health, sleep, activity and heart-rate agents.
Connect Runs on your machine
claude mcp add fitbitmcp -e FITBIT_CLIENT_ID=<FITBIT_CLIENT_ID> -e FITBIT_CLIENT_SECRET=<FITBIT_CLIENT_SECRET> -e FITBIT_REDIRECT_URI=<FITBIT_REDIRECT_URI> -e FITBIT_TOKEN_PATH=<FITBIT_TOKEN_PATH> -e FITBIT_PRIVACY_MODE=<FITBIT_PRIVACY_MODE> -e FITBIT_CACHE=<FITBIT_CACHE> -e FITBIT_CACHE_PATH=<FITBIT_CACHE_PATH> -e FITBIT_NO_CACHE=<FITBIT_NO_CACHE> -- npx -y [email protected]
{
"mcpServers": {
"fitbitmcp": {
"command": "npx",
"args": [
"-y",
"[email protected]"
],
"env": {
"FITBIT_CLIENT_ID": "<FITBIT_CLIENT_ID>",
"FITBIT_CLIENT_SECRET": "<FITBIT_CLIENT_SECRET>",
"FITBIT_REDIRECT_URI": "<FITBIT_REDIRECT_URI>",
"FITBIT_TOKEN_PATH": "<FITBIT_TOKEN_PATH>",
"FITBIT_PRIVACY_MODE": "<FITBIT_PRIVACY_MODE>",
"FITBIT_CACHE": "<FITBIT_CACHE>",
"FITBIT_CACHE_PATH": "<FITBIT_CACHE_PATH>",
"FITBIT_NO_CACHE": "<FITBIT_NO_CACHE>"
}
}
}
}
{
"mcpServers": {
"fitbitmcp": {
"command": "npx",
"args": [
"-y",
"[email protected]"
],
"env": {
"FITBIT_CLIENT_ID": "<FITBIT_CLIENT_ID>",
"FITBIT_CLIENT_SECRET": "<FITBIT_CLIENT_SECRET>",
"FITBIT_REDIRECT_URI": "<FITBIT_REDIRECT_URI>",
"FITBIT_TOKEN_PATH": "<FITBIT_TOKEN_PATH>",
"FITBIT_PRIVACY_MODE": "<FITBIT_PRIVACY_MODE>",
"FITBIT_CACHE": "<FITBIT_CACHE>",
"FITBIT_CACHE_PATH": "<FITBIT_CACHE_PATH>",
"FITBIT_NO_CACHE": "<FITBIT_NO_CACHE>"
}
}
}
}
{
"servers": {
"fitbitmcp": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"[email protected]"
],
"env": {
"FITBIT_CLIENT_ID": "<FITBIT_CLIENT_ID>",
"FITBIT_CLIENT_SECRET": "<FITBIT_CLIENT_SECRET>",
"FITBIT_REDIRECT_URI": "<FITBIT_REDIRECT_URI>",
"FITBIT_TOKEN_PATH": "<FITBIT_TOKEN_PATH>",
"FITBIT_PRIVACY_MODE": "<FITBIT_PRIVACY_MODE>",
"FITBIT_CACHE": "<FITBIT_CACHE>",
"FITBIT_CACHE_PATH": "<FITBIT_CACHE_PATH>",
"FITBIT_NO_CACHE": "<FITBIT_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 |
|---|---|
FITBIT_CLIENT_IDOptional | Fitbit OAuth client ID. Optional when configured with fitbit-mcp-server setup. |
FITBIT_CLIENT_SECRETOptional, secret | Fitbit OAuth client secret. Prefer fitbit-mcp-server setup so this secret is stored in ~/.fitbit-mcp/config.json instead of MCP client config. |
FITBIT_REDIRECT_URIOptional | Redirect URI configured in the Fitbit Developer Dashboard. Optional when configured with fitbit-mcp-server setup. |
FITBIT_TOKEN_PATHOptional | Optional local path for OAuth tokens. Defaults to ~/.fitbit-mcp/tokens.json. |
FITBIT_PRIVACY_MODEOptional | Optional payload mode: summary, structured, or raw. Defaults to structured. raw means full Fitbit API payloads, not continuous 24/7 raw sensor telemetry. |
FITBIT_CACHEOptional | Optional SQLite cache toggle. Set to true or sqlite to enable. |
FITBIT_CACHE_PATHOptional | Optional local SQLite cache path. Defaults to ~/.fitbit-mcp/cache.sqlite. |
FITBIT_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 | 29 May 2026 |
| Last updated | 29 May 2026 |
| Registry name | io.github.davidmosiah/fitbitmcp |
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.
