- Home
- MCP servers
- Fitbit
Fitbit
- typescript
23
GitHub Stars
typescript
Language
6 months ago
First Indexed
2 months ago
Catalog Refreshed
Documentation & install
Readme and setup notes from the catalogue, plus a client-ready config you can copy for your MCP host.
Installation
Add the following to your MCP client configuration file.
Configuration
View docs{
"mcpServers": {
"thedigitalninja-mcp-fitbit": {
"command": "mcp-fitbit",
"args": [],
"env": {
"FITBIT_CLIENT_ID": "your_client_id_here",
"FITBIT_CLIENT_SECRET": "your_client_secret_here"
}
}
}
}You can connect your AI assistant to your Fitbit data using the Fitbit MCP Connector for AI, enabling personalized health insights from workouts, sleep, weight, heart rate, nutrition, and profile information. It works with Claude Desktop and other MCP-compatible tools to give your AI access to your Fitbit health data.
How to use
Install and run the Fitbit MCP server as an MCP stdio server, then connect your MCP client (for example Claude Desktop) to the local server to access your Fitbit data. When you first request to use Fitbit data, the server will open a browser to authorize access to your Fitbit account. After you authorize, your AI can query data such as sleep patterns, heart rate, workouts, and nutrition.
Useful patterns include asking your AI questions like, “Show me my sleep patterns this week” or “What was my average heart rate during workouts?” You can query a variety of data types, including exercise logs, sleep analysis, nutrition logs, and profile info.
Configure the MCP client to point at the Fitbit MCP server as a local stdio process, then start the client and begin querying Fitbit data. The MCP Inspector is available locally at http://localhost:5173 to test tools and the authorization flow.
How to install
Prerequisites: you need Node.js installed on your machine. You will also set up Fitbit API credentials. Use an OAuth 2.0 Personal app and a callback URL of http://localhost:3000/callback.
Option A: Install from npm (recommended)
npm install -g mcp-fitbit
Create a configuration block for Claude Desktop (or your MCP client) that points to the local Fitbit MCP server and provides your Fitbit credentials via environment variables.
{
"mcpServers": {
"fitbit": {
"command": "mcp-fitbit",
"args": [],
"env": {
"FITBIT_CLIENT_ID": "your_client_id_here",
"FITBIT_CLIENT_SECRET": "your_client_secret_here"
}
}
}
}
Option A continuation: startup and first run
After adding the config, restart your MCP client. When you run the server for the first time, it will guide you through the OAuth flow and ask you to authorize access to your Fitbit data.
Run the server and begin using Fitbit data with your AI assistant.
Option B: Development setup
If you are developing locally, you can clone the project, install dependencies, and run in development mode.
git clone https://github.com/TheDigitalNinja/mcp-fitbit
cd mcp-fitbit
npm install
# Create .env with your Fitbit credentials
npm run dev
Available tools
get_weight
Fetch weight data over a specified time period. Supported periods include 1d, 7d, 30d, 3m, 6m, and 1y.
get_sleep_by_date_range
Retrieve sleep logs within a date range. You can specify startDate and endDate in YYYY-MM-DD format (max 100 days).
get_exercises
Obtain activity and exercise logs after a given date. Include afterDate (YYYY-MM-DD) and limit (1-100).
get_daily_activity_summary
Get the daily activity summary for a specific date, including goals.
get_activity_goals
Query the user’s activity goals, either daily or weekly.
get_activity_timeseries
Access activity time series data such as steps, distance, calories, and zones for a date range.
get_azm_timeseries
Retrieve Active Zone Minutes time series over a date range (up to 1095 days).
get_heart_rate
Fetch heart rate data for a period such as 1d, 7d, 30d, 1w, 1m, or an exact date.
get_heart_rate_by_date_range
Obtain heart rate data for a specified date range (max 1 year).
get_food_log
Return complete nutrition data for a single day, including meals and entries.
get_nutrition
Query nutrition data for a resource over a period, with an optional date.
get_nutrition_by_date_range
Fetch nutrition data for a date range for a specific nutrient or resource.
get_profile
Retrieve user profile information.