Google Health MCP

An agent reads sleep, activity and heart data from Fitbit and Pixel Watch over OAuth, with tokens kept on your computer.

  • 82 ★ on the repository
  • Last commit
  • MIT
MCP server

Broad access

Why this level

  • The server receives personal health data from a Google account over OAuth: sleep, activity, heart rate and more.
  • Tokens and client secrets are stored on disk in `~/.google-health-mcp`, and the `raw` mode gives an agent more data.
All reasons and checks

davidmosiah/google-health-mcp

Install

In your terminal, with SkillFoxx CLI

npx skillfoxx add mcp/google-health-mcp

Detects the agents on your machine, shows the access level and pins the version.

Other ways to install

Access and checks

How we review

Broad accessThe tool can change data, run commands or handle secrets.

  • The server receives personal health data from a Google account over OAuth: sleep, activity, heart rate and more.
  • Tokens and client secrets are stored on disk in `~/.google-health-mcp`, and the `raw` mode gives an agent more data.

This is third-party code. Review the repository files before installing.

What it does

Google Health MCP is an unofficial local MCP server for Google Health API v4, the successor of the Fitbit Web API. An agent reads user-authorized Fitbit, Pixel Watch and partner data over OAuth. The project is in beta: Google still changes scopes and data types. The server provides tools for a connection check (`google_health_connection_status`), an inventory of available domains and scopes (`google_health_data_inventory`), data type coverage, daily and weekly summaries and a privacy audit that shows what is stored locally and what would go to Google on the next call. Tokens live in `~/.google-health-mcp/tokens.json` with `0600` permissions, and tools never return tokens or client secrets. The default privacy mode `structured` removes identifiers, coordinates and places. stdio transport is supported and an optional HTTP mode listens on loopback only.

Who it is for. Fitbit and Pixel Watch owners and developers who want an agent to read sleep, activity and heart data without passing tokens into prompts.

Good fit when

  • An agent builds a weekly review of sleep and activity separating observations from suggestions.
  • Before work you need to know which data domains and scopes are authorized.
  • You want to see what the server stores locally and what it sends to Google on the next call.
  • A tester with a live account collects a redacted report on data type coverage.

Not a fit when

  • You need a medical conclusion: the project is not a medical device and gives no medical advice.
  • You have no Google Cloud project with the Google Health API enabled and an OAuth client.
  • You need to write data: the server reads data you authorized.

Example request

Check the Google Health connection with google_health_connection_status, then build a weekly summary separating observations from suggestions and giving no medical advice.

MCP

Transport
stdio, http
Authentication
OAuth

Environment variables

GOOGLE_HEALTH_PRIVACY_MODE
Privacy mode: `structured` by default, `raw` for debugging only.
GOOGLE_HEALTH_MCP_PORT
HTTP mode port, 3000 by default.

Limitations

This is a beta of an unofficial project, not affiliated with Google, Fitbit or Alphabet. A Google Cloud project with the Google Health API enabled and an OAuth client with the redirect `http://127.0.0.1:3000/callback` are required. The Google Health API v4 protocol and data types are still changing, and the README confirms reachability only for safe profile and settings endpoints. The `raw` mode returns more data, and an agent gets it only with `explicit_user_intent=true`. A Claude Desktop connection may need an `outputSchema` check.

How to disable. Remove the server entry from the MCP client settings, then delete the `~/.google-health-mcp` directory with tokens and config. Revoke the app access on the Google account page.

FAQ

How do I set the server up?

Create an OAuth client in Google Cloud, enable the Google Health API and add the redirect `http://127.0.0.1:3000/callback`. Then run `setup`, `auth` and `doctor` through `npx -y google-health-mcp-unofficial`.

Which scope presets exist?

The presets `basic`, `activity`, `sleep` and `full` for the `--scope-preset` flag. Exact scope URLs and OAuth endpoints are listed in `docs/oauth.md`.

Where are tokens stored?

Locally in `~/.google-health-mcp/tokens.json` with `0600` permissions. Tools never return access tokens, refresh tokens or client secrets.

How do I run it over HTTP?

Run `npx -y google-health-mcp-unofficial --http`: a sessionless server answers JSON at `http://127.0.0.1:3000/mcp` on loopback only.

What does the privacy audit do?

The `google_health_privacy_audit` tool shows what is stored locally, what would go to Google on the next call and which coordinate and place keys are dropped.

Discussion

No questions or reviews yet.

Garmin Personal MCP answers questions about sleep, HRV and training from your Garmin Connect account, read-only

MCP serverExtended access70Repository stars

A read-only MCP server that brings WHOOP recovery, sleep, HRV, strain and workouts to Claude, Codex and Cursor.

MCP serverExtended access181Repository stars

Garmin MCP

garmin-mcp

Garmin Connect data for an agent: activities, health, editing names and notes. Works through the unofficial python-garminconnect library

MCP serverExtended access1.5KRepository stars

An MCP server over your local Zepp and Amazfit database: agents read sleep, heart rate and workouts and draft plans

MCP serverBroad access251Repository stars

Comparison with similar tools

Cards that share the main search query, and how they differ.

ToolOfficialAuthenticationRepository starsMain difference
Google Health MCP (this card)noOAuth82
ghealthno283a CLI for the Google Health API with JSON reads and two skills; here an MCP server with a privacy audit and daily and weekly summaries
whoop-ai-mcpnoOAuth181a read-only MCP for WHOOP data; Google Health MCP works with Fitbit and Pixel Watch through the Google Health API

README in short

The README header explains the beta status and independence from Google, then come a quick start, sample agent prompts, the main tools, a privacy section with testable limits of its promises and ways to help the project.

README badge

Report a problem