A side-by-side look at the Wellness Cgm MCP and MCP Freestyle 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 MCP Freestyle for biology & bioinformatics over a hosted endpoint. 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.LIBRELINKUP_EMAIL, LIBRELINKUP_PASSWORD, LIBRELINKUP_VERSION, LIBRELINKUP_PRODUCT, LIBRELINKUP_BASE_URL.get_current_glucose, get_glucose_history.Rows where the two servers differ are marked.
| Spec | ||
|---|---|---|
| Category | Biology & Bioinformatics | Biology & Bioinformatics |
| Quality signal | 61/100 · Good | 48/100 · Fair |
| Install command | Confirmed | Confirmed |
| Transport | Local subprocess (stdio) | Remote HTTP/SSE |
| 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 | LIBRELINKUP_EMAILLIBRELINKUP_PASSWORDLIBRELINKUP_VERSIONLIBRELINKUP_PRODUCTLIBRELINKUP_BASE_URL |
| Verified owner | Community listing | Community listing |
| GitHub stars | 1 | 0 |
| Directory activity | 3 views 0 installs 0 upvotes | 0 views 0 installs 0 upvotes |
| Tools | 19 | 2 |
| Full listing | View Wellness Cgm MCP | View MCP Freestyle |
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.get_current_glucoseThe most recent measurement with the instant it was actually taken, plus the account's own target band. Never presented as a live "now" reading.get_glucose_historyReadings over the last N hours (max 12) with time-in-range. Always states the range it **actually** covered and flags `truncated` when upstream returned less than asked. Collection gaps are listed, never interpolated across.Paste 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": {
"mcp-freestyle": {
"url": "https://api.libreview.io"
}
}
}