Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault

No arguments

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": true
}
resources
{
  "listChanged": true
}

Tools

Functions exposed to the LLM to take actions

NameDescription
cgm_agent_manifestA

Returns the wellness-cgm-mcp agent manifest: tool list, supported clients, env vars, recommended first calls, capabilities, privacy posture, and community links.

cgm_capabilitiesA

Lists supported providers, configured providers (via env vars), available metrics, and privacy modes.

cgm_connection_statusA

Reports 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_auditA

Returns what wellness-cgm-mcp stores locally, what is sent to Dexcom, what is never logged, and agent rules.

cgm_data_inventoryB

Returns the metric catalog plus thresholds (TIR ranges, GMI formula reference).

cgm_glucose_nowA

Returns the most recent EGV (estimated glucose value) plus trend arrow if available.

cgm_glucose_windowA

Returns 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_eventsA

v0.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_summaryA

Returns 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_rangeA

Compute 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_responseA

Compute 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_urlA

Read-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.

cgm_quickstartA

Returns a personalized 3-step walkthrough for getting wellness-cgm-mcp from mock mode → live mode (Dexcom). Call this first when the user asks 'how do I connect my CGM?'

cgm_profile_getA

Returns the shared Delx Wellness profile (~/.delx-wellness/profile.json). Read-only. Surfaces diabetes status / non-DM context so wellness-cgm-mcp can pick the right time-in-range profile (70-180 ADA vs 70-140 metabolic-health).

cgm_profile_updateA

Persist a partial patch to the shared Delx Wellness profile. Requires explicit_user_intent: true. Rejects any field containing oauth/token/secret/password/cookie/refresh/api_key/session — the profile is for non-secret wellness context only.

cgm_onboardingA

Returns the 11-question onboarding flow for the shared Delx Wellness profile. Read-only. The agent should ask these questions next so wellness-cgm-mcp (and the rest of the wellness stack) can personalize responses — non-secret data only, stored at ~/.delx-wellness/profile.json.

cgm_demoA

Returns realistic example payloads of cgm_glucose_now, cgm_daily_summary, and cgm_meal_response. Use this to help users see what the connector will return before configuring Dexcom.

cgm_libre_statusA

Reports FreeStyle Libre (LibreLink Up) configuration: region, whether LIBRELINKUP_EMAIL/PASSWORD (or a token) are set, whether a patient id is pinned, and whether reads will be live or mock. Use this to confirm the Libre path is wired before calling glucose tools with CGM_PROVIDER=libre.

cgm_libre_loginA

Authenticate against LibreLink Up using LIBRELINKUP_EMAIL / LIBRELINKUP_PASSWORD and list the sensors (connections) this account follows. Confirms the FreeStyle Libre path works end-to-end before reading glucose. Never returns the auth token. When credentials are missing it returns mock=true with a synthetic connection so the surface can be demoed without an Abbott account.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription
cgm_agent_manifestMachine-readable install and operating instructions for AI agents.
cgm_capabilitiesSupported providers, metrics, and privacy modes.
cgm_connection_statusActive CGM provider and mock vs live readiness (no tokens).
cgm_data_inventoryMetric catalog and TIR thresholds.
cgm_privacy_auditWhat wellness-cgm-mcp stores locally and sends outbound.

TDQS

A4.1/5.0

Scored across 19 tools

Disambiguation5/5

Each tool targets a distinct aspect: connection status, glucose reading, analytics (hypos, daily summary, TIR, meal response), authentication (Dexcom OAuth, Libre login), profile management, and demo. The overlap between cgm_connection_status and cgm_libre_status is resolved by scope (general vs. Libre-specific), and descriptions clearly differentiate window vs. now, and summary vs. TIR.

Naming Consistency5/5

All tools follow a consistent cgm_ prefix with snake_case naming. While some are noun-only (cgm_manifest, cgm_demo) and others are verb_noun (cgm_profile_get, cgm_profile_update), the pattern is uniform and predictable, making it easy to infer the resource or action.

Tool Count4/5

19 tools is slightly above the ideal 3-15 range, but the server covers a broad domain: data retrieval, analytics, auth, profile, and demo. Each tool serves a clear purpose, and the count is justified by the comprehensive feature set without being overwhelming (not 25+).

Completeness5/5

The tool surface covers the full lifecycle: connection status, glucose data (now/window), analytics (hypos, daily summary, TIR, meal response), authentication flows (Dexcom OAuth, Libre login), profile management (get/update/onboarding), and demo/quickstart. There are no obvious dead ends; the only missing piece might be a delete-profile tool, but that's a minor gap and profile update covers modification.

Maintenance

ActivityActive
ResponsivenessNo issues