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

Twelve 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 and HRV 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.

🏃

Daily activity load

Active-zone-minutes, steps, distance and calories — all-day load to complement Strava.

⚖️

Body composition

Weight and body-fat trends across a training block.

🫁

Vitals & fitness

Respiratory rate, blood-oxygen (SpO₂) and estimated VO₂ max — early under-recovery signals.

🥗

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.