Unofficial local-first server for Google's new Health API v4, which consolidates Fitbit, Pixel Watch, and partner health data under a single OAuth flow. Exposes read-only tools for identity, profile, settings, data point queries, reconciliation, and daily/weekly rollups across steps, sleep, heart rate, nutrition, and activity domains. The beta ships with a standalone doctor command for setup validation and scope presets that keep consent screens manageable. Tokens never leave your machine. Useful if you're building health agents that need to query reconciled streams from Google's ecosystem without pasting credentials into prompts. Author warns that Google may ship breaking changes before the official v4 launch in May 2026.
⚡ One-command install with Delx Wellness for Hermes:
npx -y delx-wellness-hermes setup— preconfigures this connector and the other 8 in a dedicated Hermes profile.Or wire it standalone into Claude Desktop / Cursor / ChatGPT Desktop — see the install section below.
Unofficial, local-first MCP server for the new Google Health API v4.
It lets Claude, Cursor, Hermes, OpenClaw and other MCP clients read user-authorized Google Health data from Fitbit, Pixel Watch and supported third-party sources through Google's OAuth 2.0 flow.
Beta status: Google recommends waiting until the end of May 2026 before officially launching Google Health API integrations because breaking changes may occur while developer feedback is incorporated. This connector is intentionally published as an early beta for builders who want to test the API now.
Unofficial project. Not affiliated with, endorsed by or supported by Google, Fitbit or Alphabet. Not a medical device. Not medical advice.
The highest-leverage contribution right now is real setup feedback from Fitbit, Pixel Watch, Android and Google Health API v4 users.
If you can test with a real account:
npx -y google-health-mcp-unofficial doctor and confirm the OAuth flow is clear.google_health_connection_status, google_health_data_inventory and google_health_daily_summary from your MCP client.Useful links:
Google Health API is the successor to Fitbit Web API: new OAuth, new base URL, v4 endpoint schema, standardized data types, reconciled streams and rollups.
This MCP gives agents a clean way to discover the API, check setup, authenticate locally and query data without pasting tokens into prompts or agent configs.
npx -y google-health-mcp-unofficial setup --scope-preset full
npx -y google-health-mcp-unofficial auth
npx -y google-health-mcp-unofficial doctor
Then start your agent with:
google_health_connection_statusgoogle_health_data_inventorygoogle_health_privacy_auditgoogle_health_daily_summaryCreate a Google Cloud OAuth client, enable the Google Health API, and add:
http://127.0.0.1:3000/callback
Then run:
npx -y google-health-mcp-unofficial setup --scope-preset full
npx -y google-health-mcp-unofficial auth
npx -y google-health-mcp-unofficial doctor
Scope presets keep OAuth consent easier to reason about:
npx -y google-health-mcp-unofficial setup --scope-preset basic
npx -y google-health-mcp-unofficial setup --scope-preset activity
npx -y google-health-mcp-unofficial setup --scope-preset sleep
npx -y google-health-mcp-unofficial setup --scope-preset full
basic - profile and settings onlyactivity - profile, settings, activity and health metricssleep - profile, settings and sleepfull - all recommended read-only scopes, including nutritionIf setup gets stuck:
npx -y google-health-mcp-unofficial doctor --fix
npx -y google-health-mcp-unofficial doctor --live
npx -y google-health-mcp-unofficial support --redacted
doctor --fix repairs local config/token permissions where the OS supports chmod 600.doctor --live calls safe Google Health identity/profile/settings endpoints after auth to prove the API is reachable.support --redacted prints a copy-paste support bundle for GitHub issues without tokens, secrets or health measurements.Recommended read-only scopes:
https://www.googleapis.com/auth/googlehealth.profile.readonly
https://www.googleapis.com/auth/googlehealth.settings.readonly
https://www.googleapis.com/auth/googlehealth.activity_and_fitness.readonly
https://www.googleapis.com/auth/googlehealth.health_metrics_and_measurements.readonly
https://www.googleapis.com/auth/googlehealth.sleep.readonly
https://www.googleapis.com/auth/googlehealth.nutrition.readonly
Standalone MCP config:
{
"mcpServers": {
"google_health": {
"command": "npx",
"args": ["-y", "google-health-mcp-unofficial"]
}
}
}
Start here:
google_health_connection_status - local config, token, scope and client readinessgoogle_health_data_inventory - supported domains, scopes, data type naming and agent flowgoogle_health_agent_manifest - machine-readable install/runtime guidegoogle_health_daily_summary - daily beta summary from rollups and reconciled streamsgoogle_health_weekly_summary - weekly beta reviewGoogle Health API methods:
google_health_get_identitygoogle_health_get_profilegoogle_health_get_settingsgoogle_health_list_data_pointsgoogle_health_reconcile_data_pointsgoogle_health_daily_rollupgoogle_health_rollupDiagnostics:
google_health_get_auth_urlgoogle_health_exchange_codegoogle_health_privacy_auditgoogle_health_cache_statusgoogle_health_revoke_accessgoogle_health_wellness_contextEndpoint paths use kebab case:
steps
sleep
heart-rate
daily-resting-heart-rate
daily-heart-rate-variability
active-zone-minutes
total-calories
weight
exercise
Filter expressions use snake case:
steps.interval.civil_start_time >= "2026-05-07"
heart_rate.sample_time.physical_time >= "2026-05-07T00:00:00Z"
sleep.interval.civil_start_time >= "2026-05-07"
Source families supported by the API:
users/me/dataSourceFamilies/all-sources
users/me/dataSourceFamilies/google-wearables
users/me/dataSourceFamilies/google-sources
~/.google-health-mcp/tokens.json with 0600 permissions.~/.google-health-mcp/config.json or GOOGLE_HEALTH_* environment variables.GOOGLE_HEALTH_PRIVACY_MODE=structured is the default.raw mode is explicit and should be used only for debugging or deep analysis.npx -y google-health-mcp-unofficial setup --client hermes --no-auth
npx -y google-health-mcp-unofficial auth
npx -y google-health-mcp-unofficial doctor --client hermes --fix
npx -y google-health-mcp-unofficial doctor --client hermes --live
hermes mcp test google_health
After config changes, use /reload-mcp or hermes mcp test google_health. Do not restart the gateway for normal data access.
git clone https://github.com/davidmosiah/google-health-mcp.git
cd google-health-mcp
npm install
npm test
MIT - see LICENSE.
GOOGLE_HEALTH_CLIENT_IDGoogle Cloud OAuth client ID for Google Health API. Optional when configured with google-health-mcp-server setup.
GOOGLE_HEALTH_CLIENT_SECRETsecretGoogle Cloud OAuth client secret. Prefer google-health-mcp-server setup so this secret is stored in ~/.google-health-mcp/config.json instead of MCP client config.
GOOGLE_HEALTH_REDIRECT_URIRedirect URI configured in the Google Cloud OAuth client. Optional when configured with google-health-mcp-server setup.
GOOGLE_HEALTH_TOKEN_PATHOptional local path for OAuth tokens. Defaults to ~/.google-health-mcp/tokens.json.
GOOGLE_HEALTH_PRIVACY_MODEOptional payload mode: summary, structured, or raw. Defaults to structured. raw means full Google Health API payloads, not continuous 24/7 raw sensor telemetry.
GOOGLE_HEALTH_CACHEOptional SQLite cache toggle. Set to true or sqlite to enable.
GOOGLE_HEALTH_CACHE_PATHOptional local SQLite cache path. Defaults to ~/.google-health-mcp/cache.sqlite.
GOOGLE_HEALTH_NO_CACHESet 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.