{
  "markdown": "<!-- delx-wellness header v2 -->\n<h1 align=\"center\">Google Health MCP</h1>\n\n<div align=\"center\">\n  <img src=\"assets/banner.png\" alt=\"Google Health MCP — Google Health MCP for AI agents\" width=\"85%\" />\n</div>\n\n<h3 align=\"center\">\n  Read user-authorized Google Health API v4 data &mdash; Fitbit, Pixel Watch and partners &mdash; locally via OAuth. <strong>Beta</strong>.<br>\n  Local-first MCP server &mdash; <strong>tokens never leave your machine</strong>.\n</h3>\n\n<p align=\"center\">\n  <a href=\"https://www.npmjs.com/package/google-health-mcp-unofficial\"><img src=\"https://img.shields.io/npm/v/google-health-mcp-unofficial?style=for-the-badge&labelColor=0F172A&color=10B981&logo=npm&logoColor=white\" alt=\"npm version\" /></a>\n  <a href=\"https://github.com/davidmosiah/google-health-mcp/releases/latest\"><img src=\"https://img.shields.io/github/v/release/davidmosiah/google-health-mcp?style=for-the-badge&labelColor=0F172A&color=2563EB&logo=github\" alt=\"GitHub release\" /></a>\n  <a href=\"https://www.npmjs.com/package/google-health-mcp-unofficial\"><img src=\"https://img.shields.io/npm/dm/google-health-mcp-unofficial?style=for-the-badge&labelColor=0F172A&color=0EA5A3&logo=npm&logoColor=white\" alt=\"npm downloads\" /></a>\n  <a href=\"https://github.com/davidmosiah/google-health-mcp/actions/workflows/ci.yml\"><img src=\"https://img.shields.io/github/actions/workflow/status/davidmosiah/google-health-mcp/ci.yml?branch=main&style=for-the-badge&labelColor=0F172A&label=CI\" alt=\"CI\" /></a>\n  <a href=\"LICENSE\"><img src=\"https://img.shields.io/badge/LICENSE-MIT-22C55E?style=for-the-badge&labelColor=0F172A\" alt=\"License MIT\" /></a>\n  <a href=\"https://wellness.delx.ai/connectors/google-health\"><img src=\"https://img.shields.io/badge/SITE-wellness.delx.ai-0EA5A3?style=for-the-badge&labelColor=0F172A\" alt=\"Site\" /></a>\n</p>\n\n<p align=\"center\">\n  <a href=\"https://github.com/davidmosiah/google-health-mcp/stargazers\"><img src=\"https://img.shields.io/github/stars/davidmosiah/google-health-mcp?style=for-the-badge&labelColor=0F172A&color=FBBF24&logo=github\" alt=\"GitHub stars\" /></a>\n  <a href=\"https://modelcontextprotocol.io\"><img src=\"https://img.shields.io/badge/BUILT_FOR-MCP-7C3AED?style=for-the-badge&labelColor=0F172A\" alt=\"Built for MCP\" /></a>\n  <a href=\"https://github.com/davidmosiah/delx-wellness/blob/main/docs/release-index.md\"><img src=\"https://img.shields.io/badge/VERIFIED-release_index-0EA5A3?style=for-the-badge&labelColor=0F172A\" alt=\"Verified release index\" /></a>\n  <a href=\"https://github.com/davidmosiah/delx-wellness-hermes\"><img src=\"https://img.shields.io/badge/HERMES-one--command_setup-10B981?style=for-the-badge&labelColor=0F172A\" alt=\"Hermes one-command setup\" /></a>\n  <a href=\"https://github.com/davidmosiah/delx-wellness\"><img src=\"https://img.shields.io/badge/Google%20Health-4285F4?style=for-the-badge&labelColor=0F172A&logoColor=white\" alt=\"Google Health\" /></a>\n</p>\n\n> ⚡ **One-command install** with [Delx Wellness for Hermes](https://github.com/davidmosiah/delx-wellness-hermes):\n> `npx -y delx-wellness-hermes setup` &mdash; preconfigures this connector and the other 8 in a dedicated Hermes profile.\n>\n> Or wire it standalone into Claude Desktop / Cursor / ChatGPT Desktop &mdash; see the install section below.\n\n> **What's new in 0.7.3 (2026-08-03):** headless OAuth (`auth --manual`) for SSH /\n> containers / WSL · real-account rollup/filter fixes from external testers ·\n> opt-in `clinical` scopes for ECG/IRN · pins live in Hermes/living-body.\n> Full notes in [CHANGELOG.md](CHANGELOG.md).\n\n## Highest-leverage contribution — real-account coverage\n\nIf you have Fitbit, Pixel Watch, Android health data or Google Health API v4\naccess, the most useful help is a redacted coverage report:\n\n```bash\nnpx -y google-health-mcp-unofficial coverage --live --json\n```\n\nReview the output, remove anything you do not want public, then post the report\non [issue #2](https://github.com/davidmosiah/google-health-mcp/issues/2) (or a\nnew issue). The timed proof loop on [#21](https://github.com/davidmosiah/google-health-mcp/issues/21)\nclosed **1/2** — see [docs/proof-loop-status.md](docs/proof-loop-status.md).\nThe command is read-only and is designed to omit OAuth secrets, local paths and raw\nhealth measurements. A static preflight is available before OAuth with\n`coverage --json`.\n\n### Other ways to help (no account required)\n\n| Action | Link |\n| --- | --- |\n| Star if the project earned it | [stargazers](https://github.com/davidmosiah/google-health-mcp/stargazers) |\n| Docs GFI — headless auth walkthrough | [#22](https://github.com/davidmosiah/google-health-mcp/issues/22) |\n| Compose with other wearables | [`delx-living-body`](https://github.com/davidmosiah/delx-living-body) |\n| One-command Hermes pack | [`delx-wellness-hermes`](https://github.com/davidmosiah/delx-wellness-hermes) |\n| Full registry | [`delx-wellness`](https://github.com/davidmosiah/delx-wellness) |\n\n---\n\n## HTTP (v2 stateless)\n\nDefault is **stdio**. Optional Streamable HTTP — no session id, JSON responses, loopback only:\n\n```bash\nnpx -y google-health-mcp-unofficial --http\n# GET  http://127.0.0.1:3000/health\n# POST http://127.0.0.1:3000/mcp   (sessionless)\n```\n\nEnv: `GOOGLE_HEALTH_MCP_HOST`, `GOOGLE_HEALTH_MCP_PORT`, `GOOGLE_HEALTH_MCP_TRANSPORT=http`.\n\n\n<!-- /delx-wellness header v2 -->\n\n# Google Health MCP\n\n**Local-first MCP server that gives your AI agent user-authorized Google Health API v4 data — Fitbit, Pixel Watch and partners — over OAuth.**\n\n- **Install one connector** — `npx -y google-health-mcp-unofficial setup`\n- **Run it in** Claude · Cursor · ChatGPT · Hermes · OpenClaw — see the [client examples](https://github.com/davidmosiah/delx-wellness/tree/main/examples).\n- **Local-first** — your tokens never leave your machine ([privacy](#privacy--what-runs-offline)).\n- **Which connector should I use?** — see the [front-door guide](https://github.com/davidmosiah/delx-wellness#which-connector-should-i-use).\n\n> **Beta status:** Google Health API v4 is live for builders but still evolving. Google's release notes show scope and data-type changes continuing after launch, so this connector stays in early beta and points testers to safe read-only validation paths before public production use.\n\n> **Unofficial project.** Not affiliated with, endorsed by or supported by Google, Fitbit or Alphabet. Not a medical device. Not medical advice.\n\n## Why this exists\n\nGoogle Health API is the successor to Fitbit Web API: new OAuth, new base URL, v4 endpoint schema, standardized data types, reconciled streams and rollups.\n\nThis 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.\n\n## Quickstart in 60 seconds\n\nCreate a Google Cloud OAuth client, enable the Google Health API, and add the redirect `http://127.0.0.1:3000/callback`. Then:\n\n```bash\nnpx -y google-health-mcp-unofficial setup --scope-preset full   # writes local config\nnpx -y google-health-mcp-unofficial auth                        # OAuth, tokens saved locally\nnpx -y google-health-mcp-unofficial doctor                      # verifies you're ready\n```\n\n`doctor --live` calls safe Google Health identity/profile/settings endpoints after auth to prove the API is reachable — the connection proof for this beta. That does **not** prove Claude Desktop can invoke tools: Desktop validates `outputSchema` as JSON Schema 2020-12. Use `google-health-mcp-unofficial@0.7.6+` (see [#23](https://github.com/davidmosiah/google-health-mcp/issues/23)). Full install details (scope presets, MFA, recovery) are in the [Install section](#install) below.\n\n## Try it with your agent\n\nThree things to ask first, based on tools this connector actually ships:\n\n```text\nUse google_health_connection_status to check setup, then run\ngoogle_health_data_inventory. Tell me which Google Health domains\nand scopes I have authorized.\n```\n\n```text\nCall google_health_daily_summary for today, then google_health_weekly_summary.\nSeparate observed data from suggestions and stay non-medical.\n```\n\n```text\nRun google_health_privacy_audit, then summarize exactly what is stored\nlocally and what would be sent to Google on the next call.\n```\n\n## Tools\n\nStart here:\n\n- `google_health_connection_status` — local config, token, scope and client readiness\n- `google_health_data_inventory` — supported domains, scopes, data type naming and agent flow\n- `google_health_data_type_coverage` — static coverage plan, or explicit live read-only validation for issue #21\n- `google_health_daily_summary` — daily beta summary from rollups and reconciled streams\n- `google_health_weekly_summary` — weekly beta review\n- `google_health_privacy_audit` — what is stored locally and what is sent to Google\n\nThe full tool catalog — Google Health API methods, agent manifest, diagnostics and data-type naming notes (kebab-case endpoints, snake_case filters, source families) — lives in [docs/tools.md](docs/tools.md).\n\n## Privacy & what runs offline\n\n- OAuth tokens are stored locally at `~/.google-health-mcp/tokens.json` with `0600` permissions.\n- Secrets can live in `~/.google-health-mcp/config.json` or `GOOGLE_HEALTH_*` environment variables.\n- Tools never return access tokens, refresh tokens or client secrets.\n- `GOOGLE_HEALTH_PRIVACY_MODE=structured` is the default; `raw` mode is explicit and should be used only for debugging or deep analysis. An agent asking for `privacy_mode=raw` is refused unless it passes `explicit_user_intent=true`; setting `GOOGLE_HEALTH_PRIVACY_MODE=raw` yourself is your own call and needs no per-call intent.\n- Structured mode preserves complete upstream physiological fields and future v4 additions while removing identity, location and secret-bearing values.\n- \"Location redaction\" means a concrete key list, not a slogan. Coordinate-bearing **leaf keys**, always dropped in `structured` and `summary` (matched ignoring case, `_` and `-`, so `latitude_e7` and `latitudeE7` are the same key):\n\n  <!-- gps-redacted-keys:start -->\n  `startLatitude`, `startLongitude`, `start_latlng`, `endLatitude`, `endLongitude`, `end_latlng`, `latitude`, `longitude`, `lat`, `lon`, `lng`, `latlng`, `coordinates`, `coordinate`, `gps`, `gpx`, `geoPolylineDTO`, `map`, `polyline`, `summary_polyline`, `activities-tracker-gps`, `latitudeE7`, `longitudeE7`, `latE7`, `lngE7`, `lonE7`, `startLatitudeE7`, `startLongitudeE7`, `endLatitudeE7`, `endLongitudeE7`, `lat_deg`, `lng_deg`, `lon_deg`, `latitudeDegrees`, `longitudeDegrees`\n  <!-- gps-redacted-keys:end -->\n\n  Location **container keys**, dropped as a whole object — with their `address`/`city`/`placeId` siblings and any coordinate spelling this list never anticipated — whenever they hold a place record (an object, or an array containing objects). A container holding only scalars is a label, not a place, and survives: `location: [\"gym\", \"home\"]` stays, `location: { latitudeE7: … }` does not.\n\n  <!-- gps-redacted-containers:start -->\n  `location`, `locations`, `geoLocation`, `geoLocations`, `geo`, `geoJson`, `route`, `routes`, `position`, `positions`, `waypoint`, `waypoints`, `trackPoint`, `trackPoints`, `placeVisit`\n  <!-- gps-redacted-containers:end -->\n\n  `google_health_privacy_audit` returns both live lists in `gps_redacted_keys` and `gps_redacted_container_keys`, and `gps_redaction_default` is measured at call time by pushing a synthetic record through both non-raw modes and scanning the output by key **and by coordinate value** — it is not a hardcoded `true`. `npm run test:redaction-docs` fails the build if these two blocks stop matching the code, so the published promise cannot drift from the enforcement list again. Google Health API v4 does not currently document a location/route data type, so this is a forward-compatible guard rather than a patch for an observed leak.\n\n- Limits of that promise, stated instead of implied. Every line below is proved by a behavioural test (`npm run test:declared-limits`) that fails if the behaviour changes; a line marked **NOT VERIFIED** is a statement no test backs, labelled instead of left to read as a guarantee. A limit written here without a test fails the build:\n\n  <!-- declared-limits:start -->\n  - `default_mode_is_structured` — with no `privacy_mode` argument and no `GOOGLE_HEALTH_PRIVACY_MODE`, every read runs in `structured`.\n  - `raw_requires_explicit_user_intent` — an agent asking for `privacy_mode=raw` is refused with `USER_ACTION_REQUIRED` unless it also passes `explicit_user_intent=true`.\n  - `local_raw_default_needs_no_per_call_intent` — `GOOGLE_HEALTH_PRIVACY_MODE=raw` in your own config or environment is honoured on every call with no per-call intent; the gate is about agent escalation, not about the machine owner.\n  - `raw_is_an_unfiltered_passthrough` — `raw` returns the upstream payload unchanged; redaction is a property of `structured` and `summary`, never of `raw`.\n  - `structured_drops_identity_and_secret_keys` — tokens, `authorization`, e-mail, names and avatars are dropped at any depth in `structured`, while physiology and provenance survive.\n  - `summary_is_never_less_restrictive_than_structured` — `summary` strips first and summarizes after, so nothing `structured` drops can reappear in `summary`.\n  - `summary_flattens_numeric_leaves_to_depth_2` — `summary` promotes numeric leaves down to depth 2 of the data-type payload into `value`; anything deeper is not reported at all.\n  - `summary_promotes_unlisted_coordinate_keys` — a coordinate key outside the lists above is promoted by `summary`, not hidden. The key list is the boundary, not the mode.\n  - `altitude_and_elevation_are_not_location` — `altitude` is an official v4 data type (`activity_and_fitness`) and survives redaction, as does `elevation`; an altitude alone does not localize a user.\n  - `altitude_inside_a_place_container_is_dropped` — the same altitude inside a redacted location container dies with the container.\n  - `location_guard_never_observed_upstream` — NOT VERIFIED: Google Health API v4 documents no location/route data type, so no test here has ever seen a real Google payload carrying coordinates. The key list is a forward-compatible guard derived from Google's own encodings, not a measured fix for an observed leak.\n  <!-- declared-limits:end -->\n- Daily rollups use validated civil `YYYY-MM-DD` ranges; general rollups preserve exact timezone-aware ISO date-times. Invalid or reversed ranges fail before HTTP.\n- `support --redacted` prints a copy-paste support bundle for GitHub issues without tokens, secrets, local paths or health measurements.\n- `support --feedback --json` prints an anonymous setup-feedback bundle for beta testers and MCP client reports.\n- `coverage --live --json` prints only redacted data-type status and point-count buckets; it never includes raw Google Health payloads.\n\n## Authorization model & trust boundary\n\nGoogle OAuth controls which Google account and health scopes this connector can\naccess. It does **not** authorize individual MCP callers or tools. The intended\ndeployment is one local user running one trusted MCP host; callers that can\nreach the same process share its tool catalog and local OAuth grant.\n\nThere is currently no per-user, per-agent, API-key or per-tool RBAC layer. The\noptional HTTP transport binds to `127.0.0.1` by default and must not be exposed\npublicly without standards-compliant MCP authentication, isolated per-user\nGoogle credentials and an explicit authorization policy. See the full\n[authorization model](docs/authorization.md).\n\n## See the full agent demo →\n\nWant to see an agent actually reason over this connector alongside the rest of the stack? The shared, reproducible demo answers the anchor question **\"Should I train hard today?\"**:\n\n```bash\nnpx -y delx-living-body demo\n```\n\n`delx-living-body` composes whatever connectors it detects locally with rule-based (offline) synthesis — readiness-first and non-medical. For this connector specifically, `npx -y google-health-mcp-unofficial doctor --live` is the local proof that your Google Health auth is wired correctly.\n\n## Beta Testers Wanted\n\nThe highest-leverage contribution right now is real setup feedback from Fitbit, Pixel Watch, Android and Google Health API v4 users.\n\nIf you can test with a real account:\n\n- Run `npx -y google-health-mcp-unofficial doctor` and confirm the OAuth flow is clear.\n- Run `npx -y google-health-mcp-unofficial support --feedback --json` and paste the anonymous bundle into issue #4.\n- Run `npx -y google-health-mcp-unofficial coverage --json` for the static coverage plan.\n- After OAuth, run `npx -y google-health-mcp-unofficial coverage --live --json` and paste the reviewed, redacted report into [issue #2](https://github.com/davidmosiah/google-health-mcp/issues/2).\n- Try `google_health_connection_status`, `google_health_data_inventory` and `google_health_daily_summary` from your MCP client.\n- Open an issue for missing data types, confusing setup steps, client-specific friction or privacy concerns.\n- Do **not** paste OAuth tokens, client secrets, local paths or personal health measurements into public issues.\n\nUseful links:\n\n- [Beta testers wanted](https://github.com/davidmosiah/google-health-mcp/issues/2)\n- [Proof loop status (honest 1/2)](docs/proof-loop-status.md)\n- [Beta testers / new coverage](https://github.com/davidmosiah/google-health-mcp/issues/2)\n- [MCP client setup feedback](https://github.com/davidmosiah/google-health-mcp/issues/4)\n- [Beta feedback guide](docs/beta-feedback.md)\n- [Data coverage harness](docs/data-coverage.md)\n- [Anonymous setup feedback](docs/setup-feedback.md)\n- [Demo](docs/demo.md)\n- [Discovery kit](docs/discovery.md)\n\n## Install\n\nCreate a Google Cloud OAuth client, enable the Google Health API, and add the local redirect:\n\n```text\nhttp://127.0.0.1:3000/callback\n```\n\nThen run:\n\n```bash\nnpx -y google-health-mcp-unofficial setup --scope-preset full\nnpx -y google-health-mcp-unofficial auth\nnpx -y google-health-mcp-unofficial doctor\n```\n\n### Headless hosts (servers, SSH, containers, WSL)\n\n`auth` normally opens a browser and catches the redirect on `127.0.0.1`. On a host with no\nbrowser that cannot work. When it detects a headless host — SSH, or no `DISPLAY` /\n`WAYLAND_DISPLAY` — it switches to pasting the redirect back in:\n\n```bash\nnpx -y google-health-mcp-unofficial auth --manual\n```\n\nNon-interactive provisioning:\n\n```bash\nnpx -y google-health-mcp-unofficial auth --print-url\nnpx -y google-health-mcp-unofficial auth --code \"http://127.0.0.1:3000/callback?code=...\"\n```\n\nSee [docs/oauth.md](docs/oauth.md) for `--local-callback`, SSH tunnel notes, and\n`GOOGLE_HEALTH_HEADLESS`.\n\nScope presets keep OAuth consent easier to reason about — `basic`, `activity`, `sleep` and `full`. The full preset list, the exact read-only scope URLs and the OAuth endpoints live in [docs/oauth.md](docs/oauth.md).\n\nIf setup gets stuck:\n\n```bash\nnpx -y google-health-mcp-unofficial doctor --fix       # repairs local config/token permissions (chmod 600 where supported)\nnpx -y google-health-mcp-unofficial doctor --live      # calls safe identity/profile/settings endpoints to prove the API is reachable\nnpx -y google-health-mcp-unofficial coverage --live --json # redacted read-only data-type coverage for issue #21\nnpx -y google-health-mcp-unofficial support --redacted # copy-paste support bundle, no tokens/secrets/measurements\nnpx -y google-health-mcp-unofficial support --feedback --json # anonymous setup feedback for issue #4\n```\n\nStandalone MCP config:\n\n```json\n{\n  \"mcpServers\": {\n    \"google_health\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"google-health-mcp-unofficial\"]\n    }\n  }\n}\n```\n\n## Hermes\n\n```bash\nnpx -y google-health-mcp-unofficial setup --client hermes --no-auth\nnpx -y google-health-mcp-unofficial auth\nnpx -y google-health-mcp-unofficial doctor --client hermes --fix\nnpx -y google-health-mcp-unofficial doctor --client hermes --live\nhermes mcp test google_health\n```\n\nAfter config changes, use `/reload-mcp` or `hermes mcp test google_health`. Do not restart the gateway for normal data access.\n\n## Development\n\n```bash\ngit clone https://github.com/davidmosiah/google-health-mcp.git\ncd google-health-mcp\nnpm install\nnpm test\n```\n\n## Links\n\n- [Changelog](CHANGELOG.md) · [Contributing](CONTRIBUTING.md) · [Security](SECURITY.md) · [Authorization model](docs/authorization.md)\n- Google Health API: https://developers.google.com/health\n- Release notes: https://developers.google.com/health/release-notes\n- REST reference: https://developers.google.com/health/reference/rest\n- Scopes: https://developers.google.com/health/scopes\n- Data types: https://developers.google.com/health/data-types\n- Migration guide: https://developers.google.com/health/migration\n- Delx Wellness registry: https://github.com/davidmosiah/delx-wellness\n\n<!-- delx-wellness see-also -->\n\n## See also\n\nThe full [Delx Wellness](https://wellness.delx.ai) connector library:\n\n| Provider | Package | Repo |\n|---|---|---|\n| WHOOP | [`whoop-mcp-unofficial`](https://www.npmjs.com/package/whoop-mcp-unofficial) | [whoop-mcp](https://github.com/davidmosiah/whoop-mcp) |\n| Oura | [`oura-mcp-unofficial`](https://www.npmjs.com/package/oura-mcp-unofficial) | [ouramcp](https://github.com/davidmosiah/ouramcp) |\n| Garmin | [`garmin-mcp-unofficial`](https://www.npmjs.com/package/garmin-mcp-unofficial) | [garmin-mcp](https://github.com/davidmosiah/garmin-mcp) |\n| Strava | [`strava-mcp-unofficial`](https://www.npmjs.com/package/strava-mcp-unofficial) | [strava-mcp](https://github.com/davidmosiah/strava-mcp) |\n| Fitbit | [`fitbit-mcp-unofficial`](https://www.npmjs.com/package/fitbit-mcp-unofficial) | [fitbitmcp](https://github.com/davidmosiah/fitbitmcp) |\n| Withings | [`withings-mcp-unofficial`](https://www.npmjs.com/package/withings-mcp-unofficial) | [withingsmcp](https://github.com/davidmosiah/withingsmcp) |\n| Apple Health | [`apple-health-mcp-unofficial`](https://www.npmjs.com/package/apple-health-mcp-unofficial) | [apple-health-mcp](https://github.com/davidmosiah/apple-health-mcp) |\n| Polar | [`polar-mcp-unofficial`](https://www.npmjs.com/package/polar-mcp-unofficial) | [polarmcp](https://github.com/davidmosiah/polarmcp) |\n| Nourish (nutrition) | [`wellness-nourish`](https://www.npmjs.com/package/wellness-nourish) | [wellness-nourish](https://github.com/davidmosiah/wellness-nourish) |\n\n**One-command setup for Hermes** — preconfigures every connector above plus wellness skills + onboarding: [`delx-wellness-hermes`](https://github.com/davidmosiah/delx-wellness-hermes).\n\n<!-- /delx-wellness see-also -->\n\n## 📧 Contact & Support\n\n- 📨 **support@delx.ai** — general questions, integration help, partnerships\n- 🐛 **Bug reports / feature requests** — [GitHub Issues](https://github.com/davidmosiah/google-health-mcp/issues)\n- 🐦 **Updates** — [@delx369](https://x.com/delx369) on X\n- 🌐 **Site** — [wellness.delx.ai](https://wellness.delx.ai)\n\n\n## License\n\nMIT - see [LICENSE](LICENSE). [Code of Conduct](CODE_OF_CONDUCT.md).\n\n> Agent-ready yardstick: [mcp-scorecard](https://github.com/davidmosiah/mcp-scorecard) — aim ≥90 on CI.\n\n## Skill or MCP\n\nSame package, two doors. MCP registers tools on stdio/HTTP. The [skill](skill/SKILL.md) can drive the **same** tools through the CLI when the client has no MCP:\n\n```bash\nnpx -y google-health-mcp-unofficial call google_health_connection_status --json '{}'\n```\n\nCopy `skill/SKILL.md` into your agent skills dir.\n",
  "bytes": 23375,
  "sha": "c9746164e3a0539e6b67a2646baa5fcfbfe2e83b3d75baf2b185285f33614715",
  "repo_slug": "davidmosiah/google-health-mcp",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_io_github_davidmosiah_google_health_mcp_cf3a2077/readme"
}