MCP server · read-only

Your Fitbit data, in every AI chat

Ask Claude, ChatGPT or Grok about your sleep, steps, heart rate and weight. A private MCP server for the Google Health API that runs on your own Vercel.

Google Health API v4 · MIT · Unofficial
Claude · Google Health
Y
You 8:02 AM

How did I sleep, and how active was I yesterday?

Claude MCP 8:02 AM
get_daily_summarySteps, calories, heart rate get_data_pointsSleep stages for last night

You slept 7 h 12 min with 1 h 34 min of deep and REM sleep. Yesterday you walked 8,214 steps and your resting heart rate was 61 bpm.

7h 12mSleep
8,214Steps
61 bpmResting HR
Example conversation with sample numbers.

Read-only by design

It only asks Google for read access, so it can never change or delete your data. An access token keeps everyone else out.

Works with any MCP app

Claude on web, desktop and phone, Claude Code, ChatGPT, Grok, and anything that speaks the Model Context Protocol.

35 kinds of health data

Sleep stages, steps, heart rate, HRV, SpO2, weight, workouts and more from Fitbit and Pixel Watch.

Ready to connect

Copy your server address, then add it to the AI apps you use.

01

Copy your server address

Paste it into your AI app and click Connect. You'll type your access token (MCP_HTTP_TOKEN) on your server's own page.

/mcp
One-time

Google account

New deploy? This page walks you through the Google setup. Otherwise you only need it again if Google ends the sign-in, for example after a password change.

Sign in with Google

Add it to any AI app

Paste your server address, click Connect, and type your access token on the page that opens. That's it.

Add a custom connector (some apps call it an MCP server) with your server address. The app opens a sign-in page on your own server, which asks for your access token (MCP_HTTP_TOKEN). Type it there and click Allow access. The token never goes into a chat, a URL or the app's settings.

In Claude it's Settings → Connectors → Add custom connector, and it then works in the desktop and phone apps too. In ChatGPT, turn on Developer mode under Settings → Apps & Connectors and choose OAuth. In Grok, use grok.com/connectors. In Claude Code, run the command shown, then /mcp → Authenticate.

Apps without sign-in support can send the token as a header or with ?key= instead.

Connection details
Server address (all you need)
/mcp

Claude Code
claude mcp add --transport http -s user google-health /mcp

Fallback: header
Authorization: Bearer YOUR_TOKEN

Fallback: URL only
/mcp?key=YOUR_TOKEN

What your AI can read

Eight tools, all read-only.

get_daily_summaryOne day at a glance: steps, distance, calories, Active Zone Minutes, resting heart rate, HRV, sleep and workouts.
get_daily_rollupTrends per day or week, up to 90 days.
get_rollupHour-by-hour values, such as heart rate during a run.
get_data_pointsRaw records: sleep stages, workouts, weight, SpO2, HRV.
get_exercise_routeA GPS workout's distance, pace, elevation and heart rate. Map points only on request, never near the start or finish.
get_user_infoProfile, units, time zone and goals.
list_paired_devicesYour devices, battery level and last sync.
list_data_typesEvery readable data type and what it supports.
"How did I sleep last night?" "Steps per day for the last two weeks" "Is my resting heart rate trending down?" "Map my last run"

Troubleshooting

The common fixes.

"Not signed in"

Use Sign in with Google. You only need it again if Google ends the sign-in.

"Unauthorized" or "credential rejected"

The token in your app is wrong or was changed. Update it in the app's connector settings.

No data for today

Open the Fitbit app so your tracker syncs. Sleep and resting heart rate appear after a night's wear.

Is it up?

/healthz returns ok when the server is running.

Sign in with Google

Connect this server to the Google account your Fitbit syncs with. You only need to do this once.

New deploy? You'll see a short setup checklist first.

Connect an app

Add this address as a custom connector, click Connect, and type your access token on the page that opens.

/mcp

Full guide and fallbacks