mcpField
D
Dexcom G7 MCP Server

Dexcom G7 MCP Server

本地服务
github.com/phildougherty健康医疗1473 周前更新

关于 Dexcom G7 MCP Server

Dexcom G7 MCP Server 为 AI 助手和其他 MCP 客户端提供 Dexcom G7 的当前及历史血糖读数,并通过 HTTP 接口同时返回 mg/dL 和 mmol/L 数值。

主要功能

  1. 01获取最新血糖读数和趋势
  2. 02按指定时段获取历史读数
  3. 03提供 mg/dL 和 mmol/L 数值
  4. 04HTTP 与 JSON-RPC 接口

适用场景

  1. 01查看 Dexcom G7 当前读数
  2. 02回顾近期数小时的血糖趋势
  3. 03将血糖读数接入 MCP 客户端

MCP 相关

它通过 HTTP/JSON-RPC 向 MCP 客户端提供 `get_current_glucose` 和 `get_glucose_history` 工具,分别返回 Dexcom G7 当前或历史读数。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"dexcom_g7_mcp_server": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"build"
]
}
}
}
启动命令docker run -i --rm build

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
ocibuild

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

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_REGIONDexcom 区域(us 或 ous)us否
HTTP_PORTHTTP 服务端口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 的服务条款。本工具仅供个人使用,不应替代适当的医疗监测和护理。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。