Google Health MCP
MCP server for the Google Health API, with a local SQLite cache and trend analysis.
Connector by partymola · GitHub account verified by the MCP Registry
Install
Works with Claude Code, Codex, VS Code, Cursor, Windsurf, Claude Desktop. Read the repository before you give any tool access to your data.
npx agentmarket install connector/partymola-google-health-mcp
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this server can do and what it asks for, from its tool list, install config and code. Checked Oct 25, 2026.
- Tools
- 23 read · 0 write · 0 delete · 1 not yet classified
- Secrets
- None asked for
- Install scripts
- None found
- Runs as
- Python package
Tools by what they do 24
Read from the source code; the running server may list different tools.
Read 23 · Look things up without changing anything.
health_get_activityhealth_get_azmhealth_get_breathing_ratehealth_get_cardio_fitnesshealth_get_core_temperaturehealth_get_deviceshealth_get_ecghealth_get_exercise_routehealth_get_exerciseshealth_get_food_loghealth_get_heart_ratehealth_get_height
Show 11 more tools
health_get_hrvhealth_get_irregular_rhythmhealth_get_lifetime_statshealth_get_profilehealth_get_skin_temperaturehealth_get_sleephealth_get_sleep_sessionshealth_get_spo2health_get_weighthealth_get_weight_readingshealth_trends
Not yet classified 1 · We could not tell from the name and description.
health_sync
Network hosts it talks to 6
accounts.google.com· found in codegithub.com· found in codeglama.ai· found in codegoogleapis.com· found in codehealth.googleapis.com· found in codeoauth2.googleapis.com· found in code
Files it touches
- Your home directory (~)
Tools (24)
Read from the source code; the running server may differ. Descriptions are the server’s own words; hidden characters are shown as [U+…].
health_get_activityGet daily activity summaries (steps, calories, active minutes, distance). Returns data from the local cache by default. Use live=True to fetch from the API. Run health_sync first to populate the cache. Note: live=True fetches one API call per day - avoid large ranges to stay within the 150 requests/hour rate limit. Args: start_date: Start date as "YYYY-MM-DD", "YYYY-MM", or "30d". Default: last 30 days. end_date: End date as "YYYY-MM-DD". Default: today. live: If true, re-fetch this window from the API before reading the cache. Returns one entry per day with steps, calories, ac…
health_get_azmGet daily Active Zone Minutes (AZM), the headline cardio metric. AZM counts minutes spent in heart rate zones at or above Fat Burn intensity. `total_minutes` is the plain sum of the three zone columns as reported, not a weighted one. Returns from local cache by default, auto-syncing if stale. Args: start_date: Start date as "YYYY-MM-DD", "YYYY-MM", or "30d". Default: last 30 days. end_date: End date as "YYYY-MM-DD". Default: today. live: If true, re-fetch this window from the API before reading the cache. Returns one entry per day with total_minutes plus per-zone breakdown (fat_…
health_get_breathing_rateGet nightly breathing rate (avg breaths per minute during sleep). Sourced during sleep tracking. Useful as an illness/recovery signal: sustained increases of 2-3 bpm above personal baseline can indicate incipient infection or strain. Returns from cache by default, auto-syncing if stale. Args: start_date: Start date as "YYYY-MM-DD", "YYYY-MM", or "30d". Default: last 30 days. end_date: End date as "YYYY-MM-DD". Default: today. live: If true, re-fetch this window from the API before reading the cache. Returns one entry per night with breaths_per_min and data_source (the device and…
health_get_cardio_fitnessGet Cardio Fitness Score (VO2 Max estimate). Estimated from resting HR, HR during walks and runs, and demographics. Updates roughly weekly. Returns from cache by default, auto-syncing if stale. Args: start_date: Start date as "YYYY-MM-DD", "YYYY-MM", or "30d". Default: last 30 days. end_date: End date as "YYYY-MM-DD". Default: today. live: If true, re-fetch this window from the API before reading the cache. A reading usually carries a range or a single value; one re-synced across the switchover between providers can hold both. They are different measurements - do not average the…
health_get_core_temperatureGet manually-logged core (body) temperature readings (degrees Celsius). These are absolute body temperatures the user enters by hand - a thermometer reading logged in an app - and are the right source for fever / body-temperature questions. They are NOT the device-derived nightly skin-temperature variation from health_get_skin_temperature. A single day can hold several readings (each timestamped), useful for tracking a fever over time. Args: start_date: Start date as "YYYY-MM-DD", "YYYY-MM", or "30d". Default: last 30 days. end_date: End date as "YYYY-MM-DD". Default: today. live…
health_get_devicesList paired devices with battery level and last sync time. Live-only (no caching) - reflects current device state. Useful for monitoring tracker health, knowing which device produced data, and spotting sync gaps. Returns one entry per paired device with id, type, device_version, battery (e.g. "High"), battery_level (0-100), last_sync_time, mac, and features list.
health_get_ecgGet electrocardiogram (ECG) readings taken on the watch. Each reading is a single-lead trace the user started by hand, with a rhythm classification - NORMAL_SINUS_RHYTHM, ATRIAL_FIBRILLATION, or one of several inconclusive results (low or high heart rate, poor reading, unclassified). Use it for questions about heart rhythm or AFib checks; for resting rate over time use health_get_heart_rate instead. Args: start_date: Start date as "YYYY-MM-DD", "YYYY-MM", or "30d". Default: last 30 days. end_date: End date as "YYYY-MM-DD". Default: today. live: If true, re-fetch this window from …
health_get_exercise_routeGet the GPS route of one exercise, as the TCX file Google exports. Only exercises recorded with GPS have a route, and a sync fetches routes for the workouts in its own window. The TCX text carries every trackpoint (time, position, altitude, distance, heart rate) and can run to hundreds of kilobytes, so it is returned only when asked for. Args: log_id: The exercise's `log_id`, as health_get_exercises returns it. include_tcx: If true, include the TCX text itself. Returns the exercise's log_id, date and provider, and the TCX text when asked for.
health_get_exercisesGet exercise log entries (individual tracked activities). Returns exercise sessions from the local cache by default. Use live=True to fetch from the API. Run health_sync first to populate the cache. Args: start_date: Start date as "YYYY-MM-DD", "YYYY-MM", or "30d". Default: last 30 days. end_date: End date as "YYYY-MM-DD". Default: today. exercise_type: Filter by activity name (case-insensitive substring match), e.g. "cycling", "walk", "run". Default: all types. A value matching no workout name the cache holds is refused, naming those, rather than answered…
health_get_food_logGet daily food and water log summary. Returns calories consumed and water intake (in mL) per day. Only populated where the user logs food or water by hand in a connected app. Returns from cache by default, auto-syncing if stale. Args: start_date: Start date as "YYYY-MM-DD", "YYYY-MM", or "30d". Default: last 30 days. end_date: End date as "YYYY-MM-DD". Default: today. live: If true, re-fetch this window from the API before reading the cache. Returns one entry per day with calories_in and water_ml. Days with no logging are omitted.
health_get_heart_rateGet daily resting heart rate and heart rate zones. Returns resting HR and zone breakdown (Out of Range, Fat Burn, Cardio, Peak) from the local cache by default, auto-syncing if stale. Args: start_date: Start date as "YYYY-MM-DD", "YYYY-MM", or "30d". Default: last 30 days. end_date: End date as "YYYY-MM-DD". Default: today. live: If true, re-fetch this window from the API before reading the cache. Returns one entry per day with resting_hr, zones array, calculation_method (Google's WITH_SLEEP or ONLY_WITH_AWAKE_DATA) and data_source (the device and platform Google says recorded i…
health_get_heightGet height readings, in millimetres as Google reports them. Height is usually logged once, often years back, so the default window is the last ten years. Returns data from the local cache by default. Args: start_date: Start date as "YYYY-MM-DD", "YYYY-MM", or "Nd". Default: ten years back. end_date: End date as "YYYY-MM-DD". Default: today. live: If true, re-fetch height from the API before reading the cache. Returns one entry per reading with datetime, date, height_mm and provider.
health_get_hrvGet nightly HRV (heart rate variability) data. Returns data from the local cache by default. Use live=True to fetch from the API. Run health_sync first to populate the cache. HRV data is sparse: only nights with on-wrist sleep tracking produce readings. Args: start_date: Start date as "YYYY-MM-DD", "YYYY-MM", or "30d". Default: last 30 days. end_date: End date as "YYYY-MM-DD". Default: today. live: If true, re-fetch this window from the API before reading the cache. Returns one entry per night with daily_rmssd and deep_rmssd (ms), entropy, non_rem_hr (non-REM heart rate, bpm) a…
health_get_irregular_rhythmGet irregular heart rhythm notifications raised by the watch. These are background checks the watch runs while the user is still - an alert means it saw a rhythm consistent with atrial fibrillation over one or more windows, not a diagnosis. Most accounts never have one. For a deliberate reading with a trace behind it, use health_get_ecg. Args: start_date: Start date as "YYYY-MM-DD", "YYYY-MM", or "30d". Default: last 30 days. end_date: End date as "YYYY-MM-DD". Default: today. live: If true, re-fetch this window from the API before reading the cache. Returns one entry per notifi…
health_get_lifetime_statsGet all-time activity totals and personal best records. Totals for steps, floors, distance and calories over every day held in the cache, plus the best single day for steps, floors and distance with the date each record was set. The answer is bounded by what has been synced, so it is returned with a `coverage` block giving the first and last dates and the number of days counted - read it before quoting a total as all-time. There is no tracker-versus-total split and no "active score"; neither has a source.
Show 9 more tools
health_get_profileGet the account's profile, settings and irregular-rhythm enrolment. Each is the record Google returns, kept whole: the profile carries age, membership start and stride lengths, the settings carry units, time zone and locale, and the enrolment says whether irregular-rhythm notifications are on. Returns data from the local cache by default. Args: live: If true, re-fetch the records from the API before reading the cache. Returns `profile`, `settings` and `irn_profile`, and when each was fetched (UTC). A record is null when it has never been fetched, which includes one whose permission the …
health_get_skin_temperatureGet nightly skin temperature variation (degrees Celsius from personal baseline). This is the device-derived RELATIVE deviation recorded during sleep, NOT an absolute body temperature - for fever / body-temperature readings use health_get_core_temperature instead. A baseline takes about three nights to establish before values appear. Useful as an illness/cycle/recovery signal. Args: start_date: Start date as "YYYY-MM-DD", "YYYY-MM", or "30d". Default: last 30 days. end_date: End date as "YYYY-MM-DD". Default: today. live: If true, re-fetch this window from the API before reading t…
health_get_sleepGet nightly sleep data (duration, stages, efficiency). Returns sleep data from the local cache by default. Use live=True to fetch from the API. Run health_sync first to populate the cache. Sleep data is sparse: only nights with watch-tracked sleep are present. Travel, off-wrist nights, or manual logs may be missing. Args: start_date: Start date as "YYYY-MM-DD", "YYYY-MM", or "30d". Default: last 30 days. end_date: End date as "YYYY-MM-DD". Default: today. live: If true, re-fetch this window from the API before reading the cache. Returns one entry per night with total_minutes, e…
health_get_sleep_sessionsGet each sleep session as Google recorded it, rather than the nightly total. A night can be several sessions (a wake-and-resume, a nap); health_get_sleep sums them per night, while this returns each one whole: its interval, type (CLASSIC or STAGES), Google's metadata (mainSleep, nap, processed, manuallyEdited, stagesStatus), its summary (minutesAsleep, minutesAwake, minutesInSleepPeriod, minutesToFallAsleep, minutesAfterWakeUp, and the per-stage minutes and counts), and the device that recorded it. Args: start_date: Start date as "YYYY-MM-DD", "YYYY-MM", or "30d". Default: last 30 days. …
health_get_spo2Get nightly SpO2 (blood oxygen saturation) data. Returns data from the local cache by default. Run health_sync first to populate it. SpO2 data is sparse: only nights with on-wrist sleep tracking produce readings. Args: start_date: Start date as "YYYY-MM-DD", "YYYY-MM", or "30d". Default: last 30 days. end_date: End date as "YYYY-MM-DD". Default: today. live: If true, re-fetch this window from the API before reading the cache. Returns one entry per night: avg SpO2 percentage and up to two pairs of bounds. avg_ci_low/avg_ci_high come from this API, which Google describes as the l…
health_get_weightGet weight log entries (weight, BMI, body fat percentage). Returns data from the local cache by default. Use live=True to fetch from the API. Run health_sync first to populate the cache. Weight data is sparse: only days with weigh-in entries are present. Args: start_date: Start date as "YYYY-MM-DD", "YYYY-MM", or "30d". Default: last 30 days. end_date: End date as "YYYY-MM-DD". Default: today. live: If true, re-fetch this window from the API before reading the cache. Returns one entry per day with weight_kg, bmi, fat_pct. Every individual weigh-in is in health_get_weight_readin…
health_get_weight_readingsGet every weigh-in and body-fat reading, as Google recorded each one. health_get_weight keeps one row a day; this returns every reading: its value in Google's own unit (weightGrams, percentage), when it was taken, and the device or app that recorded it. Args: start_date: Start date as "YYYY-MM-DD", "YYYY-MM", or "30d". Default: last 30 days. end_date: End date as "YYYY-MM-DD". Default: today. live: If true, re-fetch this window from the API before reading the cache. Returns weight_readings and body_fat_readings, each entry with reading_id, datetime (local), date, provider and re…
health_syncSync health data to the local cache. Fetches data from the Google Health API and stores it in SQLite for fast offline queries. Run this before using other health_get_* tools. Syncs incrementally: only fetches data newer than the most recent entry in each table. First sync fetches the specified number of days. Args: data_types: What to sync. Options: "all", "heart_rate", "activity", "exercises", "sleep", "weight", "spo2", "hrv", "azm", "breathing_rate", "skin_temperature", "core_temperature", "cardio_fitness", "food_log", "ecg", "irn", "account", "height", …
health_trendsAnalyse trends in cached health data. Computes averages and totals over time from the local cache, auto-syncing if stale. Args: data_type: What to analyse. Options: "heart_rate", "activity", "exercises", "sleep", "weight", "spo2", "hrv", "azm", "breathing_rate", "skin_temperature", "core_temperature", "cardio_fitness", "food_log". Default: "activity". period: Aggregation period. Options: "weekly", "monthly", "quarterly". Default: "monthly". start_date: Start date as "YYYY-MM-DD" or "365d". Default: last 12 months. end_date: End date as "YYYY-MM…
Signals
- Stars
- 1
- Forks
- 1
- Open issues
- 0
- Weekly downloads
- 211
- Last commit
- Oct 20, 2026 (8 days ago)
- Last release
- Oct 20, 2026 (8 days ago)
- Last package publish
- Oct 20, 2026 (8 days ago)
From GitHub (fetched Oct 24, 2026) and the package registry.
Details
- Registry name
io.github.partymola/google-health-mcp- Version
- 1.9.0
- Auth
- No auth
- Packages
- pypi google-health-mcp
- License
- GPL-3.0
- Repository
- github.com/partymola/google-health-mcp
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
More from partymola
- 0.625score
Monzo MCP
partymola
Read-only MCP server for the Monzo banking API: OAuth, local transaction cache, spending analysis.
ConnectorAFreshness: ALocal★ 4Claude Code +5 - 0.602score
Withings MCP
partymola
MCP server for the Withings Health API with OAuth, local SQLite cache, and trend analysis.
ConnectorAFreshness: ALocal★ 1↓ 82/wkClaude Code +5 - 0.592score
Ticktick MCP
partymola
MCP server for TickTick task management: field-preserving updates and completion tracking.
ConnectorAFreshness: ALocal★ 1Claude Code +5 - 0.582score
Bosch Flow MCP
partymola
MCP server for Bosch eBike Flow (BES3): battery health, charge cycles, components, and ride data.
ConnectorAFreshness: ALocal↓ 58/wkClaude Code +5
Cite this page
Google Health MCP. Agent Mart. https://agentmart.dev/connectors/partymola-google-health-mcp (last updated 2026-10-24)