The Fitbit MCP Server acts as a bridge between an LLM (like Claude) and the Fitbit API, enabling health and fitness data retrieval for the user.
Capabilities:
- Retrieve Weight Data: Fetch weight data for specified periods (1d, 7d, 30d, 3m, 6m, 1y)
- Retrieve Sleep Data: Access sleep logs for specific date ranges (max 100 days) using YYYY-MM-DD format
- Retrieve Profile Information: Get user's Fitbit profile including personal details like name, age, gender, height, and weight
The server uses OAuth 2.0 for secure authentication and is designed to be extensible for adding more Fitbit API endpoints in the future.
Retrieves health and fitness data from a user's Fitbit account, including weight measurements, sleep logs, and user profile information. Currently supports endpoints for weight data by period, sleep data by date range, and profile details, with planned support for steps, heart rate, and activity data.
Fitbit MCP Connector for AI
Connect AI assistants to your Fitbit health data
Give your AI assistant access to your Fitbit data for personalized health insights, trend analysis, and automated tracking. Works with Claude Desktop and other MCP-compatible AI tools.
What it does
🏃 Exercise & Activities - Get detailed workout logs and activity data
😴 Sleep Analysis - Retrieve sleep patterns and quality metrics
⚖️ Weight Tracking - Access weight trends over time
❤️ Heart Rate Data - Monitor heart rate patterns and zones
🍎 Nutrition Logs - Review food intake, calories, and macros
👤 Profile Info - Access basic Fitbit profile details
Ask your AI things like: "Show me my sleep patterns this week" or "What's my average heart rate during workouts?"
Quick Start
🚀 Want to test the tools right away?
Option 1: Install from npm (Recommended)
- Get Fitbit API credentials
- Create an app with OAuth 2.0 Application Type:
Personal
- Set Callback URL:
http://localhost:3000/callback
- Note your Client ID and Client Secret
- Create an app with OAuth 2.0 Application Type:
- Install the package globally:
- Add to your Claude Desktop config file:
- Config file location:
- Windows: %AppData%\Claude\claude_desktop_config.json
- macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
- Linux: ~/.config/Claude/claude_desktop_config.json
- Restart Claude Desktop and ask about your Fitbit data!
Option 2: Development Setup
- Get Fitbit API credentials (see Installation below)
- Then run:
Both options open the MCP Inspector at http://localhost:5173
where you can test all tools interactively and handle the OAuth flow.
Installation
For End Users (npm package)
- Get Fitbit API credentials at dev.fitbit.com
- Set OAuth 2.0 Application Type to
Personal
- Set Callback URL to
http://localhost:3000/callback
- Set OAuth 2.0 Application Type to
- Install the package:
- Create
.env
file in the package directory:When you runmcp-fitbit
for the first time, it will tell you exactly where to create the.env
file. It will look something like: - Add your credentials to the
.env
file: - Run the server:
For Developers (from source)
- Get Fitbit API credentials at dev.fitbit.com
- Set OAuth 2.0 Application Type to
Personal
- Set Callback URL to
http://localhost:3000/callback
- Set OAuth 2.0 Application Type to
- Clone and setup:
- Create
.env
file: - Build the server:
Available Tools
Tool | Description | Parameters |
---|---|---|
get_weight | Weight data over time periods | period : 1d , 7d , 30d , 3m , 6m , 1y |
get_sleep_by_date_range | Sleep logs for date range (max 100 days) | startDate , endDate (YYYY-MM-DD) |
get_exercises | Activity/exercise logs after date | afterDate (YYYY-MM-DD), limit (1-100) |
get_daily_activity_summary | Daily activity summary with goals | date (YYYY-MM-DD) |
get_activity_goals | User's activity goals (daily/weekly) | period : daily , weekly |
get_activity_timeseries | Activity time series data (max 30 days) | resourcePath , startDate , endDate (YYYY-MM-DD) |
get_azm_timeseries | Active Zone Minutes time series (max 1095 days) | startDate , endDate (YYYY-MM-DD) |
get_heart_rate | Heart rate for time period | period : 1d , 7d , 30d , 1w , 1m , optional date |
get_heart_rate_by_date_range | Heart rate for date range (max 1 year) | startDate , endDate (YYYY-MM-DD) |
get_food_log | Complete nutrition data for a day | date (YYYY-MM-DD or "today") |
get_nutrition | Individual nutrient over time | resource , period , optional date |
get_nutrition_by_date_range | Individual nutrient for date range | resource , startDate , endDate |
get_profile | User profile information | None |
Nutrition resources: caloriesIn
, water
, protein
, carbs
, fat
, fiber
, sodium
Activity time series resources: steps
, distance
, calories
, activityCalories
, caloriesBMR
, tracker/activityCalories
, tracker/calories
, tracker/distance
Claude Desktop
Using npm package (recommended):
Add to claude_desktop_config.json
:
Using local development version:
Add to claude_desktop_config.json
:
Config file locations:
- Windows:
%AppData%\Claude\claude_desktop_config.json
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json
- Linux:
~/.config/Claude/claude_desktop_config.json
First Run Authorization
When you first ask your AI assistant to use Fitbit data:
- The server opens your browser to
http://localhost:3000/auth
- Log in to Fitbit and grant permissions
- You'll be redirected to a success page
- Your AI can now access your Fitbit data!
Development
Architecture: See TASKS.md for improvement opportunities and technical details.
You must be authenticated.
local-only server
The server can only run on the client's local machine because it depends on local resources.
A Model Context Protocol server that bridges LLMs (like Claude) with the Fitbit API, allowing the LLM to request and retrieve user health and fitness data through defined tools.
Related MCP Servers
- -securityFlicense-qualityA Model Context Protocol server for tracking personal health and well-being, offering tools for workout logging, nutrition management, and daily journaling with AI-assisted analysis integration.Last updated -2Python
- -securityAlicense-qualityA Model Context Protocol server that provides health data from the Senechal API to LLM applications, enabling AI assistants to access, analyze, and respond to personal health information.Last updated -PythonGPL 3.0
- -securityFlicense-qualityA Model Context Protocol server that provides language models with access to personal Whoop fitness data, allowing queries for cycles, recovery, strain, and workout information from the Whoop API.Last updated -2Python
- AsecurityAlicenseAqualityA Model Context Protocol server that provides basic mathematical and statistical functions to LLMs, enabling them to perform accurate numerical calculations through a simple API.Last updated -1313TypeScriptMIT License