freestyle-libre-mcp
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@freestyle-libre-mcpWhat's my current glucose reading?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
freestyle-libre-mcp
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
Tool | Returns |
| People the LibreLinkUp account follows |
| Latest reading with trend arrow |
| Readings from about the last 12 hours, oldest first |
| Logged 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.
Related MCP server: Dexcom G7 MCP Server
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.
git clone https://github.com/osjayaprakash/freestyle-libre-mcp.git && cd freestyle-libre-mcp
uv syncVariable | Required | Default | Meaning |
| yes | Follower account email | |
| yes | Follower account password | |
| no |
| One of |
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:
uvx freestyle-libre-mcpIn a client config, use "command": "uvx", "args": ["freestyle-libre-mcp"].
Run with Docker
The server speaks MCP over stdio, so keep -i:
docker run -i --rm \
-e LIBRELINKUP_EMAIL -e LIBRELINKUP_PASSWORD -e LIBRELINKUP_REGION \
ghcr.io/osjayaprakash/freestyle-libre-mcp:latestIn 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:
{
"mcpServers": {
"librelinkup": {
"command": "uv",
"args": ["--directory", "/absolute/path/to/freestyle-libre-mcp", "run", "freestyle-libre-mcp"],
"env": {
"LIBRELINKUP_EMAIL": "you@example.com",
"LIBRELINKUP_PASSWORD": "your-password",
"LIBRELINKUP_REGION": "US"
}
}
}
}Claude Code
claude mcp add librelinkup \
-e LIBRELINKUP_EMAIL=you@example.com \
-e LIBRELINKUP_PASSWORD=your-password \
-e LIBRELINKUP_REGION=US \
-- uv --directory /absolute/path/to/freestyle-libre-mcp run freestyle-libre-mcpLangfuse 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:
uv sync --extra langfuseIn the server command, use run --extra langfuse freestyle-libre-mcp instead of
run freestyle-libre-mcp.
Variable | Meaning |
| Tracing is on only when both are set |
| Langfuse URL for self-hosted or regional instances (default: Langfuse Cloud) |
|
|
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
uv sync
uv run pytest # offline suite
uv run pytest -m live # hits the real API; needs LIBRELINKUP_EMAIL/PASSWORD
uv run ruff check src tests && uv run ruff format --check src testsLicense
Related MCP Connectors
Glucose readings from your LibreLink Up sensor: graph, logbook, stats and summaries (read-only). Sec
Read wearables and lab health data — sleep, activity, workouts, timeseries, lab tests and orders.
- NightscoutOAuthai.b77
Your Nightscout glucose data, conversational.
Read patient-authorized EHR records: medications, labs, conditions, allergies. Consent-bounded.
Related MCP Servers
- AlicenseAqualityAmaintenanceEnables access to FreeStyle Libre glucose data through Claude Desktop, providing current readings, historical data, statistics, and trend analysis from LibreLinkUp accounts with secure credential storage.101MIT
- FlicenseNot gradedqualityDmaintenanceProvides access to Dexcom G7 continuous glucose monitor data, enabling AI assistants to retrieve current glucose readings and historical data.14-
- FlicenseAqualityDmaintenanceEnables Claude Desktop to securely access FreeStyle LibreLink continuous glucose monitoring data, providing real-time readings, historical analysis, and health insights through natural language queries.814-
- AlicenseNot gradedqualityDmaintenanceRead-only MCP server for accessing glucose readings, charts, logbook, and statistics from LibreLink Up sensors, supporting any MCP client.MIT