Skip to main content
Glama

Fitbit MCP Server

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?

  1. 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
  2. Install the package globally:
npm install -g mcp-fitbit
  1. Add to your Claude Desktop config file:
{ "mcpServers": { "fitbit": { "command": "mcp-fitbit", "args": [], "env": { "FITBIT_CLIENT_ID": "your_client_id_here", "FITBIT_CLIENT_SECRET": "your_client_secret_here" } } } }
  • 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
  1. Restart Claude Desktop and ask about your Fitbit data!

Option 2: Development Setup

  1. Get Fitbit API credentials (see Installation below)
  2. Then run:
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.

Installation

For End Users (npm package)

  1. Get Fitbit API credentials at dev.fitbit.com
    • Set OAuth 2.0 Application Type to Personal
    • Set Callback URL to http://localhost:3000/callback
  2. Install the package:
    npm install -g mcp-fitbit
  3. 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
  4. Add your credentials to the .env file:
    FITBIT_CLIENT_ID=your_client_id_here FITBIT_CLIENT_SECRET=your_client_secret_here
  5. Run the server:
    mcp-fitbit

For Developers (from source)

  1. Get Fitbit API credentials at dev.fitbit.com
    • Set OAuth 2.0 Application Type to Personal
    • Set Callback URL to http://localhost:3000/callback
  2. Clone and setup:
    git clone https://github.com/TheDigitalNinja/mcp-fitbit cd mcp-fitbit npm install
  3. Create .env file:
    FITBIT_CLIENT_ID=your_client_id_here FITBIT_CLIENT_SECRET=your_client_secret_here
  4. Build the server:
    npm run build

Available Tools

ToolDescriptionParameters
get_weightWeight data over time periodsperiod: 1d, 7d, 30d, 3m, 6m, 1y
get_sleep_by_date_rangeSleep logs for date range (max 100 days)startDate, endDate (YYYY-MM-DD)
get_exercisesActivity/exercise logs after dateafterDate (YYYY-MM-DD), limit (1-100)
get_daily_activity_summaryDaily activity summary with goalsdate (YYYY-MM-DD)
get_activity_goalsUser's activity goals (daily/weekly)period: daily, weekly
get_activity_timeseriesActivity time series data (max 30 days)resourcePath, startDate, endDate (YYYY-MM-DD)
get_azm_timeseriesActive Zone Minutes time series (max 1095 days)startDate, endDate (YYYY-MM-DD)
get_heart_rateHeart rate for time periodperiod: 1d, 7d, 30d, 1w, 1m, optional date
get_heart_rate_by_date_rangeHeart rate for date range (max 1 year)startDate, endDate (YYYY-MM-DD)
get_food_logComplete nutrition data for a daydate (YYYY-MM-DD or "today")
get_nutritionIndividual nutrient over timeresource, period, optional date
get_nutrition_by_date_rangeIndividual nutrient for date rangeresource, startDate, endDate
get_profileUser profile informationNone

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:

{ "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:

  • 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:

  1. The server opens your browser to http://localhost:3000/auth
  2. Log in to Fitbit and grant permissions
  3. You'll be redirected to a success page
  4. Your AI can now access your Fitbit data!

Development

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.

You must be authenticated.

A
security – no known vulnerabilities
A
license - permissive license
A
quality - confirmed to work

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.

  1. What it does
    1. Quick Start
      1. Option 1: Install from npm (Recommended)
      2. Option 2: Development Setup
    2. Installation
      1. For End Users (npm package)
      2. For Developers (from source)
    3. Available Tools
      1. Claude Desktop
      2. First Run Authorization
    4. Development

      Related MCP Servers

      • -
        security
        F
        license
        -
        quality
        A 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 -
        2
        Python
      • -
        security
        A
        license
        -
        quality
        A 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 -
        Python
        GPL 3.0
        • Linux
        • Apple
      • -
        security
        F
        license
        -
        quality
        A 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 -
        2
        Python
        • Apple
      • A
        security
        A
        license
        A
        quality
        A 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 -
        13
        13
        TypeScript
        MIT License

      View all related MCP servers

      MCP directory API

      We provide all the information about MCP servers via our MCP API.

      curl -X GET 'https://glama.ai/api/mcp/v1/servers/TheDigitalNinja/mcp-fitbit'

      If you have feedback or need assistance with the MCP directory API, please join our Discord server