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.
1.0.1Add 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
Retrieve user profile and settings
Access daily and historical activity data (steps, distance, calories)
Query sleep logs and heart rate information
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
Get information about your Fitbit profile
Get activity data for a specified date
Get sleep data for a specified date
Get heart rate data for a specified date and period
Get step count for a specified date and period
Get weight and body fat percentage data
Get food log data for a specified date
Get water intake data for a specified date
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
Fitbit MCP (Model Context Protocol)
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:
- Create an application at Fitbit Developer Portal
- Set OAuth 2.0 Application Type to "Personal"
- Set Callback URL to "http://localhost:3000"
- After creating the application, note your Client ID and Client Secret
- 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
Discussion
Questions & comments · 0
Sign In Sign in to leave a comment.
