mcp-dir LibreLink Up B2B MCP
A community-hosted MCP server wrapper for LibreLink Up B2B, enabling AI agents to list patients with active sharing and read glucose levels, graphs, logbooks, and statistics in read-only mode. It supports MCP over HTTP and works with clients like Claude, Cursor, and VS Code.
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_librelink_businessWhat its tools do
15 tools, grouped by the hints the server advertises. Hints are self-declared, not verified behavior.
Read-only (12)
librelink_business_list_patientslibrelink_business_get_patientlibrelink_business_get_current_glucoselibrelink_business_get_glucose_graphlibrelink_business_get_glucose_logbooklibrelink_business_get_glucose_statslibrelink_business_get_latest_readinglibrelink_business_get_today_summarylibrelink_business_get_last_hoursshow_versionconnecttoolkit_info
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
- List patients with active sharing and current glucose
- Identify patients out of target range in the last 24 hours
- Show time in target range for the last 7 days for a specific patient
Source and maintenance
- Maintenance checked
Protocol and capabilities
- Server
- mcp-ai 0.9.409
- MCP protocol negotiated in check
- 2025-11-25
- Tools
- 15 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
15 advertised
librelink_business_list_patients
List all patients whose CGM data is visible to this LibreLink Up follower account (same as /llu/connections). Use patientId from each row for other tools. Read-only CGM data — clinic/follower account; not for medical decisions without clinician review.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {}
}{
"title": "librelink_business_list_patients",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}librelink_business_get_patient
Get one connection by patient_id (target range, sensor, latest glucose envelope). Read-only CGM data — clinic/follower account; 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#",
"required": [
"patient_id"
],
"properties": {
"patient_id": {
"type": "string"
},
"patient_ids": {
"type": "array",
"items": {
"type": "string"
}
}
}
}{
"title": "librelink_business_get_patient",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}librelink_business_get_current_glucose
Latest glucose reading for a patient (value, trend, flags). For history use librelink_business_get_glucose_graph. Read-only CGM data — clinic/follower account; 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#",
"required": [
"patient_id"
],
"properties": {
"patient_id": {
"type": "string"
},
"patient_ids": {
"type": "array",
"items": {
"type": "string"
}
}
}
}{
"title": "librelink_business_get_current_glucose",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}librelink_business_get_glucose_graph
~12h high-resolution glucose graph (graphData). Read-only CGM data — clinic/follower account; 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#",
"required": [
"patient_id"
],
"properties": {
"patient_id": {
"type": "string"
},
"patient_ids": {
"type": "array",
"items": {
"type": "string"
}
}
}
}{
"title": "librelink_business_get_glucose_graph",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}librelink_business_get_glucose_logbook
Manual-scan logbook (~14 days). For continuous graph use librelink_business_get_glucose_graph. Read-only CGM data — clinic/follower account; 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#",
"required": [
"patient_id"
],
"properties": {
"patient_id": {
"type": "string"
},
"patient_ids": {
"type": "array",
"items": {
"type": "string"
}
}
}
}{
"title": "librelink_business_get_glucose_logbook",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}librelink_business_get_glucose_stats
Time-in-range, avg, min/max from current graph window (~12h). Default target 70–180 mg/dL. Read-only CGM data — clinic/follower account; 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#",
"required": [
"patient_id"
],
"properties": {
"patient_id": {
"type": "string"
},
"target_low": {
"type": "number",
"default": 70
},
"patient_ids": {
"type": "array",
"items": {
"type": "string"
}
},
"target_high": {
"type": "number",
"default": 180
}
}
}{
"title": "librelink_business_get_glucose_stats",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}librelink_business_get_latest_reading
Normalized latest reading: { mg_dl, trend_arrow, timestamp, minutes_ago, has_active_sensor }. Read-only CGM data — clinic/follower account; 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#",
"required": [
"patient_id"
],
"properties": {
"patient_id": {
"type": "string"
},
"patient_ids": {
"type": "array",
"items": {
"type": "string"
}
}
}
}{
"title": "librelink_business_get_latest_reading",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}librelink_business_get_today_summary
Like glucose stats but filtered to "today" in an IANA timezone; includes hypo/hyper event counts. Read-only CGM data — clinic/follower account; 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#",
"required": [
"patient_id"
],
"properties": {
"timezone": {
"type": "string",
"default": "UTC"
},
"patient_id": {
"type": "string"
},
"target_low": {
"type": "number",
"default": 70
},
"patient_ids": {
"type": "array",
"items": {
"type": "string"
}
},
"target_high": {
"type": "number",
"default": 180
}
}
}{
"title": "librelink_business_get_today_summary",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}librelink_business_get_last_hours
Last N hours of normalized points from the current graph window (max ~12h available). Read-only CGM data — clinic/follower account; 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#",
"required": [
"patient_id"
],
"properties": {
"hours": {
"type": "number",
"default": 6
},
"patient_id": {
"type": "string"
},
"patient_ids": {
"type": "array",
"items": {
"type": "string"
}
}
}
}{
"title": "librelink_business_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
- 664 ms
- 95th percentile latency
- 664 ms
Maintenance history
Public check and source-refresh events. Editorial and ownership records remain private.
- · probe · passed · 664 ms · metadata changed · 15 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-b2b-mcp https://api.mcp.ai/p_librelink_businessCodex
codex mcp add librelink-up-b2b-mcp --url https://api.mcp.ai/p_librelink_businessCursor
{
"mcpServers": {
"librelink-up-b2b-mcp": {
"url": "https://api.mcp.ai/p_librelink_business"
}
}
}Cline
{
"mcpServers": {
"librelink-up-b2b-mcp": {
"type": "streamableHttp",
"url": "https://api.mcp.ai/p_librelink_business",
"disabled": false
}
}
}VS Code
{
"servers": {
"librelink-up-b2b-mcp": {
"type": "http",
"url": "https://api.mcp.ai/p_librelink_business"
}
}
}Gemini CLI
gemini mcp add --transport http librelink-up-b2b-mcp https://api.mcp.ai/p_librelink_businessClaude Desktop
https://api.mcp.ai/p_librelink_businessWindsurf
{
"mcpServers": {
"librelink-up-b2b-mcp": {
"serverUrl": "https://api.mcp.ai/p_librelink_business"
}
}
}Let your agent find its tools
Find servers like mcp-dir LibreLink Up B2B MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.