{"name":"io.github.davidmosiah/google-health-mcp","slug":"davidmosiah-google-health-mcp","title":null,"description":"Privacy-first unofficial Google Health API v4 MCP server for health, sleep, activity, HR agents","url":"https://mcp.market/server/davidmosiah-google-health-mcp","rating":null,"grade":"B","score":83,"certified":false,"status":"active","category":"other","tags":[],"presence":{"score":48,"stars":62,"forks":9,"downloads_week":421,"last_push_at":"2026-08-29T10:29:37.000Z","license":"MIT"},"uptime":null,"claimed":false,"transport":"npm","callable_via_gateway":false,"default_price_micros":0,"repository":"https://github.com/davidmosiah/google-health-mcp","website":"https://wellness.delx.ai/connectors/google-health","version":"0.5.2","remotes":[],"packages":[{"registryType":"npm","identifier":"google-health-mcp-unofficial","version":"0.5.2","transport":{"type":"stdio"},"environmentVariables":[{"description":"Google Cloud OAuth client ID for Google Health API. Optional when configured with google-health-mcp-server setup.","format":"string","name":"GOOGLE_HEALTH_CLIENT_ID"},{"description":"Google 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.","format":"string","isSecret":true,"name":"GOOGLE_HEALTH_CLIENT_SECRET"},{"description":"Redirect URI configured in the Google Cloud OAuth client. Optional when configured with google-health-mcp-server setup.","format":"string","name":"GOOGLE_HEALTH_REDIRECT_URI"},{"description":"Optional local path for OAuth tokens. Defaults to ~/.google-health-mcp/tokens.json.","format":"string","name":"GOOGLE_HEALTH_TOKEN_PATH"},{"description":"Optional payload mode: summary, structured, or raw. Defaults to structured. raw means full Google Health API payloads, not continuous 24/7 raw sensor telemetry.","format":"string","name":"GOOGLE_HEALTH_PRIVACY_MODE"},{"description":"Optional SQLite cache toggle. Set to true or sqlite to enable.","format":"string","name":"GOOGLE_HEALTH_CACHE"},{"description":"Optional local SQLite cache path. Defaults to ~/.google-health-mcp/cache.sqlite.","format":"string","name":"GOOGLE_HEALTH_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":"GOOGLE_HEALTH_NO_CACHE"}]}],"tools":[{"name":"google_health_agent_manifest","description":"Machine-readable install, runtime and client guidance for AI agents. Does not call Google Health or expose secrets.","write_action":false,"price_micros":0,"input_schema":null},{"name":"google_health_cache_status","description":"Show optional local SQLite cache status. Enable with GOOGLE_HEALTH_CACHE=sqlite or GOOGLE_HEALTH_CACHE=true.","write_action":false,"price_micros":0,"input_schema":null},{"name":"google_health_capabilities","description":"Explain supported Google Health data, privacy boundaries, beta status and recommended agent workflow.","write_action":false,"price_micros":0,"input_schema":null},{"name":"google_health_connection_status","description":"Check local Google Health config, token file, Node version, privacy mode, cache readiness and optional MCP client readiness without calling Google APIs or exposing secrets.","write_action":false,"price_micros":0,"input_schema":null},{"name":"google_health_daily_rollup","description":"Aggregate a data type over civil days using Google Health dailyRollUp. Useful for steps, distance, calories, active minutes, weight and heart summaries.","write_action":false,"price_micros":0,"input_schema":null},{"name":"google_health_daily_summary","description":"Build a practical daily summary from Google Health rollups and reconciled streams when available. Read-only, beta, non-medical.","write_action":false,"price_micros":0,"input_schema":null},{"name":"google_health_data_inventory","description":"Inventory supported Google Health data types, auth scopes, privacy modes and recommended first calls without calling Google APIs.","write_action":false,"price_micros":0,"input_schema":null},{"name":"google_health_data_type_coverage","description":"Build a data-type coverage plan from the official Google Health API data-type table, or run explicit live read-only checks against a real OAuth account. Live mode returns only redacted status and point-count buckets, never raw health payloads.","write_action":false,"price_micros":0,"input_schema":null},{"name":"google_health_demo","description":"Returns realistic Pixel-Watch-style example payloads of google_health_daily_summary, google_health_wellness_context, and google_health_daily_rollup so agents see the contract before calling real Google Health APIs.","write_action":false,"price_micros":0,"input_schema":null},{"name":"google_health_exchange_code","description":"Exchange a Google OAuth authorization code for local tokens. Tokens are stored locally with 0600 permissions and are never returned. Gated: requires explicit user intent — agents must not call this autonomously.","write_action":false,"price_micros":0,"input_schema":null},{"name":"google_health_get_auth_url","description":"Generate a Google OAuth authorization URL for Google Health API. Use this first when no local token exists.","write_action":false,"price_micros":0,"input_schema":null},{"name":"google_health_get_identity","description":"Get the Google Health identity mapping for the authenticated user. Useful for Fitbit-to-Google migrations.","write_action":false,"price_micros":0,"input_schema":null},{"name":"google_health_get_profile","description":"Get authenticated user profile details from Google Health. Requires profile scope.","write_action":false,"price_micros":0,"input_schema":null},{"name":"google_health_get_settings","description":"Get authenticated user settings such as units and timezone. Requires settings scope.","write_action":false,"price_micros":0,"input_schema":null},{"name":"google_health_list_data_points","description":"Query detailed data points for a Google Health data type. Use kebab-case endpoint data types, e.g. steps, sleep, heart-rate.","write_action":false,"price_micros":0,"input_schema":null},{"name":"google_health_list_data_types","description":"List the canonical kebab-case data_type slugs accepted by the data point, reconcile and rollup tools, with each slug's unit, OAuth scope family, and which endpoint verbs (list/reconcile/rollup) support it. Call this before list_data_points, reconcile_data_points, daily_rollup or rollup to choose a valid data_type instead of guessing a slug. Static metadata; does not call Google APIs.","write_action":false,"price_micros":0,"input_schema":null},{"name":"google_health_onboarding","description":"Return the 11-question onboarding flow plus the current profile state and missing fields. Read-only — does NOT persist anything. Pair with google_health_profile_update once the user answers. Cross-connector: the same profile is shared by every Delx Wellness MCP (whoop, garmin, oura, fitbit, strava, polar, withings, apple-health, samsung-health, google-health, nourish, cycle-coach, cgm, air).","write_action":false,"price_micros":0,"input_schema":null},{"name":"google_health_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":"google_health_profile_get","description":"Read the shared Delx Wellness profile from ~/.delx-wellness/profile.json. Returns preferred name, goals, devices, training/nutrition/exercise/agent preferences and safety flags. NEVER contains OAuth tokens or API secrets. Read-only.","write_action":false,"price_micros":0,"input_schema":null},{"name":"google_health_profile_update","description":"Persist a partial patch to ~/.delx-wellness/profile.json. Requires explicit_user_intent=true (otherwise returns USER_ACTION_REQUIRED). Rejects secret-like fields (oauth, token, secret, password, cookie, refresh, api_key, session) at write time. Use to record preferred name, goals, devices, training context, nutrition context, exercise preferences, agent preferences, and safety flags.","write_action":true,"price_micros":0,"input_schema":null},{"name":"google_health_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 Google Health?'","write_action":false,"price_micros":0,"input_schema":null},{"name":"google_health_reconcile_data_points","description":"Read a reconciled stream for one data type across sources. Supports all-sources, google-wearables and google-sources data source families.","write_action":false,"price_micros":0,"input_schema":null},{"name":"google_health_revoke_access","description":"Revoke the current Google OAuth grant and delete the local token file. Use only when the user explicitly wants to disconnect Google Health. Gated: requires explicit user intent — agents must not call this autonomously.","write_action":false,"price_micros":0,"input_schema":null},{"name":"google_health_rollup","description":"Aggregate a data type over physical time intervals using Google Health rollUp.","write_action":false,"price_micros":0,"input_schema":null},{"name":"google_health_weekly_summary","description":"Build a weekly Google Health scorecard with activity, sleep, heart context and missing-data awareness. Read-only, beta, non-medical.","write_action":false,"price_micros":0,"input_schema":null},{"name":"google_health_wellness_context","description":"Normalize Google Health activity/sleep context 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-09-25T21:47:12.352Z","report":{"scannerVersion":"0.1.9","scannedAt":"2026-09-25T21:47:12.297Z","components":{"code":{"score":25,"max":25,"notes":["75 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 27 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":"google-health-mcp-unofficial","version":"0.5.2","found":true,"license":"MIT","hasInstallScripts":false,"dependencyCount":5,"publishedAt":"2026-07-12T10:45:11.766Z","repositoryUrl":"git+https://github.com/davidmosiah/google-health-mcp.git","weeklyDownloads":421}],"repo":{"found":true,"owner":"davidmosiah","repo":"google-health-mcp","archived":false,"pushedAt":"2026-08-29T10:29:37Z","stars":62,"forks":9,"openIssues":1,"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":"site"},"presence":{"stars":62,"forks":9,"downloadsWeek":421,"license":"MIT","lastPushAt":"2026-08-29T10:29:37.000Z","score":48}}}},"grade_history":[],"reviews":[]}