Open-source · self-hosted · MCP connector

Your recovery data, inside Claude.

A remote Model Context Protocol server that brings your Fitbit & Pixel Watch health data — sleep, HRV, resting heart rate and more — into Claude, so it can coach your training against how recovered you actually are.

What it does

Fourteen coaching-oriented tools, each answering a question a coach actually asks — returning compact data Claude reasons over alongside your workouts.

🌙

Recovery snapshot

Last night's sleep, resting HR, HRV and skin-temperature variation in one call — "am I recovered enough to train today?"

❤️

HRV & resting-HR trends

Daily autonomic-recovery trends over any window. Rising resting HR flags fatigue or illness.

😴

Sleep stages

Nightly duration and stage breakdown for sleep-debt and consistency analysis.

🏃

Activity & workouts

Active-zone-minutes, steps, distance, calories, floors, sedentary time and watch-logged exercise sessions.

📈

Heart-rate zones

Daily zone boundaries plus time and calories in each zone — check your intensity distribution.

⚖️

Body composition

Weight, body-fat and height trends across a training block.

🫁

Vitals & fitness

Respiratory rate, SpO₂, skin & core temperature, blood glucose and VO₂ max — early under-recovery signals.

🫀

Cardiac events

ECG recordings and irregular-rhythm notifications from the watch (optional scopes).

🥗

Nutrition & hydration

Calories, macros and water (via MyFitnessPal → Health Connect) to assess fuelling.

🩺

Self-diagnostics

A built-in tool probes every metric and reports exactly what's working — no guesswork.

How it works

You deploy your own copy to Cloudflare Workers. Your data flows straight from Google to your worker to your Claude — it never touches anyone else's servers.

Fitbit / Pixelvia Health Connect
→
Google Health APIOAuth, read-only
→
Your WorkerCloudflare, your account
→
ClaudeMCP connector
Privacy by design. The server runs on your Cloudflare account. OAuth tokens are encrypted at rest in your own KV namespace, requests are read-only, and the project authors never receive your health data. See the Privacy Policy.

Set it up (~20 min)

For personal use (just you), Google requires no security review. You'll need a Google account with a Fitbit or Pixel Watch, a free Cloudflare account, and a GitHub account.

1 · Google Cloud OAuth

Create a project, enable the Google Health API, configure the OAuth consent screen (External, published to Production so tokens don't expire weekly), add the read-only health scopes, and create a Web application OAuth client. Set the redirect URI to https://<your-worker>.workers.dev/callback.

2 · Deploy to Cloudflare — one click

The button forks this repo into your own GitHub and provisions the worker and storage in your Cloudflare account — no API tokens pasted anywhere. Then set three secrets (Google client ID/secret, cookie key) in your worker's settings, and point the Google client's redirect URI at https://<your-worker>.workers.dev/callback.

Deploy to Cloudflare

3 · Add the connector to Claude

In Claude → Settings → Connectors, add your worker URL with the /mcp path: https://<your-worker>.workers.dev/mcp. Click Connect, approve Google consent, and the tools light up on web, desktop and mobile.

4 · Ask Claude about your recovery

"How did I sleep this week?" · "Is my HRV trending down?" · "Am I recovered enough for intervals today?" If anything looks off, ask Claude to run_diagnostics.

Full instructions on GitHub

Works with Fitbit & Pixel

The Google Health API serves data originating from Fitbit devices and Google Pixel Watches. Garmin, Apple Watch, Whoop and Oura are not covered by this API.