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: T1D Manager
工具
当前状态
工具 | 返回内容 |
| 最新读数、趋势方向以及数据的新旧程度 |
| 过去 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 installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- FlicenseAqualityDmaintenanceEnables AI assistants to query glucose data from health storage APIs, providing natural language access to glucose readings, trends, and statistics for diabetes management and health monitoring.3
- 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 gradedqualityCmaintenanceConnects AI assistants to Nightscout for real-time glucose monitoring, analysis, and treatment logging, enabling natural language interaction with CGM data.4MIT
- AlicenseBqualityDmaintenanceEnables AI assistants to access and analyze Continuous Glucose Monitor (CGM) data from Nightscout, providing real-time readings, history, and analytics.71MIT
Related MCP Connectors
Glucose readings from your LibreLink Up sensor: graph, logbook, stats and summaries (read-only). Sec
GibsonAI MCP server: manage your databases with natural language
Ask your app anything — revenue, errors, read-cost, growth — and get rendered charts back.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/oliver-virt/nightscout-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server