Freestyle Libre MCP Server
An MCP (Model Context Protocol) server that gives Claude access to Abbott Freestyle Libre CGM (continuous glucose monitor) data.
Supported providers
| Provider | Auth | Cost | Notes | |---|---|---|---| | libreview (default) | Email + password | Free | Unofficial LibreView/LibreLinkUp API | | terra | API key | Paid | Terra API (tryterra.co) | | thryve | API key + OAuth token | Paid | Thryve health platform |
Quick start (LibreView — recommended)
The LibreLinkUp API is designed for follower/carer accounts — accounts that have been invited to view a patient's glucose data. You'll need two LibreView accounts:
- Your patient account (the one linked to your sensor)
- A follower account (a second account you invite via the LibreLinkUp app)
Use the follower account's credentials in the MCP config.
1. Install
npm install
npm run build
2. Configure Claude Desktop
Edit your Claude Desktop config file, using the full path to your Node.js binary (Node 18+ required). The config location depends on your OS:
| OS | Path | |---|---| | macOS | ~/Library/Application Support/Claude/claude_desktop_config.json | | Windows | %APPDATA%\Claude\claude_desktop_config.json | | Linux | ~/.config/Claude/claude_desktop_config.json |
{
"mcpServers": {
"freestyle-libre": {
"command": "/path/to/node",
"args": ["/absolute/path/to/freestyle-libre/dist/index.js"],
"env": {
"LIBRE_PROVIDER": "libreview",
"LIBRE_REGION": "EU",
"LIBRE_EMAIL": "your-follower@email.com",
"LIBRE_PASSWORD": "yourpassword"
}
}
}
}
Replace the paths and credentials accordingly. The server auto-detects regional API endpoints (e.g. eu2) at login, so LIBRE_REGION just needs to be the base region for your account:
| Region | Value | |---|---| | Europe | EU (default) | | United States | US | | Australia | AU | | Asia-Pacific | AP | | Japan | JP | | Germany | DE | | Global | global |
3. Restart Claude Desktop
The server authenticates automatically on startup — no login step needed in the chat.
---
Available tools
| Tool | Description | |---|---| | get_connections | List patient connections on the account | | get_current_glucose | Fetch the latest glucose reading | | get_glucose_history | Fetch historical readings (1–24 hours) | | get_glucose_summary | 24-hour summary: TIR, avg, min/max, std dev |
Example prompts
- "What's my current glucose level?"
- "Show me my glucose history for the past 6 hours"
- "Give me a summary of my glucose control today"
- "Was I in range more than 70% of the time yesterday?"
---
Terra API setup
- Sign up at tryterra.co and create an application
- Connect a LibreView account via the Terra Connect widget to get a
user_id - Configure Claude Desktop:
{
"mcpServers": {
"freestyle-libre": {
"command": "/path/to/node",
"args": ["/absolute/path/to/freestyle-libre/dist/index.js"],
"env": {
"LIBRE_PROVIDER": "terra",
"TERRA_API_KEY": "your-api-key",
"TERRA_DEV_ID": "your-dev-id"
}
}
}
}
---
Thryve API setup
- Contact thryve.health for API access
- Direct users through Thryve's OAuth flow to connect their LibreView account
- Configure Claude Desktop:
{
"mcpServers": {
"freestyle-libre": {
"command": "/path/to/node",
"args": ["/absolute/path/to/freestyle-libre/dist/index.js"],
"env": {
"LIBRE_PROVIDER": "thryve",
"THRYVE_API_KEY": "your-api-key",
"THRYVE_API_SECRET": "your-api-secret",
"THRYVE_ACCESS_TOKEN": "user-oauth-access-token"
}
}
}
}
---
Development
npm run dev # watch mode — recompiles on save
npm run build # one-off compile
npm start # run the compiled server
The server communicates over stdio, which is the standard transport for local MCP servers used by Claude Desktop.
---
Disclaimer
The libreview provider uses a community-documented, reverse-engineered API that powers Abbott's LibreLinkUp app. It is not an official Abbott API and may change without notice. Use it responsibly and in accordance with Abbott's terms of service.











