
Wellness Cgm Mcp
io.github.davidmosiah由 GitHub 账号 davidmosiah 发布v0.4.0更新于 Oct 24, 2026
Local-first CGM MCP for AI agents: Dexcom Developer API + FreeStyle Libre via LibreLink Up.
概览
本地 MCP 服务器,让 AI 助手读取 Dexcom 或 FreeStyle Libre 的连续血糖监测数据,未配置时可返回模拟数据
- 可以做什么
- 读取最新血糖值与趋势,并获取指定小时数内的全部读数,同时报告实际覆盖的时间范围。计算每日汇总,包括均值、GMI、CV 和两套目标范围内时间配置,并检测低血糖事件。分析餐后反应,从基线到峰值再到回落,并给出质量分级。查看连接状态、能力、指标清单和隐私审计,并生成 Dexcom OAuth 授权链接。检查 LibreLink Up 配置并登录以列出所关注的传感器。管理本地个人资料和引导辅助工具。
- 适用场景
- 适合佩戴 Dexcom 或 FreeStyle Libre 传感器、希望助手总结血糖趋势、标记血糖尖峰和低血糖,或把饮食与血糖反应关联起来的用户。模拟模式可在接入真实传感器前先试用整套流程。
- 运行要求
- 通过 npx 以 stdio 在本地运行,也可选用仅限本机回环的 HTTP 端点,由 WELLNESS_CGM_HOST、WELLNESS_CGM_PORT 和 WELLNESS_CGM_TRANSPORT 配置。Dexcom 实时数据需要开发者账号以及 DEXCOM_CLIENT_ID、DEXCOM_CLIENT_SECRET、DEXCOM_REDIRECT_URI 和 DEXCOM_ACCESS_TOKEN。Libre 实时数据需要 LIBRELINKUP_EMAIL 和 LIBRELINKUP_PASSWORD,可选 LIBRELINKUP_REGION 和 LIBRELINKUP_PATIENT_ID。无凭据时返回合成的模拟数据。
安装
在 SourceWeft 中
- 打开 控制台中的 Wellness Cgm Mcp,将其添加到工作区。
- 为需要使用其工具的对话启用该服务。
Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。
其他 MCP 客户端
参照 仓库 中的启动说明。
README
Wellness CGM MCP
Local-first continuous glucose monitor MCP for AI agents.
Dexcom Developer API. Levels-killer pattern, agent-first, $0.
[npm version] [npm downloads] [License MIT] [Site]
[GitHub stars] [Built for MCP] [Hermes] [OpenClaw]
🩸 Why this exists: Levels charges $199/mo to do exactly this — read your CGM, correlate with meals, flag spikes. wellness-cgm-mcp is the same game as a free local-first MCP. Stelo OTC + Dexcom developer API + your agent + wellness-nourish = the full metabolic loop.
⚡ One-command install — pick your runtime:
- Delx Wellness for Hermes:
npx -y delx-wellness-hermes setup- Delx Wellness for OpenClaw:
npx -y delx-wellness-openclaw setup
HTTP (v2 stateless)
Default is stdio. Optional Streamable HTTP — no session id, JSON responses, loopback only:
Env: WELLNESS_CGM_HOST, WELLNESS_CGM_PORT, WELLNESS_CGM_TRANSPORT=http.
Overview
Local MCP server that exposes CGM data (and synthetic mock data when nothing is configured) to any MCP-aware agent. Two real backends are supported: Dexcom (Developer API, sandbox + production) and FreeStyle Libre (the OTC sensor — Libre 2 / Libre 3) via LibreLink Up. Pick the backend with CGM_PROVIDER; it auto-detects Libre when only Libre credentials are set. Both feed the same ADA time-in-range / GMI / hypo / meal-response engine.
Try It In 60 Seconds (mock mode, zero setup)
The agent now has 10 CGM tools. Without a Dexcom token, every tool returns synthetic readings tagged mock: true — perfect for prototyping.
Live setup (Dexcom Developer)
Live setup (FreeStyle Libre — the OTC sensor)
No developer program, no app to build — just the same email/password you use in the LibreLinkUp follower app (the OTC Libre 2 / Libre 3 sensor works). In the LibreLink app, share your readings; in the LibreLinkUp app, accept the invite. Then:
Once logged in, every glucose tool (cgm_glucose_now, cgm_daily_summary, cgm_time_in_range, cgm_meal_response, cgm_hypo_events, …) reads from Libre and returns the same ADA TIR / GMI / hypo / meal-response metrics — each response carries a provider field so you always know the source. Without any credentials, everything returns synthetic mock: true data.
Libre history limit: ~12h per read
LibreLink Up's graph endpoint takes no start/end parameter — it always answers with its own fixed trailing window of roughly 12 hours. Asking for 24h or 72h does not widen it, so on Libre those extra hours simply do not exist.
Every windowed payload therefore reports what it actually covered:
Read hours_covered, never the requested hours / window_hours. A GMI (estimated A1C), CV or time-in-range built on 12h is not a 3-day result. For multi-day metrics use Dexcom, whose v3 API takes an explicit start/end and honours the request. Mock mode synthesises the full requested span, so it is never truncated.
The same applies to cgm_hypo_events, which takes an explicit from/to: "no hypoglycemia events" is only a claim about hours_covered. A 3-day question answered from a live Libre read is a 12-hour answer, and the payload says so in hours_covered, observed_window.hours, window_truncated_by_provider and notes. (events_per_day is safe either way — its denominator is the observed span, not the requested one — but the frame around it is not.)
window_truncated_by_provider is structural, not empirical
It answers "can this provider cover a span this wide?" — never "did this particular read come back short?". A sensor applied two hours ago answers cgm_daily_summary({ hours: 12 }) with hours_covered: 2, window_truncated_by_provider: false and an empty notes, because nothing is broken and warning there would be a false alarm. That is deliberate:
An empty
notesmeans "no known provider ceiling was hit", not "the window was fully covered".hours_coveredis the only number that states the real span — compare it againsthours_requestedbefore reporting any window.
Tools (19)
The table omits the shared profile/onboarding/quickstart/demo helpers (
cgm_profile_get,cgm_profile_update,cgm_onboarding,cgm_quickstart,cgm_demo) for brevity — callcgm_agent_manifestfor the full, always-current list.
Two Time-In-Range profiles in every summary
- Diabetic (70-180 mg/dL) — ADA standard for adults with diabetes.
- Metabolic health (70-140 mg/dL) — Levels-style for non-DM users.
Agents surface BOTH so the user picks the one that fits their context.
Meal response bands
Combine with wellness-nourish to compute "what did I eat → what happened" automatically.
The killer combo
Levels charges $199/mo for this. Here it is, free, local-first, MCP.
Privacy
- ✅ Credentials local only —
DEXCOM_ACCESS_TOKEN/LIBRELINKUP_*stay in env vars; the LibreLink Up auth token is never returned in tool output. - ✅ Mock mode by default — every tool returns synthetic data with
mock: trueuntil a provider is configured. - ✅ No third-party telemetry — outbound calls go only to your CGM provider (Dexcom or, for Libre, Abbott's LibreLink Up API).
Run wellness-cgm-mcp doctor to inspect.
Roadmap
- ✅ v0.4 — FreeStyle Libre via LibreLink Up (the OTC sensor). Shipped.
- next — Refresh-token rotation. Per-meal historical browser (which foods spike YOU?). Threshold alerts (agent notified when glucose holds > X mg/dL for Y minutes). Cross-meal automation with wellness-nourish.
What this is NOT
- Not medical advice or diagnosis.
- Not for insulin/medication dosing decisions — defer to clinician.
- Not affiliated with Dexcom or Abbott.
📧 Contact & Support
- 📨 [email protected] — general questions, integration help, partnerships
- 🐛 Bug reports / feature requests — GitHub Issues
- 🐦 Updates — @delx369 on X
- 🌐 Site — wellness.delx.ai
License
MIT — see LICENSE.
wellness-cgm-mcp is independent open-source software. Dexcom and FreeStyle Libre are trademarks of their respective owners. Neither company is affiliated with or endorses this project.
Skill or MCP
Same package, two doors. MCP registers tools on stdio/HTTP. The skill can drive the same tools through the CLI when the client has no MCP:
Copy skill/SKILL.md into your agent skills dir.
0.7.0 — candidate (2026-11-02)
This is a release candidate, not evidence of an npm publication. Existing installations are not updated automatically.
Migration and security boundaries
- HTTP transport accepts loopback only. LAN addresses and wildcard binds are rejected; use stdio or a local loopback client instead.
- Wellness profiles are validated, limited to 256 KiB, and protected with a cooperative lock. Oversized or invalid existing profiles must be corrected before use. Symbolic links, including dangling links and legacy profile paths, are rejected. These checks do not guarantee safety against a hostile local filesystem or non-cooperating processes.
- MCP inputs have a 10,000-element budget and HTTP bodies are limited to 1 MiB; compressed request bodies are rejected. Previously accepted oversized requests may now fail; reduce request sizes rather than disabling validation.
- Dependency fixes are included. Upgrade explicitly after publication and restart the connector; old installations retain their previous behavior.
来源:README.md,提交 c5065cd
工具
0版本历史
1- v0.4.0最新Sep 16, 2026
评分
已满足适用检查项的 50%
该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。
- 近 30 天内可连通25 分
请保持端点能够响应 MCP 握手;SourceWeft 每 30 天探测一次。
- 已声明认证方式10 分
请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。
- 已列出工具15 分
请让服务器在无凭据时响应 tools/list,或发布可在沙箱中无凭据启动的软件包。
- 描述必需15 分
- 图标10 分
- 文档15 分
- 许可证10 分