nightscout-mcp
nightscout-mcp
一个只读的 MCP 服务器,将你的 Nightscout 数据暴露给 Claude。
问一句 “我的血糖在做什么?”、“这周我的目标范围内时间怎么样?”,或 “还有多少胰岛素在起效?”,就能从你自己的数据中得到答案。
不是医疗设备。 这只是对你已有数据的只读视图。不要据此做出治疗决定。 任何重要的事情都要与你的 CGM、胰岛素泵和临床医生确认。读数可能过期、缺失或 错误,LLM 也可能误读它们。
效果示例
你: 过去两周我夜间血糖一直在做什么?
Claude: (调用
glucose_patterns)你在凌晨时段持续偏低——不是偶尔一次,而是一种规律:
小时
中位数
低于 70 的百分比
01:00
112
4%
02:00
94
18%
03:00
77
31%
04:00
89
22%
05:00
108
9%
03:00 是你一天中最差的一个小时,而且差距很大——大约每三个晚上就有 一个晚上在 03:00 左右低于 70,到 05:00 又会自行回升。 这种形态值得拿给负责你基础率的人看。
你: 有什么我很快需要改的吗?
Claude: (调用
get_site_ages和get_device_status)传感器已经用了 9 天,所以大约一天后到期。软管已经用了 2 天。 泵的储液器显示 18 单位,泵电池电量 22%——这个我会选择今晚处理,而不是明天。
(说明性数字,不是任何人的真实数据。)
Related MCP server: MCP Nightscout
工具
当前状态
工具 | 返回内容 |
| 最新读数、趋势方向以及数据的新旧程度 |
| 过去 N 小时(默认 3 小时)的读数 |
| 活跃胰岛素和碳水化合物(Loop/AAPS) |
| 泵储液器和电池、上传器电池、循环健康状态 |
| 软管、传感器、胰岛素和泵电池的使用时间 |
长期趋势
工具 | 返回内容 |
| 低血糖 / 目标范围内 / 高血糖占比、平均值、GMI、CV%(默认 24 小时) |
| 按一天中的小时分组的血糖——你实际上何时会偏低或偏高 |
| 最近 N 天与之前 N 天的对比,含差异 |
| 追加剂量、碳水化合物和更换部位(默认 12 小时) |
参考
工具 | 返回内容 |
| 基础率、ISF、碳水化合物系数、目标值 |
| Nightscout 版本和已配置的阈值 |
glucose_patterns 是最值得了解的一个。“我的血糖是多少”这个问题,图表已经能回答;
“我在一天中的什么时间会可靠地偏低”则是图表回答不了的,而这正是模型擅长从两周的
读数中提取出来的那种信息。小时按你 Nightscout 配置文件自己的时区分桶,所以凌晨
3 点就是你的凌晨 3 点。
没有写入工具。该服务器无法更改 Nightscout 中的任何内容。
刻意不暴露
Nightscout 的追加剂量向导预览(bwp)会返回一个建议胰岛素剂量。把它暴露出来,
就会把这个服务器从展示你数据的东西,变成建议治疗的东西——无论对你还是对此类软件
的监管方式而言,这都完全是另一回事。任何计算校正量的功能同理。这里的每个工具都只是读取。
安全性
这会在公共互联网上提供个人健康数据,因此默认设置刻意严格:
必须提供 bearer token,没有它服务器会拒绝启动。 不存在“如果你忘了设置变量 就变成未认证”的模式——那正是部署时永远不会注意到的失败方式。
上游最小权限。 它使用可读访问令牌读取 Nightscout,绝不使用管理员
API_SECRET。即使此服务器被完全攻破,也无法写入你的 Nightscout。恒定时间令牌比较,因此无法通过响应时间来逐字符恢复 bearer。
错误信息已净化。 Nightscout 通过查询参数进行身份验证,因此令牌位于请求 URL 中;上游故障被重新抛出时只包含路径和状态,从而将凭据排除在日志和客户端可见的错误之外。
只信任你指定的代理转发的头信息,通过
TRUSTED_PROXY_IPS设置。未设置意味着 不信任任何人。在容器中以非 root 用户运行。
/health 是唯一无需认证的路由。它返回固定的 {"ok": true},不读取任何内容。
设置
1. 创建一个只读的 Nightscout 令牌
在 Nightscout 中:管理工具 → 主体 → 添加。只给它 readable 角色。你会得到一个
类似 claude-1a2b3c4d5e6f7890 的令牌。
不要使用你的 API_SECRET。这里没有任何写入操作,所以给它写权限不会带来任何好处,
而一旦令牌泄露,你会失去一切。
2. 配置
cp .env.example .env
# edit .env — at minimum NS_URL, NS_TOKEN, MCP_BEARER用你自己不会凭空想出来的东西生成 bearer:
python3 -c "import secrets; print(secrets.token_urlsafe(32))"3. 运行
docker build -t nightscout-mcp .
docker run -d --name nightscout-mcp --env-file .env -p 8787:8787 nightscout-mcp或者不使用 Docker:
pip install -r requirements.txt
set -a && source .env && set +a
python server.py4. 将其置于 HTTPS 之后
服务器使用纯 HTTP,并期望 TLS 在其前面终止(Traefik、Caddy、nginx、Cloudflare Tunnel——任何方式都可以)。Claude 从 Anthropic 的服务器连接,而不是从你的设备连接, 因此 URL 必须能从公共互联网访问。
如果你的代理设置了 X-Forwarded-*,请指定它:
TRUSTED_PROXY_IPS=172.18.0.0/165. 将其连接到 Claude
在 Claude 中:自定义 → 连接器 → 添加自定义连接器
URL:
https://your-host.example.com/mcp/打开请求头,添加
authorization,值为Bearer <your MCP_BEARER>
输入的值要包含 Bearer 这个词和空格——Claude 会原样发送该请求头,不会自行添加任何前缀。
请求头认证是 Claude 的测试版功能。如果你没有看到请求头部分,请向 Anthropic 申请访问权限。Claude Code 现在就可以通过自己的 MCP 配置使用同一个服务器。
单位
NS_UNITS=mg/dl(默认)或 mmol。这只会影响值的呈现方式;Nightscout 始终以 mg/dL
读取,并在输出时进行转换。
与 Nightscout 的关系
这是一个独立项目。它与 Nightscout Foundation 没有关联、未获其认可,也不属于其一部分。
Nightscout 本身(cgm-remote-monitor) 采用 AGPL-3.0 许可。此服务器不包含任何 Nightscout 代码,也不链接任何 Nightscout 库——它只是向运行中的实例的 REST API 发出 HTTP 请求。以保持距离的方式消费 API 不会 产生衍生作品,而且 AGPL 的网络条款以修改受保护程序为条件,而本服务器并未修改。因此, Nightscout 的 copyleft 不适用于此,本项目单独许可。
如果你 fork 本项目并将任何 Nightscout 源代码纳入其中,上述理由就不再适用于你的 fork。
许可证
MIT — 参见 LICENSE。
选择 MIT 是为了覆盖面:这是一个小型连接器,其价值在于任何人都能在十分钟内运行它。 在常见情况下,copyleft 保护不了任何人——常见情况就是一个人为自己的数据自行托管它。
This server cannot be deployed
Maintenance
Related MCP Connectors
- NightscoutOAuthai.b77
Your Nightscout glucose data, conversational.
Glucose readings from your LibreLink Up sensor: graph, logbook, stats and summaries (read-only). Sec
Ask your databases questions in plain English, run read-only SQL and set up data alerts.
Your own SLATE health data in your AI assistant: read, trend, plan and log. Never suggests a dose.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceEnables Type 1 diabetes patients and caregivers to monitor real-time blood glucose from Dexcom Share, calculate insulin doses, and receive empathetic AI-powered sick day care guidance through natural language interactions.1-
- AlicenseNot gradedqualityDmaintenanceConnects AI assistants to Nightscout for real-time glucose monitoring, analysis, and treatment logging, enabling natural language interaction with CGM data.7MIT
- AlicenseBqualityDmaintenanceEnables AI assistants to access and analyze Continuous Glucose Monitor (CGM) data from Nightscout, providing real-time readings, history, and analytics.71MIT
- FlicenseAqualityDmaintenanceBridges your Nightscout CGM data with AI assistants via the Model Context Protocol, enabling natural language queries about glucose readings, treatments, statistics, and pattern analysis.21-