Dexcom Share MCP Server
Dexcom Share MCP Server (Node.js)
A Model Context Protocol (MCP) server that provides access to your Dexcom Continuous Glucose Monitor (CGM) data via the unofficial Dexcom Share API. This server exposes your real-time glucose readings to any MCP-compatible AI assistant or application.
This uses theunofficial Share API designed for real-time monitoring, not the official Dexcom API. Data is limited to the last 24 hours only.
Features
Get Latest Reading: Retrieve the most recent glucose value and trend
Get Recent Readings: Fetch glucose values from the last few hours (up to 24 hours maximum)
Direct Authentication: Uses Dexcom Share credentials (no OAuth setup required)
Universal MCP Compatibility: Works with any MCP client (Claude Desktop, IDEs, custom applications)
Real-Time Focused: Perfect for "What's my glucose now?" queries, not historical analysis
Related MCP server: Dexcom G7 MCP Server
🚀 Getting Started
Prerequisites
Node.js: Download and install the "LTS" version from nodejs.org
Dexcom Account: Valid username and password (same as Dexcom mobile app)
Data Sharing Enabled: "Share" feature must be ON in your Dexcom mobile app (Settings > Share)
Installation
Download this project as a ZIP file or clone it with Git
Extract to a folder (e.g.,
Documents/dexcom-share-mcp-node)Install dependencies and build:
🍎 macOS
cd /path/to/dexcom-share-mcp-node
npm install && npm run build🪟 Windows
cd C:\path\to\dexcom-share-mcp-node
npm install && npm run buildVerify Connection
Test your credentials before configuring a client:
npm run test-connection🔌 MCP Client Configuration
This server communicates over stdio and can be used with any MCP-compatible client. Below is an example for Claude Desktop, but the same pattern applies to other clients.
Example: Claude Desktop
🍎 macOS Configuration
Open Claude Desktop >
Claudemenu >Settings...>Developer>Edit ConfigAdd this to
claude_desktop_config.json:
{
"mcpServers": {
"dexcom": {
"command": "node",
"args": ["/Users/YOUR_NAME/Documents/dexcom-share-mcp-node/build/index.js"],
"env": {
"DEXCOM_USERNAME": "your_username",
"DEXCOM_PASSWORD": "your_password",
"DEXCOM_REGION": "us"
}
}
}
}Tip: Drag the build/index.js file into Terminal to get its full path.
🪟 Windows Configuration
Open Claude Desktop >
File>Settings>Developer>Edit Config
(Config file:%APPDATA%\Claude\claude_desktop_config.json)Add this configuration (use double backslashes
\\):
{
"mcpServers": {
"dexcom": {
"command": "node",
"args": ["C:\\Users\\YOUR_NAME\\Documents\\dexcom-share-mcp-node\\build\\index.js"],
"env": {
"DEXCOM_USERNAME": "your_username",
"DEXCOM_PASSWORD": "your_password",
"DEXCOM_REGION": "us"
}
}
}
}Region Note: Change DEXCOM_REGION to "ous" if you're outside the US.
Restart Claude Desktop. You should see a 🔌 icon indicating the server is connected.
🛠️ Available Tools
The server exposes the following MCP tools:
get_glucose_readings
Fetch recent glucose values within the last 24 hours. The Share API calculates lookback time from the current moment, not arbitrary historical ranges.
Parameters:
startDate(string): ISO 8601 format (e.g.,"2024-01-15T10:00:00Z"). Must be within the last 24 hours.endDate(string): ISO 8601 format. Must be within the last 24 hours.
Example: To get readings from 3 hours ago to now, you'd calculate startDate as 3 hours before the current time.
get_latest_reading
Get the most recent glucose reading (typically within the last 5-15 minutes).
Parameters: None
📝 Usage Examples (Claude Desktop)
Once connected, you can ask:
✅ "What is my current glucose level?"
✅ "Show me my glucose readings from the last 3 hours"
✅ "Was my blood sugar high this morning?" (if within 24 hours)
❌ "Show me my readings from last week" (not supported - exceeds 24-hour limit)
⚠️ Important Limitations
Unofficial API: This uses the Share API, which is designed for real-time monitoring, not the official Dexcom Web API
24-Hour Maximum: Can only retrieve data from the last 24 hours. Historical data beyond this is not accessible.
No Long-Term Trends: For multi-day analysis or reports, you'll need the official Dexcom API (requires OAuth setup)
Dexcom Share Required: Must be enabled in the Dexcom mobile app (even with 0 followers)
Recent Data Only: Readings are typically available within 5-15 minutes of device transmission
Credentials: Use the same username/password as your Dexcom app or Clarity account
🔒 Data Privacy
Your credentials are stored locally on your computer (in the MCP client config file or .env). This server communicates directly with Dexcom's API and does not send data to any third party.
📄 License
MIT
Available Tools
2 toolsget_glucose_readingsA
Get recent glucose values within the last 24 hours. IMPORTANT: This uses the unofficial Share API which only provides real-time monitoring data. Both startDate and endDate MUST be within the last 24 hours from the current time. Cannot retrieve historical data beyond 24 hours.
| Name | Required | Description | Default |
|---|---|---|---|
| endDate | Yes | End date in ISO 8601 format (e.g. 2023-10-27T11:00:00Z). Must be within the last 24 hours from now. | |
| startDate | Yes | Start date in ISO 8601 format (e.g. 2023-10-27T10:00:00Z). Must be within the last 24 hours from now. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It clearly states the tool uses an 'unofficial Share API' and only provides 'real-time monitoring data', which is valuable context about limitations. However, it does not mention potential errors or rate limits, but the critical constraint is well covered.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and front-loaded with the purpose, followed by the key constraint and limitation. Every sentence adds value without waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (2 parameters, no output schema, no nested objects), the description is sufficient to guide correct usage and set expectations. It could mention return format but that is not critical for a simple data retrieval. The limitation is well articulated.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already provides descriptions for both parameters with ISO format examples and the 24-hour constraint. The description reinforces this but adds minimal new meaning beyond that. With 100% schema coverage, a baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the tool retrieves 'recent glucose values within the last 24 hours', which is a specific verb+resource+time scope. It clearly distinguishes from the sibling 'get_latest_reading' by emphasizing the time range and use of the Share API.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly warns that both startDate and endDate must be within the last 24 hours, and that the tool cannot retrieve historical data beyond that window. This provides clear when-to-use guidance and implicitly differentiates from the sibling for the latest reading.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_latest_readingA
Get the most recent glucose reading (typically from the last 5-15 minutes). This is the fastest way to check current glucose levels.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behavioral traits. It explains the typical recency (5-15 minutes) and speed (fastest way), setting clear expectations for staleness and performance. It does not mention any destructive side effects or authentication needs, but given it is a zero-parameter, read-only tool, this is adequate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely short at two sentences, each serving a distinct purpose: stating the core function and adding a usage tip. No words are wasted, and the key information is front-loaded in the first sentence. This is ideal for efficient agent parsing.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has zero parameters, no output schema, and no annotations, the description is sufficiently complete for its complexity. It tells the user what to expect (most recent reading, speed) and implies the output is a single value. The only minor gap is not describing the return format (e.g., whether it includes timestamp or units), but for a tool with no output schema, the description cannot be expected to cover that.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has no parameters and schema description coverage is 100%, so there are no parameters to describe. The baseline expectation is 4, and the description adds no unnecessary parameter explanations. It correctly focuses on the tool's behavior rather than elaborating on a non-existent schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Get') and a specific resource ('most recent glucose reading'), and further clarifies it is the 'fastest way to check current glucose levels'. It clearly distinguishes the tool from its sibling 'get_glucose_readings' by implying it returns a single, latest reading rather than a list.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description states this is the 'fastest way to check current glucose levels', which implies it should be used when a quick, current snapshot is needed. It does not explicitly say when not to use it, but the distinction from the sibling tool (which likely returns multiple readings) is clear enough to guide selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
2 tool updates
v1.0.0- First observed
get_glucose_readings - First observed
get_latest_reading
TDQS
The two tools have clearly distinct purposes: one returns a set of recent readings over a time window, while the other returns only the single most recent reading. There is no ambiguity about which to use for a given scenario.
Both tool names use a consistent 'get_adjective_noun' pattern (get_glucose_readings and get_latest_reading), making the naming predictable and easy to understand.
With only two tools, the surface feels thin for a glucose monitoring server, but it covers the essential use cases of retrieving current and recent data. The count is reasonable for a focused utility, though it leaves little room for additional functionality.
The server covers the primary use case of retrieving real-time glucose data. However, it lacks tools for historical retrieval (beyond 24 hours), setting alerts, managing device status, or user authentication, which are common interactions for a Dexcom integration.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
MCP server for Withings health data — sleep, activity, heart, and body metrics.
Hosted MCP server for the Healthie EHR & telehealth API: patients, appointments, charting, tasks.
Collect Apple Health data from your wearables through the Context app and query it via MCP
Private health and fitness analytics through a secure remote MCP connection.
1
Related MCP Servers
- FlicenseNot gradedqualityNot gradedmaintenanceEnables querying Dexcom Stelo glucose data by importing Clarity CSV exports into SQLite and providing MCP endpoints for glucose readings, statistics, and time-in-range analysis.-
- FlicenseNot gradedqualityDmaintenanceProvides access to Dexcom G7 continuous glucose monitor data, enabling AI assistants to retrieve current glucose readings and historical data.12-
- AlicenseNot gradedqualityCmaintenanceA Model Context Protocol (MCP) server that connects Claude to your personal Dexcom CGM (Continuous Glucose Monitor) for assistive diabetes management intelligence.MIT
- FlicenseNot gradedqualityDmaintenanceEnables reading real-time continuous glucose monitor data from Dexcom sensors via the Share API, allowing Claude to access glucose levels, trends, and statistics.-
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/jeremyclee/dexcom-share-mcp-node'
If you have feedback or need assistance with the MCP directory API, please join our Discord server