Google Health Fitbit MCP
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| GOOGLE_HEALTH_CACHE | No | Optional SQLite response cache (true/sqlite) | |
| GOOGLE_HEALTH_MCP_HOST | No | HTTP transport bind address | 127.0.0.1 |
| GOOGLE_HEALTH_MCP_PORT | No | HTTP transport bind port | 3000 |
| GOOGLE_HEALTH_NO_CACHE | No | Bypass the in-memory HTTP cache (60s TTL, GET-only) | |
| GOOGLE_HEALTH_CLIENT_ID | No | Google Cloud OAuth client ID | |
| GOOGLE_HEALTH_CACHE_PATH | No | SQLite cache location | ~/.google-health-mcp/cache.sqlite |
| GOOGLE_HEALTH_TOKEN_PATH | No | Token file location | ~/.google-health-mcp/tokens.json |
| GOOGLE_HEALTH_PRIVACY_MODE | No | summary | structured | raw | structured |
| GOOGLE_HEALTH_REDIRECT_URI | No | Registered redirect URI | |
| GOOGLE_HEALTH_CLIENT_SECRET | No | OAuth client secret (prefer local config over MCP client config) | |
| GOOGLE_HEALTH_MCP_TRANSPORT | No | stdio | http | stdio |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| prompts | {
"listChanged": true
} |
| resources | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| google_health_data_inventoryA | Inventory supported Google Health data types, auth scopes, privacy modes and recommended first calls without calling Google APIs. |
| google_health_list_data_typesA | 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. |
| google_health_data_type_coverageA | 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. |
| google_health_agent_manifestA | Machine-readable install, runtime and client guidance for AI agents. Does not call Google Health or expose secrets. |
| google_health_capabilitiesA | Explain supported Google Health data, privacy boundaries, beta status and recommended agent workflow. |
| google_health_quickstartA | 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?' |
| google_health_demoA | 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. |
| google_health_get_auth_urlA | Generate a Google OAuth authorization URL for Google Health API. Use this first when no local token exists. |
| google_health_exchange_codeA | 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. |
| google_health_get_identityA | Get the Google Health identity mapping for the authenticated user. Useful for Fitbit-to-Google migrations. |
| google_health_get_profileA | Get authenticated user profile details from Google Health. Requires profile scope. |
| google_health_get_settingsA | Get authenticated user settings such as units and timezone. Requires settings scope. |
| google_health_list_paired_devicesA | List the Fitbit trackers, Pixel Watches and other devices paired to the authenticated Google Health account. Useful to answer 'is my watch syncing?' and to see which device produces which data. Read-only. |
| google_health_get_irn_profileA | Get the user's irregular rhythm notification (IRN) engagement status — whether the AFib detection feature is enabled on their Fitbit/Pixel Watch. Requires the googlehealth.irn.readonly scope (setup --scope-preset heart). Read-only, non-diagnostic. |
| google_health_get_data_pointA | Fetch one data point by id — e.g. a specific sleep session, exercise or weight entry found via list/reconcile. Accepts the bare id or the full resource name from a previous response. Only data types whose official_operations include 'get' support this (see google_health_list_data_types). |
| google_health_list_data_pointsA | Query detailed data points for a Google Health data type. Use kebab-case endpoint data types, e.g. steps, sleep, heart-rate. |
| google_health_reconcile_data_pointsB | Read a reconciled stream for one data type across sources. Supports all-sources, google-wearables and google-sources data source families. |
| google_health_daily_rollupB | Aggregate a data type over civil days using Google Health dailyRollUp. Useful for steps, distance, calories, active minutes, weight and heart summaries. |
| google_health_rollupC | Aggregate a data type over physical time intervals using Google Health rollUp. |
| google_health_connection_statusA | 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. |
| google_health_cache_statusA | Show optional local SQLite cache status. Enable with GOOGLE_HEALTH_CACHE=sqlite or GOOGLE_HEALTH_CACHE=true. |
| google_health_privacy_auditB | Return local privacy, cache, token-path and env-presence posture without revealing secret values. |
| google_health_revoke_accessA | 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. |
| google_health_daily_summaryA | Build a practical daily summary from Google Health rollups and reconciled streams when available. Read-only, beta, non-medical. |
| google_health_weekly_summaryA | Build a weekly Google Health scorecard with activity, sleep, heart context and missing-data awareness. Read-only, beta, non-medical. |
| google_health_wellness_contextA | Normalize Google Health activity/sleep context into the shared wellness_context shape for recommendation engines. |
| google_health_profile_getA | Read the shared 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. |
| google_health_profile_updateA | 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. |
| google_health_onboardingA | 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 Wellness MCP (whoop, garmin, oura, fitbit, strava, polar, withings, apple-health, samsung-health, google-health, nourish, cycle-coach, cgm, air). |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| google_health_daily_checkin | Ask an agent to create a practical daily health and training check-in from Google Health. |
| google_health_weekly_review | Ask an agent to review Google Health trends across activity, sleep and heart context. |
| google_health_data_type_investigation | Investigate one Google Health data type using list, reconcile and rollup methods. |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| google_health_data_inventory | Static inventory of supported Google Health data domains, privacy modes and recommended first calls. |
| google_health_capabilities | Static capabilities, API boundary, privacy modes and beta guidance. |
| google_health_agent_manifest | Machine-readable install and operating instructions for AI agents. |
| google_health_profile | Authenticated Google Health profile using the configured privacy mode. |
| google_health_latest_steps | Recent reconciled Google Health steps in the configured privacy mode. |
| google_health_daily_summary | Daily Google Health summary built from API data. |
| google_health_weekly_summary | Weekly Google Health review built from API data. |
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/BerkKilicoglu/google-health-fitbit-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server