Unofficial, local-first Model Context Protocol server for connecting AI agents to user-authorized Fitbit data through the official Fitbit Web API.
It is designed for Claude, Cursor, Windsurf, Hermes, OpenClaw and other MCP clients that need safe access to activity, sleep, heart-rate, HRV, weight and nutrition context.
Not affiliated with, endorsed by, or sponsored by Fitbit or Google. Not medical advice.
- OAuth 2.0 authorization code flow with local token storage.
- Activity summaries and activity logs.
- Sleep logs and sleep-stage summaries when Fitbit provides them.
- Daily heart-rate zones and resting heart rate.
- Intraday heart-rate samples when the Fitbit app/API access permits it.
- HRV, SpO2 and breathing-rate endpoints when available for the account/device.
- Weight, food and water logs.
- Daily and weekly agent-ready summaries.
- Privacy modes:
summary,structured,raw. - Hermes-focused agent manifest and setup diagnostics.
Create a Fitbit app at dev.fitbit.com/apps and set the callback URL to:
http://127.0.0.1:3000/callback
Recommended read scopes:
activity heartrate profile settings sleep weight nutrition
Then run:
npx -y fitbit-mcp-unofficial setup
npx -y fitbit-mcp-unofficial auth
npx -y fitbit-mcp-unofficial doctorStart the MCP server:
npx -y fitbit-mcp-unofficial{
"mcpServers": {
"fitbit": {
"command": "npx",
"args": ["-y", "fitbit-mcp-unofficial"]
}
}
}npx -y fitbit-mcp-unofficial setup --client hermes --no-auth
npx -y fitbit-mcp-unofficial doctor --client hermesAfter config changes, reload MCP with /reload-mcp or hermes mcp test fitbit. A normal Fitbit data-access issue should not require restarting the Hermes gateway.
Core setup and safety:
fitbit_agent_manifestfitbit_capabilitiesfitbit_connection_statusfitbit_get_auth_urlfitbit_exchange_codefitbit_privacy_auditfitbit_cache_statusfitbit_revoke_access
Data tools:
fitbit_get_profilefitbit_list_devicesfitbit_get_activity_dayfitbit_list_activitiesfitbit_get_activityfitbit_get_sleep_dayfitbit_list_sleepfitbit_get_heart_dayfitbit_get_heart_intradayfitbit_get_hrv_dayfitbit_get_spo2_dayfitbit_get_breathing_rate_dayfitbit_get_weight_dayfitbit_get_food_dayfitbit_get_water_day
Workflow tools:
fitbit_daily_summaryfitbit_weekly_summary
Tokens are stored locally under ~/.fitbit-mcp/ with user-only permissions. The server never prints access tokens or refresh tokens.
Privacy modes:
summary: minimal fields for safe agent use.structured: normalized Fitbit data for analysis.raw: upstream Fitbit JSON, only when explicitly requested.
Health data is sensitive. Do not paste raw payloads publicly. This MCP is for personal context and training/wellness reflection, not diagnosis or treatment.
npm install
npm test- Website: https://fitbitmcp.vercel.app/
- GitHub: https://github.com/davidmosiah/fitbitmcp
- npm: https://www.npmjs.com/package/fitbit-mcp-unofficial
- Delx Wellness registry: https://github.com/davidmosiah/delx-wellness
- Connector quality standard: https://github.com/davidmosiah/delx-wellness/blob/main/docs/connector-quality-standard.md
- Fitbit Web API: https://dev.fitbit.com/build/reference/web-api/