Fitbitmcp logo

Fitbitmcp

Local MCP access to Fitbit activity, sleep, heart, HRV, body and nutrition data with structured privacy defaults.

Install Fitbitmcp

Pick your client, then add it in one click or paste the config.

STDIONode.js
~/Library/Application Support/Claude/claude_desktop_config.json
claude_desktop_config.json
{
  "mcpServers": {
    "fitbitmcp": {
      "command": "npx",
      "args": [
        "-y",
        "fitbit-mcp-unofficial"
      ],
      "env": {
        "FITBIT_MCP_HOST": "YOUR_VALUE_HERE",
        "FITBIT_MCP_PORT": "YOUR_VALUE_HERE",
        "FITBIT_MCP_TRANSPORT": "YOUR_VALUE_HERE",
        "FITBIT_PRIVACY_MODE": "YOUR_VALUE_HERE"
      }
    }
  }
}

Settings → Developer → Edit Config, merge this into mcpServers, then fully quit and reopen Claude Desktop.

Values are written into the snippet above so you can paste it as is. They never leave your browser.

Automated check passed— started and listed 33 tools correctly (1d ago).

Overview

fitbitmcp MCP server connects compatible AI agents to the official Fitbit Web API through a locally managed OAuth flow. It provides daily and weekly health summaries alongside tools for activity, sleep, heart, HRV, SpO2, breathing rate, weight, food and water data. Reach for it when an agent needs Fitbit context without manually copying metrics from the Fitbit app. The default stdio transport can be supplemented with loopback-only, sessionless Streamable HTTP.

Use cases

  • Check daily readiness, sleep, activity and heart context
  • Review weekly health trends against the previous week
  • Investigate intraday heart-rate samples for a date
  • Retrieve logged Fitbit workouts, nutrition and body data

Key features

  • Local OAuth token handling
  • Daily and weekly health summaries
  • Activity, sleep and physiology retrieval
  • Structured privacy mode with opt-in raw responses
  • Stdio and loopback Streamable HTTP transports
  • Diagnostic, profile and device tools

Tools33

What Fitbitmcp lets your agent do. Expand a tool for its parameters.

Verified live~5.9k tokens of context

Security & health

What it can reach and how reliably it runs — from our own checks, not the maintainer’s claims.

ActiveLast checked Today

Recent health check succeeded.

9/9 checks healthy over the last 46d

What it can do

From the 33 tools this server returned when we ran it; 33 declare their own safety hints.

Can delete or modify data · 1Handles credentials · 9Makes network requests · 22Read-only tools · 32
Network at startup3 connections
Files written at startupNone
Install scriptsNone
npm provenanceNot published
Package age178 days
Maintainers1

Observed 2026-10-27 in an isolated sandbox. A description of reach, not a security audit.

Supply-chain signal

No high-severity advisories surfaced by our automated scan.

Critical 0High 0Medium 0Low 0

Scanned 5d ago via OSV.dev · fitbit-mcp-unofficial (npm)

Adoption & maintenance

Factual signals from GitHub, npm, and our automated checks — not a rating.

GitHub stars5Stargazers on the source repository.
npm downloads207Package downloads in the last 30 days.
Last commit5d agoMost recent push to the default branch.
Availability100%Our rolling endpoint + install checks that succeeded.
Install checkPassedOur sandbox started it and listed its tools.
Tools exposed33Callable tools this server registers over MCP.

How Fitbitmcp works

What fitbitmcp does

fitbitmcp exposes user-authorized Fitbit data through the Model Context Protocol. Its coverage includes daily activity, logged workouts, sleep and sleep stages, resting heart rate, heart-rate zones, HRV, overnight SpO2, breathing rate, weight, body composition, food and water logs, when those records are available from Fitbit.

The main summary tools turn Fitbit records into agent-ready context. fitbit_daily_summary combines readiness, activity, sleep and heart information for the current day. fitbit_weekly_summary produces a scorecard, compares the previous week and suggests a plan for the following week. Additional prompts support daily check-ins, weekly reviews and investigations of intraday heart-rate samples.

How it works

The package uses Fitbit's official Web API and performs OAuth locally. Access and refresh tokens are kept in ~/.fitbit-mcp/tokens.json with restrictive 0600 permissions, are not printed, and are not returned by MCP tools. The server normalizes API responses before exposing them to an agent.

stdio is the default transport. An optional Streamable HTTP mode runs on loopback, without session IDs, with a health endpoint at /health and MCP requests at /mcp. The default host and port can be adjusted with FITBIT_MCP_HOST and FITBIT_MCP_PORT.

Privacy mode defaults to structured. This removes GPS and secret-bearing fields while retaining complete upstream physiological records and response metadata. Raw Fitbit JSON can be enabled globally with FITBIT_PRIVACY_MODE=raw or selected for an individual call.

Setup and configuration

Create a Fitbit app and set its redirect URI to http://127.0.0.1:3000/callback. The interactive setup flow accepts the Fitbit client ID and secret:

Terminal
npx -y fitbit-mcp-unofficial setup
npx -y fitbit-mcp-unofficial auth
npx -y fitbit-mcp-unofficial doctor

Recommended OAuth scopes include activity, heartrate, profile, settings, sleep, weight and nutrition. After authorization, configure an MCP client to launch:

config.json
{
  "mcpServers": {
    "fitbit": {
      "command": "npx",
      "args": ["-y", "fitbit-mcp-unofficial"]
    }
  }
}

Claude Desktop users can run setup --client claude to write the client configuration. For HTTP mode, start the package with --http; FITBIT_MCP_TRANSPORT=http also selects that transport.

Tools and capabilities

Connection and discovery tools help an agent check readiness before making Fitbit requests. fitbit_connection_status verifies the local setup, while fitbit_data_inventory reports supported domains, scopes, privacy modes and recommended first calls without contacting Fitbit. Capability, manifest, privacy-audit and cache-status tools provide further diagnostics.

Domain-specific tools include:

  • Profile and device inspection with fitbit_get_profile and fitbit_list_devices.
  • Activity retrieval with fitbit_get_activity_day, fitbit_list_activities and fitbit_get_activity.
  • Sleep retrieval with fitbit_get_sleep_day and fitbit_list_sleep.
  • Heart, HRV, SpO2 and breathing-rate access through the corresponding daily, series and intraday tools.
  • Weight, food and water retrieval by date.
  • OAuth URL generation, code exchange and access revocation.

Intraday heart-rate data depends on Fitbit app and API access. Continuous device telemetry is outside the public API coverage. The project is unofficial and is not affiliated with Fitbit or Google; Fitbit's migration toward the Google Health API may affect OAuth, scopes, endpoints or reconnection behavior.

Reviews

No reviews yet — be the first to share how it worked for you.

Frequently Asked Questions about Fitbitmcp

fitbitmcp is an MCP server that connects AI agents to the official Fitbit Web API using local OAuth. Its main tools provide connection checks, data inventory, daily summaries, weekly summaries, activity, sleep, heart-rate, HRV, SpO2, breathing-rate, weight, food and water data.

Run `npx -y fitbit-mcp-unofficial setup`, then authenticate with `npx -y fitbit-mcp-unofficial auth` and verify the setup with `npx -y fitbit-mcp-unofficial doctor`. You need a Fitbit app with the specified localhost callback URI.

Yes, fitbitmcp can be wired into Cursor as a standard stdio MCP server. Configure the client to launch `npx -y fitbit-mcp-unofficial` after completing the Fitbit setup and OAuth authorization.

fitbitmcp stores OAuth tokens locally in `~/.fitbit-mcp/tokens.json` with `0600` permissions and never returns or prints them. Structured privacy mode is enabled by default, with raw Fitbit JSON requiring an explicit opt-in.

Yes, through `fitbit_get_heart_intraday`, when the Fitbit account and app have the required API access. Intraday availability is conditional, unlike supported daily records such as activity summaries and resting heart rate.

Related MCP servers

Add a badge to your READMEShow it’s listed — live SVG, Markdown or HTML.

AllMCPs Directory Badge

Full Badge Customizer

Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.

Badge Style:
Live Dynamic SVG PreviewFitbitmcp AllMCPs Directory Badge
Markdown (GitHub README)
[![AllMCPs](https://allmcps.com/api/badge/fitbitmcp?style=directory)](https://allmcps.com/mcp/fitbitmcp)
HTML Embed
<a href="https://allmcps.com/mcp/fitbitmcp"><img src="https://allmcps.com/api/badge/fitbitmcp?style=directory" alt="Fitbitmcp on AllMCPs" /></a>