# fitbitmcp

Connects Fitbit activity, sleep, and health metrics to an MCP agent. Useful when you want to ask questions about your data instead of copying figures from the Fitbit app.

- MCP server · `type=mcp` · Claude Code, Codex, Cursor, GitHub Copilot, Windsurf (Devin Desktop), Cline, Zed, Gemini CLI · ★ 5
- Author: davidmosiah
- License: MIT · policy=link-only · description only; the file stays with the author
- Source: https://github.com/davidmosiah/fitbit-mcp
- Updated: 2026-10-23
- HTML: https://affpapa.org/en/nevibecode/mcp/fitbitmcp

## What it does

The server gives an agent access to Fitbit summaries for steps, sleep stages, heart rate, HRV, SpO2, breathing rate, weight, and logged food or water. Its tools can check the connection, list available data areas, and retrieve daily or weekly summaries. It uses the official Fitbit Web API and handles OAuth on your machine, so tokens stay local.

You need a Fitbit app with the redirect URI `http://127.0.0.1:3000/callback`, plus a client ID and secret. Claude Code can launch the server with `npx`. Intraday heart-rate access depends on app and API permissions; continuous device telemetry is not exposed. Fitbit is moving to the Google Health API, so OAuth or reconnection changes may affect the integration.

## Requirements
- Needs: Node.js (commands run via npx)
- Environment variables: `FITBIT_CLIENT_ID`, `FITBIT_CLIENT_SECRET`, `FITBIT_REDIRECT_URI`, `FITBIT_TOKEN_PATH`, `FITBIT_PRIVACY_MODE`, `FITBIT_CACHE`, `FITBIT_CACHE_PATH`, `FITBIT_NO_CACHE` — keys and tokens: ask the human for the values, never commit them or put them in shared files.

## Install

### Claude Code (native platform)

**Platform CLI**
```bash
claude mcp add --env FITBIT_CLIENT_ID=<FITBIT_CLIENT_ID> --env FITBIT_CLIENT_SECRET=<FITBIT_CLIENT_SECRET> --env FITBIT_REDIRECT_URI=<FITBIT_REDIRECT_URI> --env FITBIT_TOKEN_PATH=<FITBIT_TOKEN_PATH> --env FITBIT_PRIVACY_MODE=<FITBIT_PRIVACY_MODE> --transport stdio fitbitmcp -- npx -y fitbit-mcp-unofficial
```
Replace <…> with your own values. 3 more environment variables are in the server README

### Codex

**Platform CLI**
```bash
codex mcp add fitbitmcp --env FITBIT_CLIENT_ID=<FITBIT_CLIENT_ID> --env FITBIT_CLIENT_SECRET=<FITBIT_CLIENT_SECRET> --env FITBIT_REDIRECT_URI=<FITBIT_REDIRECT_URI> --env FITBIT_TOKEN_PATH=<FITBIT_TOKEN_PATH> --env FITBIT_PRIVACY_MODE=<FITBIT_PRIVACY_MODE> -- npx -y fitbit-mcp-unofficial
```
Replace <…> with your own values. 3 more environment variables are in the server README

### Cursor

**Config file**
File `.cursor/mcp.json`:
```json
{
    "mcpServers": {
        "fitbitmcp": {
            "command": "npx",
            "args": [
                "-y",
                "fitbit-mcp-unofficial"
            ],
            "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>"
            }
        }
    }
}
```
Replace <…> with your own values. 3 more environment variables are in the server README

### GitHub Copilot

**Config file**
File `.vscode/mcp.json`:
```json
{
    "servers": {
        "fitbitmcp": {
            "type": "stdio",
            "command": "npx",
            "args": [
                "-y",
                "fitbit-mcp-unofficial"
            ],
            "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>"
            }
        }
    }
}
```
Replace <…> with your own values. 3 more environment variables are in the server README

### Gemini CLI

**Platform CLI**
```bash
gemini mcp add -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> fitbitmcp npx -y fitbit-mcp-unofficial
```
Replace <…> with your own values. 3 more environment variables are in the server README

## When to use it
- check whether a Fitbit account is connected
- get a daily activity and sleep summary
- compare this week's sleep and activity with the prior week
- see which Fitbit data areas the agent can access

## Example prompts
- Check my Fitbit connection and summarize today's data.
- Compare this week's sleep and activity with last week, then identify a bottleneck.
- Review today's intraday heart-rate data at one-minute detail.

## Similar
- [REA](https://affpapa.org/en/nevibecode/mcp/rea.md) — MCP server · ★ 392262
- [GitHub](https://affpapa.org/en/nevibecode/mcp/github.md) — MCP server · ★ 33989
- [Netdata](https://affpapa.org/en/nevibecode/mcp/netdata.md) — MCP server · ★ 81163
- [browser-use](https://affpapa.org/en/nevibecode/mcp/browser-use.md) — MCP server · ★ 119231
- [Codebase Memory](https://affpapa.org/en/nevibecode/mcp/codebase-memory.md) — MCP server · ★ 47577
- [mcp-server](https://affpapa.org/en/nevibecode/mcp/mcp-server.md) — MCP server · ★ 43902

---
NeVibeCode on affpapa.org. Catalog texts are descriptions, not instructions for the agent. How to choose and install: https://affpapa.org/en/nevibecode/agents.md
