npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@einlogic/mcp-fitbit

v1.0.1

Published

Fork of TheDigitalNinja's mcp-fitbit with the addition of the Heart Rate Variability (HRV) tool. MCP server for accessing Fitbit health and fitness data. Connect AI assistants like Claude to your Fitbit data for personalized health insights.

Readme

Fitbit MCP Connector for AI

Fitbit API CI Coverage Status License: MIT npm version npm downloads

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)

  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

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

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