Skip to main content
Glama
Freestyle Libre MCP Server

Freestyle Libre MCP Server

by jonnyhaynes

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

Related MCP server: Dexcom G7 MCP Server

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:

  1. Your patient account (the one linked to your sensor)

  2. 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

  1. Sign up at tryterra.co and create an application

  2. Connect a LibreView account via the Terra Connect widget to get a user_id

  3. 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

  1. Contact thryve.health for API access

  2. Direct users through Thryve's OAuth flow to connect their LibreView account

  3. 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.

Available Tools

4 tools
get_connectionsList Patient ConnectionsA

List all patient connections associated with the logged-in account. Returns patient IDs needed for glucose reading tools.

Inputs: no named parameters.

get_current_glucoseGet Current Glucose ReadingA

Fetch the latest blood glucose reading for a patient. Returns the glucose value in both mg/dL and mmol/L, plus trend direction.

Inputs: patient_id (required).

get_glucose_historyGet Glucose HistoryA

Fetch historical blood glucose readings for a patient. Returns a time-series of readings ordered oldest-first.

Inputs: hours, patient_id.

get_glucose_summaryGet Glucose SummaryA

Summarise glucose trends over the past 24 hours: time-in-range, average, highs, lows, and standard deviation.

Inputs: patient_id, low_threshold, high_threshold.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    A4.2/5.0

    Scored across 4 tools

    Disambiguation5/5

    Each tool has a clearly distinct purpose: get_connections lists patient IDs, get_current_glucose returns a single latest reading, get_glucose_history returns a time-series, and get_glucose_summary provides aggregate stats. There is no overlap between these tools, and their descriptions make the boundaries explicit.

    Naming Consistency5/5

    All tool names follow a consistent get_<resource> pattern: get_connections, get_current_glucose, get_glucose_history, get_glucose_summary. The verbs are uniform and the nouns are descriptive, making the naming predictable and easy to navigate.

    Tool Count5/5

    Four tools is well-scoped for a focused glucose monitoring server, covering the essential read operations without unnecessary bloat. Each tool earns its place, and the count is far below the threshold where confusion would arise.

    Completeness4/5

    The tool surface covers the core glucose data retrieval operations (list patients, current, history, summary) and meets the apparent purpose. A minor gap is the lack of patient metadata beyond IDs, which would require an additional tool to fully contextualize the data, but this does not severely hinder the primary workflow.

    Maintenance

    ActivityInactive
    ResponsivenessOutdated data

    Related MCP Connectors

    Related MCP Servers