Fitbit MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| FITBIT_CLIENT_ID | Yes | Your Fitbit application client ID obtained from dev.fitbit.com | |
| FITBIT_CLIENT_SECRET | Yes | Your Fitbit application client secret obtained from dev.fitbit.com |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| get_weightA | Get the raw JSON response for weight entries from Fitbit for a specified period ending today. Requires a 'period' parameter such as '1d', '7d', '30d', '3m', '6m', '1y' |
| get_sleep_by_date_rangeA | Get the raw JSON response for sleep logs from Fitbit for a specific date range. Requires 'startDate' and 'endDate' parameters in 'YYYY-MM-DD' format. Note: The API enforces a maximum range of 100 days. |
| get_profileA | Get the raw JSON response for the user's Fitbit profile. |
| get_exercisesB | Get the raw JSON response for exercise and activity logs from Fitbit after a specific date. Requires 'afterDate' parameter in 'YYYY-MM-DD' format. Retrieves a detailed list of logged exercises and activities. |
| get_heart_rateA | Get the raw JSON response for heart rate data from Fitbit for a specified period ending today or on a specific date. Requires a 'period' parameter such as '1d', '7d', '30d', '1w', '1m' and optionally accepts 'date' parameter. |
| get_heart_rate_by_date_rangeA | Get the raw JSON response for heart rate data from Fitbit for a specific date range. Requires 'startDate' and 'endDate' parameters in 'YYYY-MM-DD' format. Note: The API enforces a maximum range of 1 year. |
| get_food_logA | Get comprehensive nutrition data (calories, protein, carbs, fat, fiber, sodium) from Fitbit food log for a specific date. Returns daily summary totals and individual food entries with nutritional values. |
| get_nutritionC | Get the raw JSON response for nutrition data from Fitbit for a specified resource and period ending today or on a specific date. Requires 'resource' parameter (caloriesIn, water) and 'period' parameter such as '1d', '7d', '30d', '1w', '1m', '3m', '6m', '1y' and optionally accepts 'date' parameter. |
| get_nutrition_by_date_rangeA | Get the raw JSON response for nutrition data from Fitbit for a specific resource and date range. Requires 'resource' parameter (caloriesIn, water), 'startDate' and 'endDate' parameters in 'YYYY-MM-DD' format. Note: The API enforces a maximum range of 1,095 days. |
| get_daily_activity_summaryA | Get the raw JSON response for daily activity summary from Fitbit for a specific date. Includes goals, steps, calories, distances, and heart rate zones. Requires a 'date' parameter in YYYY-MM-DD format. |
| get_activity_goalsA | Get the raw JSON response for user's activity goals from Fitbit. Supports 'daily' and 'weekly' periods. Returns goal values for steps, distance, calories, floors, active minutes, and active zone minutes. |
| get_activity_timeseriesA | Get the raw JSON response for activity time series data from Fitbit over a date range (max 30 days). Supports various resource paths like 'steps', 'distance', 'calories', 'activityCalories', 'caloriesBMR'. |
| get_azm_timeseriesA | Get the raw JSON response for Active Zone Minutes (AZM) time series data from Fitbit over a date range (max 1095 days). Returns total AZM plus breakdown by fat burn, cardio, and peak zones. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 13 tools
Most tools are clearly separated by data type (weight, sleep, heart rate, nutrition, activity), but get_food_log and get_nutrition overlap in nutrition data, and get_daily_activity_summary vs get_activity_timeseries could be confused for similar activity data.
All tools follow a consistent get_<resource> pattern, with suffixes like _by_date_range and _timeseries for variants. Minor inconsistency: get_food_log vs get_nutrition use different resource names for overlapping data, and get_azm_timeseries uses an abbreviation.
13 tools is well-scoped for a Fitbit data retrieval server, covering the major health data categories without excessive fragmentation.
The server covers read-only retrieval across major Fitbit domains (weight, sleep, heart rate, nutrition, activity, profile), but lacks write operations (logging food, activity, sleep) and some common resources like SpO2 or temperature. For a read-only data access server, the coverage is reasonable but not exhaustive.