Public leaderboard

Public assessment

davidmosiah/wellness-cgm-mcp (wellness-cgm-mcp)

wellness-cgm-mcp · v0.6.1 · scanned

What changed in the harness

Selection accuracy 100→100, token cost up 5%, unconfirmed writes 0%→0%.

Category breakdown

Where the score comes from.

Earned points across the four signals Gradable measures. Safety and Legibility are scored out of 30; Economics and Discoverability are scored out of 20.

01Safety

0.0 / 30

0.0 out of 30
02Legibility

26.7 / 30

26.7 out of 30
03Economics

18.0 / 20

18.0 out of 20
04Discoverability

11.1 / 20

11.1 out of 20

Highest-impact fix

Estimated gain +30 points

Add explicit identity and permission preflight tools

Expose machine-readable principal/tenant confirmation and a non-mutating permission check so agents can verify both before destructive actions.

Description evidence

Defects and rewrites.

7 defects found across the exposed tool descriptions. Suggested rewrites make purpose, inputs, boundaries, and returns easier for an agent to understand.

Tool Defect types Suggested rewrite
cgm_agent_manifest
params_unexplained
Returns the wellness-cgm-mcp agent manifest: tool list, supported clients, env vars, recommended first calls, capabilities, privacy posture, and community links. `client` selects the target client (claude, codex, cursor, windsurf, hermes, openclaw, or generic) so the manifest/recommended-first-calls content can be tailored to that client.
cgm_capabilities
no_return_description
Returns a capabilities object listing supported providers, which providers are configured (via env vars), available metrics, and privacy modes.
cgm_glucose_window
params_unexplained
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. `hours` sets the requested lookback window in hours (1-72; default 24).
cgm_authorize_url
params_unexplained
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. `state` is an optional OAuth state value echoed back on redirect for CSRF protection.
cgm_quickstart
params_unexplained
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?' `client` selects the target client (claude, codex, cursor, windsurf, hermes, openclaw, or generic) so the walkthrough steps are tailored to that client.
cgm_profile_update
no_return_description
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. Returns the updated profile object, or a rejection/error indicating why the patch was refused.
cgm_libre_status
no_return_description
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. Returns a status object with these configuration fields.

Selection evidence

Confusable tool pairs.

7 pairs where similar names or overlapping descriptions may send an agent toward the wrong tool.

Tool A Tool B Confidence Why they collide
cgm_connection_status cgm_libre_status medium Both report whether reads are live vs mock and describe the active connection; a task like 'is my Libre connected and getting live data?' fits either. cgm_connection_status is provider-agnostic, cgm_libre_status is Libre-specific, and only the description details differ.
cgm_glucose_now cgm_glucose_window medium Phrasings like 'show me my latest glucose readings' or 'what is my glucose right now and over the last few hours' could select the single-value tool over the range tool, or vice versa, since both return EGV data.
cgm_libre_status cgm_libre_login medium Both confirm the LibreLink Up path works: status reports credentials/region/live-vs-mock wiring, while login authenticates and lists sensors. A task like 'verify my Libre setup works' or 'make sure my Libre is connected' is ambiguous between checking config and performing the login.
cgm_agent_manifest cgm_capabilities medium Both answer 'what can this server do': the manifest lists tools and capabilities, while capabilities lists providers, metrics, and privacy modes. A generic 'what are your capabilities?' or 'list what's available' task could map to either.
cgm_quickstart cgm_onboarding medium Both are guided setup flows triggered by 'how do I get started'. Quickstart is the 3-step CGM connection walkthrough, while onboarding is the 11-question profile flow; a user asking 'get me started / set this up' gives no signal about which flow they mean.
cgm_quickstart cgm_demo low A task like 'show me how this works before I connect anything' could pull the demo payloads instead of the quickstart walkthrough, though each has fairly distinct intent (illustrate output vs steps to go live).
cgm_authorize_url cgm_libre_login low Both handle CGM authentication for different providers (Dexcom OAuth URL vs LibreLink Up login). A task phrased as 'log me into my CGM / authorize my connection' without naming the provider could pick the wrong one since neither description names the other provider.

Compare the field

One score is useful.
The evidence makes it actionable.

Back to the leaderboard