MCP Connector

Access Fitbit Health and Fitness Data

Unofficial MCP server for Fitbit - 16 tools for activity, sleep, heart rate, food, and body-measurement data via OAuth2 access token.

Works with fitbit

96
Spark score
out of 100
Status Verified
Updated 11 months ago
Version 1.0.1
Models
universal

Add to Favorites

Why it matters

Integrate your Fitbit data into AI applications for comprehensive health and fitness analysis. Access user profiles, activity logs, sleep data, heart rate, and more.

Outcomes

What it gets done

01

Retrieve user profile and settings

02

Access daily and historical activity data (steps, distance, calories)

03

Query sleep logs and heart rate information

04

Obtain body measurements and lifetime statistics

Install

Add it to your toolbox

Run in your project directory:

curl -fsSL https://spark.entire.vc/get/vb-fitbit-mcp-server | bash

Capabilities

Tools your agent gets

getUserProfile

Get information about your Fitbit profile

getActivities

Get activity data for a specified date

getSleepLogs

Get sleep data for a specified date

getHeartRate

Get heart rate data for a specified date and period

getSteps

Get step count for a specified date and period

getBodyMeasurements

Get weight and body fat percentage data

getFoodLogs

Get food log data for a specified date

getWaterLogs

Get water intake data for a specified date

+7 tools

Overview

FitBit MCP Server

An unofficial MCP server exposing 16 tools for reading a user's Fitbit activity, sleep, heart rate, food, and body-measurement data via OAuth2. Use when an assistant needs to read and analyze a user's own Fitbit health data, once the user has completed Fitbit's OAuth2 flow.

What it does

Fitbit MCP is an unofficial Model Context Protocol implementation, built on Fitbit's public API, that lets an AI assistant access and analyze a user's Fitbit health and fitness data. It exposes sixteen tools: getUserProfile, getActivities, getSleepLogs, getHeartRate, getSteps, getBodyMeasurements, getFoodLogs, getWaterLogs, getLifetimeStats, getUserSettings, getFloorsClimbed, getDistance, getCalories, getActiveZoneMinutes, getDevices, and getBadges.

When to use - and when NOT to

Use this connector when an assistant needs to answer questions about a user's Fitbit-tracked health and fitness data - recent activity, sleep quality, heart rate trends, calorie burn, or earned badges - conversationally instead of the user checking the Fitbit app themselves. It is explicitly unofficial and not affiliated with or endorsed by Fitbit Inc., built only against Fitbit's public API, so it is limited to whatever that API exposes and requires the user to have completed Fitbit's own OAuth2 flow to obtain an access token first.

Capabilities

Most tools accept an optional date parameter in YYYY-MM-DD format (defaulting to today) and a period parameter (1d, 7d, 30d, 1w, 1m) for time-ranged queries like steps, heart rate, or distance. Coverage spans daily activity metrics (steps, floors climbed, distance, calories, active zone minutes), body data (weight, body fat), sleep logs, food and water logs, lifetime statistics, connected device information, and earned badges/achievements.

How to install

{
  "command": "npx",
  "args": ["-y", "fitbit-mcp", "--stdio"],
  "env": { "FITBIT_ACCESS_TOKEN": "YOUR_FITBIT_ACCESS_TOKEN" }
}

or pass the token directly with --fitbit-token=YOUR_FITBIT_ACCESS_TOKEN instead of an environment variable. To obtain the token: register an application at the Fitbit Developer Portal with OAuth 2.0 Application Type "Personal" and callback URL http://localhost:3000, note the Client ID and Client Secret, then complete Fitbit's OAuth 2.0 authorization flow to receive an access token.

Who it's for

Users and developers who want an AI assistant to read and reason over their own Fitbit health data - reviewing sleep patterns, tracking activity or calorie trends over a period, checking heart rate history, or summarizing recent food and water logging - once they've completed Fitbit's OAuth flow to authorize access. It is a personal-use integration by design, since it targets Fitbit's "Personal" OAuth application type rather than a multi-user server-side deployment. The project is also open to contribution - it ships a standard npm-based development setup (clone, npm install, npm run build, npm run dev) and a GitHub Actions workflow that verifies every pull request's build and automates publishing new versions to npm on a tagged release.

Source README

MseeP.ai Security Assessment Badge

Fitbit MCP (Model Context Protocol)

smithery badge

Disclaimer: This is an unofficial integration built using Fitbit's public API and is not affiliated with or endorsed by Fitbit Inc.

A Model Context Protocol (MCP) implementation for Fitbit, enabling AI assistants to access and analyze your Fitbit health and fitness data.

Usage

For JSON configuration (for use with AI assistant frameworks):

{
  "command": "npx",
  "args": ["-y", "fitbit-mcp", "--stdio"],
  "env": {
    "FITBIT_ACCESS_TOKEN": "YOUR_FITBIT_ACCESS_TOKEN"
  }
}

Or with arguments instead of environment variables:

{
  "command": "npx",
  "args": ["-y", "fitbit-mcp", "--stdio", "--fitbit-token=YOUR_FITBIT_ACCESS_TOKEN"]
}

Available Tools

This MCP provides the following tools for AI assistants to access your Fitbit data:

  • getUserProfile: Get your Fitbit profile information
  • getActivities: Get activity data for a specified date
  • getSleepLogs: Get sleep data for a specified date
  • getHeartRate: Get heart rate data for a specified date and period
  • getSteps: Get step count for a specified date and period
  • getBodyMeasurements: Get weight and body fat data
  • getFoodLogs: Get food log data for a specified date
  • getWaterLogs: Get water consumption data for a specified date
  • getLifetimeStats: Get lifetime activity statistics
  • getUserSettings: Get user settings and preferences
  • getFloorsClimbed: Get floors climbed data
  • getDistance: Get distance data
  • getCalories: Get calories burned data
  • getActiveZoneMinutes: Get active zone minutes data
  • getDevices: Get information about connected Fitbit devices
  • getBadges: Get earned badges and achievements

Most tools accept optional parameters:

  • date: Date in YYYY-MM-DD format (defaults to today)
  • period: Time period for data (1d, 7d, 30d, 1w, 1m)

Obtaining a Fitbit Access Token

To get a Fitbit access token:

  1. Create an application at Fitbit Developer Portal
  2. Set OAuth 2.0 Application Type to "Personal"
  3. Set Callback URL to "http://localhost:3000"
  4. After creating the application, note your Client ID and Client Secret
  5. Use the OAuth 2.0 authorization flow to obtain an access token

For detailed instructions on OAuth authentication, see the Fitbit API Documentation.

Clone the repository

git clone https://github.com/your-username/fitbit-mcp.git
cd fitbit-mcp

Install dependencies

npm install

Build the project

npm run build

Run in development mode

npm run dev


#### Release Process

To publish a new version to NPM:

1. Update the version in `package.json`
2. Create a new GitHub release with a tag like `v1.0.1`
3. The GitHub Actions workflow will automatically build and publish the package to NPM

Make sure you have the `NPM_TOKEN` secret configured in your GitHub repository settings.

FAQ

Common questions

Trust

How it checks out

Official By maintainer
Downloads 0

Discussion

Questions & comments · 0

Sign In Sign in to leave a comment.