Skip to main content
Glama
IshaanRSharma

mcp-server-dexcom-health

README.md
# mcp-server-dexcom-health

MCP server for Dexcom CGM glucose data. Enables AI agents to access and analyze continuous glucose monitor data for health intelligence applications.

## Features

- **Real-time glucose monitoring** - Current readings with trend analysis
- **Historical data access** - Up to 24 hours of glucose history
- **Time window queries** - Query specific time ranges (e.g., "4-3 hours ago")
- **Clinical analytics** - Time-in-range, GMI, CV%, AGP reports
- **Episode detection** - Automatic hypo/hyper event identification with detailed context
- **Time-block analysis** - Identify patterns by time of day
- **Persistence layer support** - Pass external data for long-term analysis

## Tools

| Tool | Description |
|------|-------------|
| `get_current_glucose` | Current glucose reading with trend |
| `get_glucose_readings` | Historical readings with optional time windows |
| `get_statistics` | TIR, CV%, GMI, and other metrics |
| `get_status_summary` | Complete "how am I doing?" summary |
| `detect_episodes` | Find hypo/hyper episodes |
| `get_episode_details` | Deep analysis of each episode |
| `analyze_time_blocks` | Patterns by time of day |
| `check_alerts` | Real-time threshold alerts |
| `export_data` | Export for external storage |
| `get_agp_report` | Clinical AGP report |

## Installation
```bash
# Using uvx (recommended)
uvx mcp-server-dexcom-health

# Using pip
pip install mcp-server-dexcom-health
```

## Configuration

Set environment variables:

| Variable | Required | Description |
|----------|----------|-------------|
| `DEXCOM_USERNAME` | Yes | Dexcom username, email, or phone (+1234567890) |
| `DEXCOM_PASSWORD` | Yes | Dexcom password |
| `DEXCOM_REGION` | No | `us` (default), `ous` (outside US), or `jp` (Japan) |

### Claude Desktop

Add to your `claude_desktop_config.json`:
```json
{
  "mcpServers": {
    "dexcom": {
      "command": "uvx",
      "args": ["mcp-server-dexcom-health"],
      "env": {
        "DEXCOM_USERNAME": "your_username",
        "DEXCOM_PASSWORD": "your_password",
        "DEXCOM_REGION": "us"
      }
    }
  }
}
```

## Usage Examples

### Basic usage with Claude

> "What's my current glucose?"

> "How was my overnight control?"

> "Did I have any lows today?"

> "Give me my statistics for the last 12 hours"

> "What about the hour before that?" (follow-up queries work!)

### Time Window Queries

Query specific time ranges using `start_minutes` and `end_minutes`:

```python
# Last 3 hours (standard)
get_glucose_readings(minutes=180)

# Specific window: 4 hours ago to 3 hours ago
get_glucose_readings(start_minutes=240, end_minutes=180)

# Stats for 6-5 hours ago
get_statistics(start_minutes=360, end_minutes=300)

# Episodes between 8-4 hours ago
detect_episodes(start_minutes=480, end_minutes=240)
```

**Supported tools:** `get_glucose_readings`, `get_statistics`, `detect_episodes`, `export_data`

### Persistence Layer Integration

Tools that analyze data accept an optional `data` parameter for external data sources:
```python
# Pass your own historical data
result = get_statistics(
    data=[
        {"glucose_mg_dl": 120, "timestamp": "2024-01-15T08:00:00Z"},
        {"glucose_mg_dl": 135, "timestamp": "2024-01-15T08:05:00Z"},
        # ... more readings
    ]
)
```

This enables building long-term analytics by storing data externally and passing it back for analysis.

## Requirements

- Python 3.10+
- Active Dexcom Share session (requires Dexcom mobile app with Share enabled)
- At least one follower configured in Dexcom Share

## License

MIT

TDQS

A4.1/5.0

Scored across 10 tools

Disambiguation4/5

Most tools target distinct functions (current, history, stats, summary, episodes, details, time analysis, alerts, export, AGP). However, get_status_summary overlaps with get_statistics and get_current_glucose, and get_episode_details overlaps with detect_episodes, though descriptions clarify the different purposes.

Naming Consistency5/5

All tool names follow a consistent verb_noun snake_case pattern (e.g., get_current_glucose, detect_episodes, analyze_time_blocks, check_alerts, export_data). No mixed conventions or vague verbs.

Tool Count5/5

10 tools is well-scoped for a CGM health analytics server. Each tool serves a distinct analytical or data-access purpose, and the count fits the typical 3-15 range comfortably.

Completeness4/5

The server covers current readings, historical data, statistics, summaries, episode detection/details, time-of-day analysis, alert checks, data export, and AGP reports. Minor gaps exist such as no tool for managing alert thresholds or user preferences, but for a read-only glucose analyzer, the coverage is strong.

Maintenance

ActivityInactive
ResponsivenessNo issues