fitbit-google-health-mcp
Provides read-only access to Fitbit-synced health data, including daily summaries, sleep, activity, body metrics, and recovery insights via the Google Health API.
Uses Google Cloud's Health API v4 to retrieve and analyze Fitbit-synced health data with tools for metrics, summaries, trends, and data quality.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@fitbit-google-health-mcpWhat was my sleep summary and heart rate trends for the past week?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
fitbit-google-health-mcp
Read-only MCP access to Fitbit-synced health data through Google Health API v4. This is not a direct Fitbit Web API integration. The server is MCP-only: there is no dashboard, database, health-data cache, write operation, or arbitrary HTTP tool.
It isolates unavailable metrics so one Google Health API limitation does not fail an entire request.
Setup
Create a Google Cloud project and enable the Google Health API.
Configure an OAuth consent screen and add your Google/Fitbit account as a test user.
Create a Web application OAuth client with this exact redirect URI:
http://127.0.0.1:42813/oauth/callbackCopy
.env.exampleto.envand fill in the client ID and secret. Never commit.envor OAuth tokens.Install and build:
pnpm install pnpm buildAuthorize the account:
set -a; source .env; set +a pnpm authAdd the server to your MCP client using the built
dist/src/index.jsand the same environment variables.run.shis a convenient stdio launcher.
The Fitbit Air must already be paired to the Fitbit mobile app. Fitbit devices sync through the Fitbit app; they do not expose a direct third-party Bluetooth path. Open the Fitbit app and sync before asking the MCP for new readings.
Related MCP server: Google Health Fitbit MCP
Tools
get_data_source_info: provider, data path, read-only boundary, and limitations. Call this first when interpreting results.list_available_metrics: the broad Google Health v4 catalog implemented by this server.get_metrics: query any supported data types over a range, raw or daily aggregate, with source filtering.get_daily_summary: common daily metrics in one call.get_profile,get_devices,get_settings: connected account metadata.get_recent_metrics: recent-range queries with per-metric failure isolation.get_health_snapshot: compact current-day summary.get_trends: numeric averages, ranges, and changes.get_sleep_summary: normalized sleep sessions and stages.get_sync_status: account, devices, and recent-data availability.compare_periods: compare the current period with the prior period.get_data_quality: report coverage, missing data, sources, and API limitations.get_activity_summary: normalized movement and activity trends.get_recovery_summary: informational sleep, heart, oxygen, and respiration summary.get_body_metrics: normalized weight, body-fat, temperature, height, and glucose data.
The server requests read-only scopes only. It does not expose write, delete, webhook, or arbitrary HTTP tools.
Multi-source data
Every metric query and summary accepts:
source:FITBIT,HEALTH_KIT, orall(default).source_priority: source precedence when same-time records disagree; defaults to Fitbit first, then HealthKit.deduplicate: remove exact duplicates and resolve same-time cross-source conflicts (default: true).
Responses retain raw records and add sourceAnalysis metadata containing source coverage, returned versus raw record counts, duplicates removed, and conflicts detected. Source filtering is most precise with raw data; rollup-only Google Health types may report unknown coverage because the rollup response does not carry source metadata.
Development
pnpm install
pnpm checkThe project requires Node 20+ and pnpm. Run pnpm auth once to create the local OAuth token, then use pnpm start or ./run.sh with your MCP client.
Privacy and security
This server handles sensitive health data. Keep OAuth credentials private, use a restricted Google Cloud test-user list, and never paste token contents into issues or logs. Tokens default to ~/.config/fitbit-mcp/tokens.json (or $XDG_CONFIG_HOME/fitbit-mcp/tokens.json) with owner-only permissions. Set FITBIT_MCP_TOKEN_PATH for another secure location.
The server does not diagnose conditions or provide medical advice. Metric availability varies; unavailable results are missing data, not zero.
Notes
Metric presence varies by Fitbit device, account, country, permissions, and recent sync. Google Health API query ranges are constrained: heart-rate, active-minutes, total-calories, and heart-rate-zone queries should be kept to 14 days or less; most other types support up to 90 days per request. Historical data can be fetched in multiple ranges.
Recent and summary tools accept an IANA timezone such as America/Detroit. Raw API records are preserved, while summary tools add normalized distance, weight, calorie, and sleep-duration fields. Missing data is reported explicitly and is never interpreted as zero.
OpenClaw
Register the local stdio server without a hardcoded tool allowlist so newly added read-only tools become available automatically:
openclaw mcp add fitbit-google-health \
--command /Users/rithvik/fitbit-mcp/run.sh \
--cwd /Users/rithvik/fitbit-mcp
openclaw mcp doctor fitbit-google-health --probe
openclaw mcp reloadUse an OpenClaw tool filter only when you intentionally want to restrict the agent. The get_data_source_info tool is the canonical way for an agent to understand that this server uses Google Health API v4 and may contain Fitbit-synced records rather than direct Fitbit Web API records.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Read wearables and lab health data — sleep, activity, workouts, timeseries, lab tests and orders.
MCP server for Withings health data — sleep, activity, heart, and body metrics.
- SomviaOAuthapp.somvia
Private Apple Health metrics and workout detail for ChatGPT, Claude, and any MCP client.
Collect Apple Health data from your wearables through the Context app and query it via MCP
Related MCP Servers
- AlicenseAqualityDmaintenanceRead-only MCP server exposing daily health facts, 7/28-day baselines, and deterministic daily pulse from Google Health API data.73MIT
- AlicenseAqualityBmaintenanceAn MCP server that locally authenticates with Google Health API v4 and provides read-only access to Fitbit, Pixel Watch, and other health data for AI agents.2910316MIT
- AlicenseAqualityBmaintenanceProvides read-only access to Fitbit health data (sleep, steps, heart rate, HRV) via local sync with Google Health API. Enables querying daily health summaries and trends through MCP tools without uploading data to cloud.6MIT
- AlicenseAqualityAmaintenanceMCP server for the Google Health API: heart rate, activity, sleep, SpO2, HRV, ECG and irregular-rhythm notifications, read into a local SQLite cache for fast offline queries and trend analysis. OAuth 2.0 with automatic token refresh, incremental sync, a cache-only offline mode, and a doctor command that diagnoses a setup without spending quota.619GPL 3.0