A side-by-side look at the Wellness Cgm MCP and Google Health Fitbit MCP MCP servers: transport, auth, tools, quality signals, and the config to install either one in Claude, Cursor, Windsurf or VS Code.
Verdict: choose Wellness Cgm MCP for biology & bioinformatics work as a local process; choose Google Health Fitbit MCP for biology & bioinformatics as a local process. You can also run both side by side in one mcpServers block.
CGM_PROVIDER, DEXCOM_ENV, DEXCOM_CLIENT_ID, DEXCOM_CLIENT_SECRET, DEXCOM_REDIRECT_URI, DEXCOM_ACCESS_TOKEN, LIBRELINKUP_EMAIL, LIBRELINKUP_PASSWORD.cgm_agent_manifest, cgm_capabilities, cgm_connection_status.google_health_connection_status, google_health_quickstart, google_health_data_inventory.Rows where the two servers differ are marked.
| Spec | ||
|---|---|---|
| Category | Biology & Bioinformatics | Biology & Bioinformatics |
| Quality signal | 61/100 · Good | 57/100 · Good |
| Install command | Confirmed | Confirmed |
| Transport | Local subprocess (stdio) | Local subprocess (stdio) |
| Auth | OAuth 2.0 | Not declared |
| Pricing | Free | Not declared |
| Required env vars | CGM_PROVIDERDEXCOM_ENVDEXCOM_CLIENT_IDDEXCOM_CLIENT_SECRETDEXCOM_REDIRECT_URIDEXCOM_ACCESS_TOKENLIBRELINKUP_EMAILLIBRELINKUP_PASSWORD | None listed |
| Verified owner | Community listing | Community listing |
| GitHub stars | 1 | 17 |
| Directory activity | 3 views 0 installs 0 upvotes | 0 views 0 installs 0 upvotes |
| Tools | 19 | 18 |
| Full listing | View Wellness Cgm MCP | View Google Health Fitbit MCP |
cgm_agent_manifestReturns the wellness-cgm-mcp agent manifest: tool list, supported clients, env vars, recommended first calls, capabilities, privacy posture, and community links.cgm_capabilitiesLists supported providers, configured providers (via env vars), available metrics, and privacy modes.cgm_connection_statusReports the active CGM provider (dexcom | libre), why it was selected, whether credentials are present, and whether the connector will return mock vs live data. For Dexcom it includes the env (sandbox/production); for FreeStyle Libre it includes the LibreLink Up region.cgm_privacy_auditReturns what wellness-cgm-mcp stores locally, what is sent to Dexcom, what is never logged, and agent rules.cgm_data_inventoryReturns the metric catalog plus thresholds (TIR ranges, GMI formula reference).cgm_glucose_nowReturns the most recent EGV (estimated glucose value) plus trend arrow if available.cgm_glucose_windowReturns all EGVs over the last N hours (default 24). `hours` is the window REQUESTED; `hours_covered` and `observed_window` state what the provider actually returned. FreeStyle Libre (LibreLink Up) caps a live read at ~12h regardless of the request, so any wider ask comes back short and `notes` says so — read the covered window, not the requested one.cgm_hypo_eventsv0.3.3 — Detect hypoglycemia events between `from` and `to` ISO dates. Returns an array of contiguous below-threshold runs lasting ≥ `min_duration_minutes`, each with `started_at`, `ended_at`, `duration_minutes`, `min_glucose_mg_dl`, `mean_glucose_mg_dl`, `severity` (level_1 = <70 ADA Level 1, level_2 = <54 ADA Level 2), and `recovery_time_minutes` (time to first reading ≥ threshold+10). Also returns `total_events`, `total_minutes_below`, `mean_min_glucose`, `events_per_day`, a `summary` string, and `recommendations` grounded in what was actually observed. `window` is the span REQUESTED; `hours_covered`, `observed_window` and `window_truncated_by_provider` state what the provider actually returned — FreeStyle Libre (LibreLink Up) caps a live read at ~12h, so a 3-day question can be answered from half a day and `notes` says so. "No hypos" is only true for `hours_covered`. **MEDICAL DISCLAIMER: NOT medical advice. Do not use for treatment decisions. Hypo events should be discussed with your clinician.**cgm_daily_summaryReturns daily glucose stats: mean, median, min/max, stdev, GMI (estimated A1C), CV, time-in-range (diabetic 70-180 + metabolic-health 70-140). `window_hours` is what was REQUESTED; every stat is computed over `hours_covered` / `observed_window`, which can be shorter — FreeStyle Libre (LibreLink Up) caps a live read at ~12h, so a 72h request yields a half-day metric and `notes` flags it. Never report these numbers as covering more than `hours_covered`.cgm_time_in_rangeCompute Time in Range (TIR), Time Below Range, and Time Above Range over a specific time window with a customizable target range. Use this for mealtime TIR (e.g. 7am-10am breakfast window), overnight TIR (e.g. 23:00-07:00), or specific date-range comparisons. Returns total_readings, readings_in_window, mean_glucose, median_glucose, and GMI (Glucose Management Indicator, estimated A1C per ADA / Bergenstal 2018: GMI% = 3.31 + 0.02392 × mean_mg_dL). Supports a `time_window` preset ("wake" = 06:00-22:00, "sleep" = 22:00-06:00, "all") OR explicit `start_hour` / `end_hour` (0-24, UTC) for recurring hour-of-day filtering. Defaults: 24h load, ADA 70-180 mg/dL, time_window=all. Pulls from cgm_glucose_window data; falls back to mock in unauth mode.cgm_meal_responseCompute glucose response to a meal: baseline → peak → return-to-baseline. Returns peak delta, peak time (min after meal), and a band (excellent/good/moderate/poor).cgm_authorize_urlRead-only OAuth URL generation; does not exchange tokens. Not a state mutation of glucose data. Gated by: user must open URL themselves (explicit user action). Builds the Dexcom OAuth authorize URL. The user opens it, grants access, and Dexcom redirects to your registered DEXCOM_REDIRECT_URI with an auth code. If credentials are missing, returns a hint with the exact env vars needed.google_health_connection_statusLocal config, token, scope and MCP-client readiness — no Google callgoogle_health_quickstartPersonalized 3-step setup walkthrough that adapts to your current stategoogle_health_data_inventorySupported domains, scopes, data-type naming and recommended agent flowgoogle_health_list_data_typesThe 39 kebab-case data-type slugs with units, scopes and supported verbsgoogle_health_demoRealistic synthetic payloads so agents see the contract before real callsgoogle_health_get_identity/v4/users/me/identity` — Google Health + legacy Fitbit identity mappinggoogle_health_get_profile/v4/users/me/profilegoogle_health_get_settings/v4/users/me/settings` — units, timezonegoogle_health_list_paired_devices/v4/users/me/pairedDevices` — your Fitbit trackers and Pixel Watches, and which device produces which datagoogle_health_get_irn_profile/v4/users/me/irnProfile` — irregular-rhythm (AFib) notification engagement statusgoogle_health_list_data_points/v4/.../dataPoints` — intraday detail for any data typegoogle_health_get_data_point/v4/.../dataPoints/{id}` — one specific sleep session, exercise or measurementPaste either block (or both) into your client config, e.g. claude_desktop_config.json or ~/.cursor/mcp.json. We only show a config when the install command is confirmed.
{
"mcpServers": {
"davidmosiah-wellness-cgm-mcp": {
"command": "npx",
"args": [
"-y",
"delx-wellness-hermes"
],
"env": {
"CGM_PROVIDER": "YOUR_CGM_PROVIDER_HERE",
"DEXCOM_ENV": "YOUR_DEXCOM_ENV_HERE",
"DEXCOM_CLIENT_ID": "YOUR_DEXCOM_CLIENT_ID_HERE",
"DEXCOM_CLIENT_SECRET": "YOUR_DEXCOM_CLIENT_SECRET_HERE",
"DEXCOM_REDIRECT_URI": "YOUR_DEXCOM_REDIRECT_URI_HERE",
"DEXCOM_ACCESS_TOKEN": "YOUR_DEXCOM_ACCESS_TOKEN_HERE",
"LIBRELINKUP_EMAIL": "YOUR_LIBRELINKUP_EMAIL_HERE",
"LIBRELINKUP_PASSWORD": "YOUR_LIBRELINKUP_PASSWORD_HERE"
}
}
}
}
{
"mcpServers": {
"google-health-fitbit-mcp": {
"command": "npx",
"args": [
"-y",
"google-health-fitbit-mcp"
]
}
}
}