{"name":"io.github.davidmosiah/fitbitmcp","slug":"davidmosiah-fitbitmcp","title":null,"description":"Privacy-first, unofficial Fitbit MCP server for AI health, sleep, activity and heart-rate agents.","url":"https://mcp.market/server/davidmosiah-fitbitmcp","rating":null,"grade":"B","score":83,"certified":false,"status":"active","category":"other","tags":[],"presence":{"score":39,"stars":5,"forks":2,"downloads_week":419,"last_push_at":"2026-11-05T16:29:40.000Z","license":"MIT"},"uptime":null,"claimed":false,"transport":"npm","callable_via_gateway":false,"default_price_micros":0,"repository":"https://github.com/davidmosiah/fitbit-mcp","website":"https://wellness.delx.ai/connectors/fitbit","version":"0.4.5","remotes":[],"packages":[{"registryType":"npm","identifier":"fitbit-mcp-unofficial","version":"0.4.5","transport":{"type":"stdio"},"environmentVariables":[{"description":"Fitbit OAuth client ID. Optional when configured with fitbit-mcp-server setup.","format":"string","name":"FITBIT_CLIENT_ID"},{"description":"Fitbit OAuth client secret. Prefer fitbit-mcp-server setup so this secret is stored in ~/.fitbit-mcp/config.json instead of MCP client config.","format":"string","isSecret":true,"name":"FITBIT_CLIENT_SECRET"},{"description":"Redirect URI configured in the Fitbit Developer Dashboard. Optional when configured with fitbit-mcp-server setup.","format":"string","name":"FITBIT_REDIRECT_URI"},{"description":"Optional local path for OAuth tokens. Defaults to ~/.fitbit-mcp/tokens.json.","format":"string","name":"FITBIT_TOKEN_PATH"},{"description":"Optional payload mode: summary, structured, or raw. Defaults to structured. raw means full Fitbit API payloads, not continuous 24/7 raw sensor telemetry.","format":"string","name":"FITBIT_PRIVACY_MODE"},{"description":"Optional SQLite cache toggle. Set to true or sqlite to enable.","format":"string","name":"FITBIT_CACHE"},{"description":"Optional local SQLite cache path. Defaults to ~/.fitbit-mcp/cache.sqlite.","format":"string","name":"FITBIT_CACHE_PATH"},{"description":"Set to true to bypass the in-memory HTTP response cache (60s TTL for GET only). POST/PUT/DELETE and 4xx/5xx responses are never cached regardless.","format":"string","name":"FITBIT_NO_CACHE"}]}],"tools":[{"name":"fitbit_agent_manifest","description":"Machine-readable install, runtime and client guidance for AI agents. Does not call Fitbit or expose secrets.","write_action":false,"price_micros":0,"input_schema":null},{"name":"fitbit_cache_status","description":"Show optional local SQLite cache status. Enable with FITBIT_CACHE=sqlite or FITBIT_CACHE=true.","write_action":false,"price_micros":0,"input_schema":null},{"name":"fitbit_capabilities","description":"Explain supported Fitbit data, privacy boundaries, recommended agent workflow and project links.","write_action":false,"price_micros":0,"input_schema":null},{"name":"fitbit_connection_status","description":"Check local Fitbit config, token file, Node version, privacy mode, cache readiness and optional MCP client readiness without calling Fitbit or exposing secrets.","write_action":false,"price_micros":0,"input_schema":null},{"name":"fitbit_daily_summary","description":"Build a practical daily summary from Fitbit activity, sleep, heart-rate, HRV and weight data when available. Read-only and non-medical.","write_action":false,"price_micros":0,"input_schema":null},{"name":"fitbit_data_inventory","description":"Inventory supported Fitbit data domains, auth scope requirements, privacy boundary and recommended first calls. Does not call Fitbit APIs or expose user data.","write_action":false,"price_micros":0,"input_schema":null},{"name":"fitbit_demo","description":"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.","write_action":false,"price_micros":0,"input_schema":null},{"name":"fitbit_exchange_code","description":"Exchange a Fitbit OAuth authorization code for local tokens. Tokens are stored locally with 0600 permissions and are never returned.","write_action":false,"price_micros":0,"input_schema":null},{"name":"fitbit_get_auth_url","description":"Generate a Fitbit OAuth authorization URL. Use this first when no local token exists.","write_action":false,"price_micros":0,"input_schema":null},{"name":"fitbit_get_heart_intraday","description":"Get heart-rate intraday samples for a date. Personal apps can access their own intraday data; third-party client/server apps may require Fitbit approval. Requires heartrate scope. Not medical advice.","write_action":false,"price_micros":0,"input_schema":null},{"name":"fitbit_get_profile","description":"Get the authenticated Fitbit user profile. Requires profile scope.","write_action":false,"price_micros":0,"input_schema":null},{"name":"fitbit_list_devices","description":"List devices connected to the authenticated Fitbit account. Requires settings scope.","write_action":false,"price_micros":0,"input_schema":null},{"name":"fitbit_onboarding","description":"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.","write_action":false,"price_micros":0,"input_schema":null},{"name":"fitbit_privacy_audit","description":"Return local privacy, cache, token-path and env-presence posture without revealing secret values.","write_action":false,"price_micros":0,"input_schema":null},{"name":"fitbit_profile_get","description":"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.","write_action":false,"price_micros":0,"input_schema":null},{"name":"fitbit_profile_update","description":"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).","write_action":true,"price_micros":0,"input_schema":null},{"name":"fitbit_quickstart","description":"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?'","write_action":false,"price_micros":0,"input_schema":null},{"name":"fitbit_revoke_access","description":"Revoke the current Fitbit OAuth grant and delete the local token file. Use only when the user explicitly wants to disconnect Fitbit.","write_action":false,"price_micros":0,"input_schema":null},{"name":"fitbit_weekly_summary","description":"Build a weekly Fitbit scorecard with activity, sleep, heart-rate, HRV availability, bottlenecks and actions. Read-only and non-medical.","write_action":false,"price_micros":0,"input_schema":null},{"name":"fitbit_wellness_context","description":"Normalize Fitbit sleep and activity load into the shared wellness_context shape for recommendation engines.","write_action":false,"price_micros":0,"input_schema":null}],"scan":{"score":83,"grade":"B","scanned_at":"2026-11-10T14:58:45.730Z","report":{"scannerVersion":"0.1.10","scannedAt":"2026-11-10T14:58:45.661Z","components":{"code":{"score":25,"max":25,"notes":["58 source files scanned"]},"reliability":{"score":-1,"max":20,"notes":["no gateway calls yet and no remote to probe"]},"poisoning":{"score":-1,"max":15,"notes":["tools not inspected (local package is not executed); not counted"]},"auth":{"score":6,"max":15,"notes":["static API keys via environment variables"]},"maintenance":{"score":15,"max":15,"notes":["last push 5 days ago"]},"identity":{"score":8,"max":10,"notes":["registry namespace matches repository owner","GitHub account older than a year"]}},"findings":[],"inputs":{"packages":[{"registryType":"npm","identifier":"fitbit-mcp-unofficial","version":"0.4.5","found":true,"license":"MIT","hasInstallScripts":false,"dependencyCount":5,"publishedAt":"2026-05-24T11:29:07.329Z","repositoryUrl":"git+https://github.com/davidmosiah/fitbitmcp.git","weeklyDownloads":419}],"repo":{"found":true,"owner":"davidmosiah","repo":"fitbit-mcp","archived":false,"pushedAt":"2026-11-05T16:29:40Z","stars":5,"forks":2,"openIssues":0,"ownerType":"User","ownerAvatarUrl":"https://avatars.githubusercontent.com/u/624359?v=4","ownerCreatedAt":"2011-02-18T00:23:21Z","license":"MIT"},"icon":{"url":"https://wellness.delx.ai/favicon.svg","source":"registry"},"presence":{"stars":5,"forks":2,"downloadsWeek":419,"license":"MIT","lastPushAt":"2026-11-05T16:29:40.000Z","score":39}}}},"grade_history":[],"reviews":[]}