返回市场
血糖监测G7 MCP服务器

血糖监测G7 MCP服务器

作者:phildougherty4 星标更新:2025-06-05

项目介绍

Dexcom G7 MCP Server

这是一个提供对Dexcom G7连续葡萄糖监测数据访问的Model Context Protocol (MCP)服务器。此服务器允许AI助手和其他MCP客户端从您的Dexcom G7设备中检索当前血糖读数和历史数据。

特性

  • 当前血糖读数:获取最新的血糖值及趋势信息
  • 历史数据:检索指定时间段内的血糖读数
  • 双单位制:以mg/dL和mmol/L两种单位提供数值
  • HTTP传输:原生HTTP/JSON-RPC接口,便于集成
  • MCP兼容:完全符合Model Context Protocol规范

快速开始

使用Docker

# 构建镜像
docker build -t dexcom-mcp .

# 使用您的凭证运行
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_REGIONDexcom区域(usousus
HTTP_PORTHTTP服务器端口8007

注意:对于非美国用户,请设置DEXCOM_REGION=ous(Outside US)。

可用工具

get_current_glucose

检索您Dexcom G7的最新血糖读数。

参数:无

示例响应

🩸 当前血糖:120 mg/dL (6.66 mmol/L)
📈 趋势:平稳
⏰ 时间:2024-01-15 14:30:00

get_glucose_history

检索指定时间段的历史血糖读数。

参数

  • hours(整数,可选):要检索的历史小时数(默认:6)

示例响应

📊 最近6小时的血糖读数:
1. 2024-01-15 14:30:00 - 120 mg/dL (6.66 mmol/L) [平稳]
2. 2024-01-15 14:25:00 - 118 mg/dL (6.55 mmol/L) [平稳]
3. 2024-01-15 14:20:00 - 115 mg/dL (6.39 mmol/L) [缓慢上升]
...

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血糖监测器"
    }
  ]
}

OpenWebUI

使用位于http://localhost:8007/openapi.json的自动生成OpenAPI规范(当使用mcp-compose代理时)。

架构

传输协议

此服务器使用HTTP传输而不是许多MCP服务器使用的传统STDIO传输。这提供了几个优势:

  • 直接的HTTP/JSON-RPC通信
  • 不需要stdio重定向或进程管理
  • 更好的错误处理和连接管理
  • 原生支持web客户端和代理

Socat集成(可选)

包含的entrypoint.sh提供了Socat集成,适用于期望STDIO传输的环境。当与MCP-Compose的Socat托管功能一起使用时,它可以在TCP套接字和服务器进程之间建立桥梁:

# 入口点包装服务器以实现STDIO兼容性
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:Model Context Protocol支持

要求

  • Python 3.11+
  • 有效的Dexcom账户凭证
  • 开启数据共享的活跃Dexcom G7设备

安全注意事项

  • 使用环境变量安全存储凭证
  • 考虑在生产部署中使用Docker密钥
  • 限制网络访问至可信客户端
  • 监控访问日志以防未经授权的使用

故障排除

常见问题

身份验证失败

  • 验证您的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的服务条款约束。此工具仅供个人使用,不应作为适当医疗监控和护理的替代品。