get_activity_goals
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.
Pull your Fitbit record into the conversation — weight, sleep, heart rate, exercises, food and nutrition, daily activity summaries, goals and Active Zone Minutes — with each tool stating the API's own range limit.
LABSCO SUMMARY
The API's ceilings are stated where you will actually read them: 100 days for a sleep range, one year for a heart-rate range, 1,095 days for nutrition and Active Zone Minutes, 30 days for the activity time series. It is a small thing that saves a lot of failed calls. Everything returns the raw JSON response, which is honest about what it is — no reshaping and no derived metrics — and it means an answer you get back is grounded in the fields Fitbit actually publishes. It reads only: nothing here logs a meal or changes a goal.
A read-only Fitbit server returning the raw API responses for weight, sleep, heart rate, activity, nutrition and goals, addressed either by a period ending today or by an explicit date range.
A Fitbit account and a registered Fitbit application, whose client ID and secret go in FITBIT_CLIENT_ID and FITBIT_CLIENT_SECRET.
One command plus credentials — npm install -g mcp-fitbit, then supply credentials
USE CASES
Sleep logs and the activity series cover the same window, and Active Zone Minutes separate a hard session from a long one, so intensity and rest can be lined up against each other rather than recalled.
The weight series sets the question, the food log answers it day by day with calories and macronutrients, and the nutrition range extends the same measure back across months.
The logged sessions come back as a list after a date you name, the daily summary supplies steps, calories, distances and heart rate zones around them, and the goals say what any of it was measured against.
A period ending today answers the quick version; the explicit date range answers the version worth trusting, over a window the API allows up to 1 year.
Counted once with only startup setup. Other versions, modes or optional credentials may expose a different list.
get_activity_goalsGet 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_timeseriesGet 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_timeseriesGet 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.
get_daily_activity_summaryGet 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_exercisesGet 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_food_logGet 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_heart_rateGet 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_rangeGet 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_nutritionGet 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_rangeGet 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_profileGet the raw JSON response for the user's Fitbit profile.
get_sleep_by_date_rangeGet 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_weightGet 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'
BEFORE YOU INSTALL
13 tools when we connected. Every tool reads; none logs food, weight or activity back to Fitbit. Ranges are capped: sleep at 100 days per call, activity time series at 30 days, heart rate at one year.
The documented client runs the server on your machine.
CONTEXT COST
Rated by the size of the 13 tool definitions that ride along on every turn, not by how many there are
INSTALLATION
npm install -g mcp-fitbit{
"mcpServers": {
"fitbit": {
"command": "mcp-fitbit",
"args": [],
"env": {
"FITBIT_CLIENT_ID": "<YOUR_FITBIT_CLIENT_ID>",
"FITBIT_CLIENT_SECRET": "<YOUR_FITBIT_CLIENT_SECRET>"
}
}
}
}