Fitbit Health Data
STDIOMCP server bridging LLMs with Fitbit API for health and fitness data retrieval.
MCP server bridging LLMs with Fitbit API for health and fitness data retrieval.
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.
🏃 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?"
🚀 Want to test the tools right away?
Personal
http://localhost:3000/callback
Install the package globally:
npm install -g mcp-fitbit
{ "mcpServers": { "fitbit": { "command": "mcp-fitbit", "args": [], "env": { "FITBIT_CLIENT_ID": "your_client_id_here", "FITBIT_CLIENT_SECRET": "your_client_secret_here" } } } }
git clone https://github.com/TheDigitalNinja/mcp-fitbit cd mcp-fitbit npm install # Create .env with your Fitbit credentials npm run dev
Both options open the MCP Inspector at http://localhost:5173
where you can test all tools interactively and handle the OAuth flow.
Get Fitbit API credentials at dev.fitbit.com
Personal
http://localhost:3000/callback
Install the package:
npm install -g mcp-fitbit
Create .env
file in the package directory:
When you run mcp-fitbit
for the first time, it will tell you exactly where to create the .env
file. It will look something like:
C:\Users\YourName\AppData\Roaming\npm\node_modules\mcp-fitbit\.env
Add your credentials to the .env
file:
FITBIT_CLIENT_ID=your_client_id_here FITBIT_CLIENT_SECRET=your_client_secret_here
Run the server:
mcp-fitbit
Get Fitbit API credentials at dev.fitbit.com
Personal
http://localhost:3000/callback
Clone and setup:
git clone https://github.com/TheDigitalNinja/mcp-fitbit cd mcp-fitbit npm install
Create .env
file:
FITBIT_CLIENT_ID=your_client_id_here FITBIT_CLIENT_SECRET=your_client_secret_here
Build the server:
npm run build
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
Using npm package (recommended):
Add to claude_desktop_config.json
:
{ "mcpServers": { "fitbit": { "command": "mcp-fitbit", "args": [] } } }
Using local development version:
Add to claude_desktop_config.json
:
{ "mcpServers": { "fitbit": { "command": "node", "args": ["C:\\path\\to\\mcp-fitbit\\build\\index.js"] } } }
Config file locations:
%AppData%\Claude\claude_desktop_config.json
~/Library/Application Support/Claude/claude_desktop_config.json
~/.config/Claude/claude_desktop_config.json
When you first ask your AI assistant to use Fitbit data:
http://localhost:3000/auth
npm run lint # Check code quality npm run format # Fix formatting npm run build # Compile TypeScript npm run dev # Run with MCP inspector
Architecture: See TASKS.md for improvement opportunities and technical details.