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组成:
# 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 | 德克瑟姆地区(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:00get_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 MCP设置中:
{
"servers": [
{
"name": "dexcom",
"httpEndpoint": "http://localhost:8007",
"capabilities": ["tools"],
"description": "Dexcom G7 glucose monitor"
}
]
}OpenWeb用户界面
使用自动生成的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编写文档.
依赖项
- pydexcom:用于Dexcom API访问
- 快速 API:HTTP服务器框架
- 优维康:ASGI服务器
- 主控程序:模型上下文协议支持
需求
- 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,股份有限公司或由其认可。使用本软件需要有效的Dexcom帐户凭据,并受Dexcom服务条款的约束。此工具仅供个人使用,不应替代适当的医疗监测和护理。
