mcpField
D
Dexcom G7 MCP Server

Dexcom G7 MCP Server

ローカル
github.com/phildoughertyヘルスケア1473 週間前に更新

Dexcom G7 MCP Server について

Dexcom G7 MCP Serverは、Dexcom G7の現在および過去の血糖値をAIアシスタントやMCPクライアントに提供します。HTTPインターフェースを通じて、mg/dLとmmol/Lの両方で値を返します。

主な機能

  1. 01最新の血糖値と傾向の取得
  2. 02指定期間の過去の測定値取得
  3. 03mg/dLとmmol/Lでの値提供
  4. 04HTTPおよびJSON-RPCインターフェース

活用シーン

  1. 01Dexcom 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 サーバー

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_USERNAMEDexcom アカウントのユーザー名-はい
DEXCOM_PASSWORDDexcom アカウントのパスワード-はい
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 仕様(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 の利用規約が適用されます。このツールは個人利用を目的としており、適切な医療モニタリングやケアの代替として使用しないでください。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。