FreeStyle Libre (LibreLinkUp)

io.github.osjayaprakashPublished by GitHub account osjayaprakashv0.1.1Updated Oct 24, 2026

Read-only FreeStyle Libre CGM glucose readings, graphs and logbook via LibreLinkUp

VerifiedSTDIODesktop onlyLocation & LifestyleData & Analytics

Overview

AI-generated overview

Read-only MCP server that lets an assistant fetch FreeStyle Libre CGM glucose readings, graphs and logbook data through a LibreLinkUp follower account.

What you can do
  • List the people the LibreLinkUp account follows
  • Get the latest glucose reading with trend arrow and reading age
  • Get roughly the last 12 hours of readings as a graph series
  • Get logged events from about the last 2 weeks as a logbook
  • Readings include value in the account's unit, mg/dL value, unit, local and UTC timestamps, and high/low flags
When to use it
Useful when you want an assistant to look up your own or a followed person's continuous glucose monitor data and summarize recent trends, current readings or logged events without opening the LibreLinkUp app.
Requirements
Runs locally over stdio via uvx, uv from a clone, or Docker. Needs a LibreLinkUp follower account (invited from the LibreLink app and accepted in LibreLinkUp) and the environment variables LIBRELINKUP_EMAIL and LIBRELINKUP_PASSWORD; LIBRELINKUP_REGION is optional and defaults to US. Network access to the LibreLinkUp API is required.
Before you install
The account password is passed as the LIBRELINKUP_PASSWORD environment variable, so keep it out of shared configs. Glucose readings and patient names are health data; optional Langfuse tracing sends only tool names, timings, patient UUIDs and error classes by default, but setting LANGFUSE_CAPTURE_DATA=true sends readings and names to the configured Langfuse instance. Access is read-only.

Installation

In SourceWeft

  1. Open FreeStyle Libre (LibreLinkUp) in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.

Other MCP clients

Follow the launch instructions in the repository.

README

freestyle-libre-mcp

[CI] [PyPI] [Python] [Docker] [License: MIT]

An MCP server that gives Claude (or any MCP client) read-only access to FreeStyle Libre CGM glucose readings shared through LibreLinkUp. It talks to the LibreLinkUp API with its own small async client (librelinkup_mcp.core); the API behaviour it relies on follows pylibrelinkup.

Tools

ToolReturns
list_patientsPeople the LibreLinkUp account follows
get_current_glucoseLatest reading with trend arrow
get_glucose_graphReadings from about the last 12 hours, oldest first
get_glucose_logbookLogged events from about the last 2 weeks, oldest first

Every reading tool takes an optional patient: a name ("Ann Lee", "ann") or a patient_id from list_patients. It can be omitted when the account follows one person.

Readings include value in the account's unit, value_mg_dl, unit, timestamp (the sensor's local time), timestamp_utc, and is_high/is_low flags. The current reading also has age_minutes, since LibreLinkUp returns the last known value when the sensor or phone is out of range.

Setup

For a step-by-step guide, including account setup and troubleshooting, see the installation guide. Full documentation is at https://freestyle-libre-mcp.readthedocs.io.

You need a LibreLinkUp follower account: invite it from the LibreLink app, accept the invite in the LibreLinkUp app, and accept any terms there before using this server.

bash
git clone https://github.com/osjayaprakash/freestyle-libre-mcp.git && cd freestyle-libre-mcpuv sync
VariableRequiredDefaultMeaning
LIBRELINKUP_EMAILyesFollower account email
LIBRELINKUP_PASSWORDyesFollower account password
LIBRELINKUP_REGIONnoUSOne of US, EU, EU2, AE, AP, AU, CA, DE, FR, JP, LA, RU

If the region is wrong, the first tool call tells you which one to set.

Run from PyPI

No clone needed; uv fetches and runs the published package:

bash
uvx freestyle-libre-mcp

In a client config, use "command": "uvx", "args": ["freestyle-libre-mcp"].

Run with Docker

The server speaks MCP over stdio, so keep -i:

bash
docker run -i --rm \  -e LIBRELINKUP_EMAIL -e LIBRELINKUP_PASSWORD -e LIBRELINKUP_REGION \  ghcr.io/osjayaprakash/freestyle-libre-mcp:latest

In a client config, use "command": "docker" with those arguments, and pass the variables through the client's env block.

Claude Desktop

Add to claude_desktop_config.json:

json
{  "mcpServers": {    "librelinkup": {      "command": "uv",      "args": ["--directory", "/absolute/path/to/freestyle-libre-mcp", "run", "freestyle-libre-mcp"],      "env": {        "LIBRELINKUP_EMAIL": "[email protected]",        "LIBRELINKUP_PASSWORD": "your-password",        "LIBRELINKUP_REGION": "US"      }    }  }}

Claude Code

bash
claude mcp add librelinkup \  -e [email protected] \  -e LIBRELINKUP_PASSWORD=your-password \  -e LIBRELINKUP_REGION=US \  -- uv --directory /absolute/path/to/freestyle-libre-mcp run freestyle-libre-mcp

Langfuse tracing (optional)

Each tool call becomes a Langfuse trace, with a child span for the LibreLinkUp API call. Install the extra and set the keys:

bash
uv sync --extra langfuse

In the server command, use run --extra langfuse freestyle-libre-mcp instead of run freestyle-libre-mcp.

VariableMeaning
LANGFUSE_PUBLIC_KEY, LANGFUSE_SECRET_KEYTracing is on only when both are set
LANGFUSE_BASE_URLLangfuse URL for self-hosted or regional instances (default: Langfuse Cloud)
LANGFUSE_CAPTURE_DATAtrue to include tool inputs, outputs and error messages. Default false

Privacy: glucose readings and patient names are health data. By default, traces hold only tool names, timings, patient UUIDs, and error class names. Setting LANGFUSE_CAPTURE_DATA=true sends readings and names to your Langfuse instance; only do that with an instance you trust, such as a self-hosted one.

Development

bash
uv syncuv run pytest            # offline suiteuv run pytest -m live    # hits the real API; needs LIBRELINKUP_EMAIL/PASSWORDuv run ruff check src tests && uv run ruff format --check src tests

License

MIT

Source: README.md at commit 2cd1f5e

Tools

0
SourceWeft has not started this package in its sandbox yet, so its tools are not known.

Version history

1
  1. v0.1.1LatestSep 27, 2026

Score

50% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 days25 pts

    Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.

  • Auth declared10 pts

    Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.

  • Tools listed15 pts

    Answer tools/list without a credential, or ship a package that starts in a sandbox without one.

  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts