Dexcom G7 MCP Server について
Dexcom G7 MCP Serverは、Dexcom G7の現在および過去の血糖値をAIアシスタントやMCPクライアントに提供します。HTTPインターフェースを通じて、mg/dLとmmol/Lの両方で値を返します。
主な機能
- 01最新の血糖値と傾向の取得
- 02指定期間の過去の測定値取得
- 03mg/dLとmmol/Lでの値提供
- 04HTTPおよびJSON-RPCインターフェース
活用シーン
- 01Dexcom G7の現在値の確認
- 02直近数時間の血糖傾向の確認
- 03血糖値をMCPクライアントに連携
MCP 対応
HTTP/JSON-RPC経由で、MCPクライアントに`get_current_glucose`と`get_glucose_history`ツールを提供します。各ツールはDexcom G7の現在値または過去の測定値を返します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Dexcom G7 MCP サーバー
Dexcom G7 持続血糖モニターのデータにアクセスできる Model Context Protocol(MCP)サーバーです。このサーバーを使用すると、AI アシスタントやその他の MCP クライアントが、Dexcom G7 デバイスから現在の血糖値と過去のデータを取得できます。
特長
- 現在の血糖値:最新の血糖値とトレンド情報を取得します
- 過去のデータ:指定した期間の血糖値を取得します
- 2 種類の単位:mg/dL と mmol/L の両方で値を提供します
- HTTP トランスポート:統合が簡単なネイティブ HTTP/JSON-RPC インターフェース
- MCP 互換:Model Context Protocol に完全準拠
クイックスタート
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 仕様(mcp-compose プロキシを使用する場合は http://localhost:8007/openapi.json)を使用します。
アーキテクチャ
トランスポートプロトコル
このサーバーは、多くの MCP サーバーで使用されている従来の STDIO トランスポートではなく、HTTP トランスポートを使用します。これには次のような利点があります。
- 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 トランスポートの利点を維持しながら、HTTP ベースのサーバーを STDIO を必要とするオーケストレーターで利用できます。
socat によるホスティングとオーケストレーションの詳細については、mcp-compose のドキュメントを参照してください。
依存関係
- pydexcom:Dexcom API へのアクセスに使用
- FastAPI:HTTP サーバーフレームワーク
- uvicorn:ASGI サーバー
- mcp:Model Context Protocol のサポート
要件
- 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 サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。