mcp.ai LibreLink Up (CGM) MCP
Read-only access to LibreLink Up CGM sensor data, providing glucose readings, graphs, logbooks, stats, and summaries via a secure, consent-based connection without storing passwords.
Endpoint and access
No sign-in to connect and list tools. Individual tools may still need a vendor account, credentials, or permissions; check the documented prerequisites.
https://api.mcp.ai/p_librelinkWhat its tools do
16 tools, grouped by the hints the server advertises. Hints are self-declared, not verified behavior.
Read-only (13)
Can change data (3)
Checks and signals
Each line is separate evidence, not a trust score.
- Passed Endpoint answered the live check ·
- Availability 1 of 1 checks passed in 30 days
What you can do with it
- Check current glucose level and daily summary
- Display graph of the last 6 hours
- Calculate time in target for the last week
Source and maintenance
- Maintenance checked
Protocol and capabilities
- Server
- mcp-ai 0.9.410
- MCP protocol negotiated in check
- 2025-11-25
- Tools
- 16 advertised
- Resources
- Not advertised
- Resource templates
- Not advertised
- Prompts
- Not advertised
{
"tools": {
"listChanged": true
}
}Server-provided instructions
Untrusted server output shown for inspection. It is not Koskamo guidance and is excluded from knowledge search.
Tools
16 advertised
librelink_list_accounts
List patients linked to this install (id = patient_id, label, name). Read-only CGM data — not for medical decisions without clinician review.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"account": {
"type": "string"
}
}
}{
"title": "librelink_list_accounts",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}librelink_list_connections
List patients whose LibreLink Up readings are accessible to this install (alias of librelink_list_accounts; same data). Read-only CGM data — not for medical decisions without clinician review.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"account": {
"type": "string"
}
}
}{
"title": "librelink_list_connections",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}librelink_get_connection
Get a specific LibreLink Up connection by patient (returns target range, sensor info, latest glucose measurement envelope). Read-only CGM data — not for medical decisions without clinician review. Bulk support: accepts patient_ids for batched execution.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"account": {
"type": "string"
},
"patient_id": {
"type": "string",
"default": ""
},
"patient_ids": {
"type": "array",
"items": {
"type": "string",
"default": ""
}
}
}
}{
"title": "librelink_get_connection",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}librelink_get_current_glucose
Get the latest single glucose reading for a connection (value, trend, color, isHigh/isLow flags). Read-only CGM data — not for medical decisions without clinician review. Use librelink_get_glucose_graph for multi-point history or librelink_get_glucose_stats for time-in-range. Bulk support: accepts patient_ids for batched execution.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"account": {
"type": "string"
},
"patient_id": {
"type": "string",
"default": ""
},
"patient_ids": {
"type": "array",
"items": {
"type": "string",
"default": ""
}
}
}
}{
"title": "librelink_get_current_glucose",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}librelink_get_glucose_graph
Get the high-resolution ~12h glucose graph for a connection (raw graphData array of measurement points). Read-only CGM data — not for medical decisions without clinician review. For a single current reading use librelink_get_current_glucose; for stats use librelink_get_glucose_stats. Bulk support: accepts patient_ids for batched execution.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"account": {
"type": "string"
},
"patient_id": {
"type": "string",
"default": ""
},
"patient_ids": {
"type": "array",
"items": {
"type": "string",
"default": ""
}
}
}
}{
"title": "librelink_get_glucose_graph",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}librelink_get_glucose_logbook
Get the manual-scan logbook for a connection (~14 days of spot readings and notes). Read-only CGM data — not for medical decisions without clinician review. Not the continuous graph — use librelink_get_glucose_graph for minute-by-minute data. Bulk support: accepts patient_ids for batched execution.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"account": {
"type": "string"
},
"patient_id": {
"type": "string",
"default": ""
},
"patient_ids": {
"type": "array",
"items": {
"type": "string",
"default": ""
}
}
}
}{
"title": "librelink_get_glucose_logbook",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}librelink_get_glucose_stats
Compute time-in-range, average, min/max, and latest-point snapshot from the current graph window (~12h) for a connection. Defaults: target 70-180 mg/dL. Read-only CGM data — not for medical decisions without clinician review. Bulk support: accepts patient_ids for batched execution.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"account": {
"type": "string"
},
"patient_id": {
"type": "string",
"default": ""
},
"target_low": {
"type": "number",
"default": 70
},
"patient_ids": {
"type": "array",
"items": {
"type": "string",
"default": ""
}
},
"target_high": {
"type": "number",
"default": 180
}
}
}{
"title": "librelink_get_glucose_stats",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}librelink_get_latest_reading
Normalized latest reading: { mg_dl, trend_arrow, timestamp, minutes_ago, has_active_sensor }. Read-only CGM data — not for medical decisions without clinician review. Bulk support: accepts patient_ids for batched execution.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"account": {
"type": "string"
},
"patient_id": {
"type": "string",
"default": ""
},
"patient_ids": {
"type": "array",
"items": {
"type": "string",
"default": ""
}
}
}
}{
"title": "librelink_get_latest_reading",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}librelink_get_today_summary
Same shape as librelink_get_glucose_stats but filtered to "today" in a chosen IANA timezone, plus hypo_events_70 / hyper_events_180 counts. Read-only CGM data — not for medical decisions without clinician review. Bulk support: accepts patient_ids for batched execution.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"account": {
"type": "string"
},
"timezone": {
"type": "string",
"default": "UTC"
},
"patient_id": {
"type": "string",
"default": ""
},
"target_low": {
"type": "number",
"default": 70
},
"patient_ids": {
"type": "array",
"items": {
"type": "string",
"default": ""
}
},
"target_high": {
"type": "number",
"default": 180
}
}
}{
"title": "librelink_get_today_summary",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}librelink_get_last_hours
Last N hours of normalized points [{ ts, mg_dl, trend }] from the current graph window (max ~12h). Read-only CGM data — not for medical decisions without clinician review. Bulk support: accepts patient_ids for batched execution.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"hours": {
"type": "number",
"default": 6
},
"account": {
"type": "string"
},
"patient_id": {
"type": "string",
"default": ""
},
"patient_ids": {
"type": "array",
"items": {
"type": "string",
"default": ""
}
}
}
}{
"title": "librelink_get_last_hours",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}show_version
Show the current MCP platform and adapter versions.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {}
}{
"title": "Show Version",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}report_bug
Report a bug, missing feature, or send feedback. Include the conversation array with recent messages for reproduction.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"message"
],
"properties": {
"context": {
"type": "string",
"default": ""
},
"message": {
"type": "string"
},
"conversation": {
"type": "string",
"default": "[]"
}
}
}{
"title": "Report Bug",
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}connect
Returns connection status and URLs. When all providers are connected, returns authenticated:true and empty pending[]. When credentials are missing, returns connect_url for the toolkit and per-install URLs.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {}
}{
"title": "Connection Status",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}toolkit_info
Returns the current toolkit state: installed MCPs, their connection status, the accounts connected to each one, and how many catalog tools each exposes.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {}
}{
"title": "Toolkit Info",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}marketplace
The official mcp.ai marketplace — the in-platform catalog of every MCP/tool, AND the way to run them. Covers capability requests like "find an MCP that does X", "consulta um CPF", "is there a tool for Y". Core flow: action=search discovers MCPs by intent → describe returns one MCP's full profile (every tool with its id + params, pricing, auth) so you pick the right tool_id → invoke RUNS that tool. KEY: invoke works even when the MCP is NOT installed — it runs the tool pontualmente (one-off), without adding the MCP to the toolkit and without bloating the tool list. If the MCP needs a credential/login, invoke returns a connect link; if it is paid and the wallet is empty, invoke returns a checkout/top-up link (the user opens it, then you retry). Use install only to make an MCP PERMANENT in the active toolkit (its tools then show up natively in future sessions); prefer invoke for a single/occasional use. list_tools lists what is callable right now. subscribe/cancel handle per-MCP billing; report_bug sends feedback; request_mcp asks us to build a NEW MCP when nothing fits. Search/describe flag installed_in_toolkit vs installed_in_workspace. Writes (install/uninstall/subscribe/cancel and the one-off install behind invoke) require workspace owner/admin. It also carries the mcp.ai PROMPT LIBRARY, which is about ready-made prompt TEXT rather than MCPs: search_prompts finds one, get_prompt returns its full text with {{variables}} filled, and publish_prompt saves a prompt and returns a shareable mcp.ai/p/<slug> link that opens without login.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"limit": {
"type": "number",
"default": 10
},
"query": {
"type": "string",
"default": ""
},
"action": {
"enum": [
"search",
"describe",
"install",
"uninstall",
"subscribe",
"cancel",
"resume",
"report_bug",
"request_mcp",
"list_tools",
"invoke",
"search_prompts",
"get_prompt",
"publish_prompt"
],
"type": "string",
"default": "search"
},
"mcp_id": {
"type": "string",
"default": ""
},
"message": {
"type": "string",
"default": ""
},
"tool_id": {
"type": "string",
"default": ""
},
"arguments": {
"type": "string",
"default": "{}"
},
"immediate": {
"type": "boolean",
"default": false
},
"tier_slug": {
"type": "string",
"default": ""
},
"prompt_body": {
"type": "string",
"default": ""
},
"prompt_slug": {
"type": "string",
"default": ""
},
"prompt_tool": {
"type": "string",
"default": ""
},
"prompt_vars": {
"type": "string",
"default": "{}"
},
"conversation": {
"type": "string",
"default": "[]"
},
"prompt_title": {
"type": "string",
"default": ""
},
"request_name": {
"type": "string",
"default": ""
},
"cancel_reason": {
"enum": [
"too_expensive",
"missing_features",
"switched_service",
"unused",
"customer_service",
"too_complex",
"low_quality",
"other"
],
"type": "string"
},
"cancel_comment": {
"type": "string",
"default": ""
},
"prompt_targets": {
"type": "array",
"items": {
"enum": [
"claude",
"chatgpt",
"cursor",
"lovable"
],
"type": "string"
},
"default": []
},
"report_context": {
"type": "string",
"default": ""
},
"prompt_category": {
"type": "string",
"default": ""
},
"request_details": {
"type": "string",
"default": ""
},
"prompt_description": {
"type": "string",
"default": ""
}
}
}{
"title": "Marketplace",
"readOnlyHint": false,
"openWorldHint": true,
"idempotentHint": false,
"destructiveHint": false
}authenticate
MCP.AI for IDE agents (Cursor, etc.): log in in the browser, copy the access token. Best: add it to this server's config as a header `Authorization: Bearer <token>` for a permanent, non-expiring connection. Or paste it here for a session-only login: call with { token: "<jwt>" } after the user pastes, or with no args to get the link.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"token": {
"type": "string"
}
}
}{
"title": "Authenticate",
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}Prompts
Not advertised
Resources
Not advertised
30-day availability
Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.
- Successful checks
- 1 of 1 (100%)
- Average latency
- 2211 ms
- 95th percentile latency
- 2211 ms
Maintenance history
Public check and source-refresh events. Editorial and ownership records remain private.
- · probe · passed · 2211 ms · metadata changed · 16 tool(s)
Connect from your client
Each snippet registers the same endpoint; pick the client you use.
Claude Code
claude mcp add --transport http librelink-up-cgm-mcp https://api.mcp.ai/p_librelinkCodex
codex mcp add librelink-up-cgm-mcp --url https://api.mcp.ai/p_librelinkCursor
{
"mcpServers": {
"librelink-up-cgm-mcp": {
"url": "https://api.mcp.ai/p_librelink"
}
}
}Cline
{
"mcpServers": {
"librelink-up-cgm-mcp": {
"type": "streamableHttp",
"url": "https://api.mcp.ai/p_librelink",
"disabled": false
}
}
}VS Code
{
"servers": {
"librelink-up-cgm-mcp": {
"type": "http",
"url": "https://api.mcp.ai/p_librelink"
}
}
}Gemini CLI
gemini mcp add --transport http librelink-up-cgm-mcp https://api.mcp.ai/p_librelinkClaude Desktop
https://api.mcp.ai/p_librelinkWindsurf
{
"mcpServers": {
"librelink-up-cgm-mcp": {
"serverUrl": "https://api.mcp.ai/p_librelink"
}
}
}Let your agent find its tools
Find servers like mcp.ai LibreLink Up (CGM) MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.