关于 Dexcom G7 MCP Server
Dexcom G7 MCP Server 为 AI 助手和其他 MCP 客户端提供 Dexcom G7 的当前及历史血糖读数,并通过 HTTP 接口同时返回 mg/dL 和 mmol/L 数值。
主要功能
- 01获取最新血糖读数和趋势
- 02按指定时段获取历史读数
- 03提供 mg/dL 和 mmol/L 数值
- 04HTTP 与 JSON-RPC 接口
适用场景
- 01查看 Dexcom G7 当前读数
- 02回顾近期数小时的血糖趋势
- 03将血糖读数接入 MCP 客户端
MCP 相关
它通过 HTTP/JSON-RPC 向 MCP 客户端提供 `get_current_glucose` 和 `get_glucose_history` 工具,分别返回 Dexcom G7 当前或历史读数。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
Dexcom G7 MCP 服务
一个模型上下文协议(MCP)服务,可访问 Dexcom G7 连续血糖监测仪的数据。此服务允许 AI 助手和其他 MCP 客户端从你的 Dexcom G7 设备获取当前血糖读数和历史数据。
功能
- 当前血糖读数:获取最新血糖值及趋势信息
- 历史数据:检索指定时间段内的血糖读数
- 双单位:同时提供 mg/dL 和 mmol/L 两种单位的数值
- HTTP 传输:原生 HTTP/JSON-RPC 接口,便于集成
- 兼容 MCP:完全符合模型上下文协议规范
快速开始
使用 Docker
# Build the image
docker build -t dexcom-mcp .
# Run with your credentials
docker run -p 8007:8007 \
-e DEXCOM_USERNAME="your-dexcom-username" \
-e DEXCOM_PASSWORD="your-dexcom-password" \
-e DEXCOM_REGION="us" \
dexcom-mcp
使用 MCP-Compose
如需与其他 MCP 服务一起进行编排部署,请使用 mcp-compose:
# mcp-compose.yaml
version: '1'
servers:
dexcom:
image: dexcom-mcp:local
runtime: docker
build:
context: .
dockerfile: Dockerfile
protocol: http
http_port: 8007
env:
HTTP_PORT: "8007"
DEXCOM_REGION: "us"
DEXCOM_USERNAME: "your-dexcom-username"
DEXCOM_PASSWORD: "your-dexcom-password"
capabilities: [tools]
networks: [mcp-net]
然后启动:
mcp-compose up dexcom
环境变量
| 变量 | 描述 | 默认值 | 必需 |
|---|---|---|---|
DEXCOM_USERNAME | 你的 Dexcom 账户用户名 | - | 是 |
DEXCOM_PASSWORD | 你的 Dexcom 账户密码 | - | 是 |
DEXCOM_REGION | Dexcom 区域(us 或 ous) | us | 否 |
HTTP_PORT | HTTP 服务端口 | 8007 | 否 |
注意:美国以外的用户请设置 DEXCOM_REGION=ous(美国以外地区)。
可用工具
get_current_glucose
获取 Dexcom G7 的最新血糖读数。
参数:无
响应示例:
🩸 Current Glucose: 120 mg/dL (6.66 mmol/L)
📈 Trend: Steady
⏰ Time: 2024-01-15 14:30:00
get_glucose_history
检索指定时间段内的历史血糖读数。
参数:
hours(整数,可选):要检索的历史数据小时数(默认值:6)
响应示例:
📊 Last 6h glucose readings:
1. 2024-01-15 14:30:00 - 120 mg/dL (6.66 mmol/L) [Steady]
2. 2024-01-15 14:25:00 - 118 mg/dL (6.55 mmol/L) [Steady]
3. 2024-01-15 14:20:00 - 115 mg/dL (6.39 mmol/L) [Slowly Rising]
...
API 用法
初始化连接
curl -X POST http://localhost:8007/ \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"id": 1,
"method": "initialize",
"params": {
"protocolVersion": "2024-11-05",
"capabilities": {},
"clientInfo": {"name": "test-client", "version": "1.0.0"}
}
}'
获取当前血糖
curl -X POST http://localhost:8007/ \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"id": 2,
"method": "tools/call",
"params": {
"name": "get_current_glucose",
"arguments": {}
}
}'
获取血糖历史
curl -X POST http://localhost:8007/ \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"id": 3,
"method": "tools/call",
"params": {
"name": "get_glucose_history",
"arguments": {"hours": 12}
}
}'
客户端集成
Claude Desktop
将以下内容添加到 Claude Desktop 的 MCP 设置中:
{
"servers": [
{
"name": "dexcom",
"httpEndpoint": "http://localhost:8007",
"capabilities": ["tools"],
"description": "Dexcom G7 glucose monitor"
}
]
}
OpenWebUI
使用自动生成的 OpenAPI 规范:http://localhost:8007/openapi.json(使用 mcp-compose 代理时)。
架构
传输协议
此服务使用 HTTP 传输,而不是许多 MCP 服务采用的传统 STDIO 传输。这样做有几个优势:
- 直接通过 HTTP/JSON-RPC 通信
- 无需进行 stdio 重定向或进程管理
- 错误处理和连接管理更完善
- 原生支持 Web 客户端和代理
Socat 集成(可选)
随附的 entrypoint.sh 可在需要 STDIO 传输的环境中提供 socat 集成。与 MCP-Compose 的 socat 托管功能搭配使用时,它会在 TCP 套接字和服务进程之间建立桥接:
# The entrypoint wraps the server for STDIO compatibility
socat TCP-LISTEN:12345,reuseaddr,bind=0.0.0.0 EXEC:"python server.py"
这样,基于 HTTP 的服务便可与需要 STDIO 的编排器配合使用,同时保留 HTTP 传输的优势。
有关 socat 托管和编排的更多信息,请参阅 mcp-compose 文档。
依赖项
- pydexcom:用于访问 Dexcom API
- FastAPI:HTTP 服务框架
- uvicorn:ASGI 服务
- mcp:模型上下文协议支持
要求
- Python 3.11+
- 有效的 Dexcom 账户凭据
- 已启用数据共享功能且处于活动状态的 Dexcom G7 设备
安全注意事项
- 使用环境变量安全存储凭据
- 考虑在生产部署中使用 Docker secrets
- 将网络访问限制为受信任的客户端
- 监控访问日志,排查未经授权的使用
故障排除
常见问题
身份验证失败
- 请确认 Dexcom 用户名和密码正确
- 请确保能够登录 Dexcom 移动应用
- 请检查 Dexcom 账户是否已启用数据共享
没有近期数据
- 请确认 G7 传感器处于活动状态且正在传输数据
- 请检查手机/接收器是否近期连接过 Dexcom 服务
- 请确认传感器尚未过期
连接超时
- Dexcom 服务偶尔会出现延迟
- 请稍等片刻后重试请求
- 请检查互联网连接
调试模式
设置日志级别以启用调试日志:
docker run -p 8007:8007 \
-e DEXCOM_USERNAME="your-username" \
-e DEXCOM_PASSWORD="your-password" \
-e PYTHONUNBUFFERED=1 \
dexcom-mcp
免责声明
本软件与 Dexcom, Inc. 无关联,也未获其认可。使用本软件需要有效的 Dexcom 账户凭据,并须遵守 Dexcom 的服务条款。本工具仅供个人使用,不应替代适当的医疗监测和护理。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。