io.github.davidmosiah/fitbitmcp
Privacy-first, unofficial Fitbit MCP server for AI health, sleep, activity and heart-rate agents.
Versions
0.4.7latest0.4.60.4.50.4.40.4.3+ show 7 moreshow less
0.4.20.4.10.4.00.3.00.2.10.2.00.1.0Tools 21
fitbit_data_inventory Inventory supported Fitbit data domains, auth scope requirements, privacy boundary and recommended first calls. Does not call Fitbit APIs or expose user data.
fitbit_agent_manifest Machine-readable install, runtime and client guidance for AI agents. Does not call Fitbit or expose secrets.
fitbit_capabilities Explain supported Fitbit data, privacy boundaries, recommended agent workflow and project links.
fitbit_quickstart Personalized 3-step setup walkthrough for the human user. Adapts to current state (env vars set? token present? what's next?). Call this first when the user asks 'how do I connect Fitbit?'
fitbit_demo Returns realistic example payloads of fitbit_daily_summary, fitbit_wellness_context, and fitbit_get_heart_day so agents see the contract before calling real Fitbit APIs.
fitbit_get_auth_url Generate a Fitbit OAuth authorization URL. Use this first when no local token exists.
fitbit_exchange_code Exchange a Fitbit OAuth authorization code for local tokens. Tokens are stored locally with 0600 permissions and are never returned. Requires explicit user action: the user must complete browser OAuth and supply the authorization code (agents must not invent codes).
fitbit_get_profile Get the authenticated Fitbit user profile. Requires profile scope.
fitbit_list_devices List devices connected to the authenticated Fitbit account. Requires settings scope.
fitbit_get_heart_intraday Get raw heart-rate intraday samples for a date. For agent work prefer fitbit_heart_series (agent-safe-series/v1 with hard point caps and exact stats).
fitbit_heart_series Bounded heart-rate time-series for one civil day (agent-safe-series/v1).
fitbit_connection_status Check local Fitbit config, token file, Node version, privacy mode, cache readiness and optional MCP client readiness without calling Fitbit or exposing secrets.
fitbit_cache_status Show optional local SQLite cache status. Enable with FITBIT_CACHE=sqlite or FITBIT_CACHE=true.
fitbit_privacy_audit Return local privacy, cache, token-path and env-presence posture without revealing secret values.
fitbit_revoke_access Revoke the current Fitbit OAuth grant and delete the local token file. Use only when the user explicitly wants to disconnect Fitbit. Gated by explicit_user_intent: true (requires explicit user intent).
fitbit_daily_summary Build a practical daily summary from Fitbit activity, sleep, heart-rate, HRV and weight data when available. Read-only and non-medical.
fitbit_weekly_summary Build a weekly Fitbit scorecard with activity, sleep, heart-rate, HRV availability, bottlenecks and actions. Read-only and non-medical.
fitbit_wellness_context Normalize Fitbit sleep and activity load into the shared wellness_context shape for recommendation engines.
fitbit_profile_get Read the canonical Delx Wellness profile shared with the other wellness MCP connectors (Nourish, Cycle Coach, CGM, etc.). Read-only. Profile stores only what the user typed during onboarding — never OAuth tokens, API keys, or biomarkers.
fitbit_profile_update Persist a partial patch to the canonical Delx Wellness profile. Requires explicit_user_intent=true after the user confirms they want to save. Rejects secret-like fields (oauth, token, api_key, password, cookie, refresh, session).
fitbit_onboarding Read-only. Return the 11-question Delx Wellness onboarding flow (en or pt-BR), the current shared profile, missing critical fields, and a cross-connector hint. Use this when the user starts a fresh wellness session and you need to fill out preferred_name, goals, devices, training context, nutrition, preferences, and safety.
Permissions 3
network medium shell high env_vars low