mediora-mcp

Doctor-reviewed blood-test markers, conditions & symptoms as agent tools. EN/RU/HE. Hosted.

Should I use this

Quality & Safety

A
Description quality
95%
Schema completeness
93%
Naming quality
80%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Findings (1)

  • LOWTool 'mediora__explain_condition' description lacks action verbin mediora__explain_condition

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~2,241Tokens (tool definitions)
~877 BTypical response size
Moderate attention impact (1.75% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "mediora-mcp": {
      "url": "https://mcp.mediora.ai/mcp"
    }
  }
}

Remote endpoints

https://mcp.mediora.ai/mcpstreamable-http

What it can do

Tool inventory

Tools (14)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢mediora__list_markers(lang)

List every blood-test marker in the Mediora catalog. Returns slug + short name per entry. Use mediora__explain_marker for the full explainer.

Input Schema

{
  "type": "object",
  "properties": {
    "lang": {
      "type": "string",
      "enum": [
        "en",
        "ru",
        "he"
      ],
      "description": "Language code. Defaults to 'en'."
    }
  },
  "additionalProperties": false
}
🟢mediora__explain_marker(slug, lang)

Return the full explainer for a single blood-test marker by slug. Includes: what it measures, what high/low values mean, when the value is clinically actionable, the conditions typically associated with it, and - where habits genuinely move the number - what can be done about a high or low result. Those action fields are empty when the value follows an underlying cause rather than lifestyle, which is itself the answer.

Input Schema

{
  "type": "object",
  "properties": {
    "slug": {
      "type": "string",
      "description": "Mediora canonical slug (e.g. 'hba1c', 'ferritin'). Use mediora__list_markers / mediora__list_conditions to discover slugs."
    },
    "lang": {
      "type": "string",
      "enum": [
        "en",
        "ru",
        "he"
      ],
      "description": "Language code. Defaults to 'en'."
    }
  },
  "required": [
    "slug"
  ],
  "additionalProperties": false
}
🟢mediora__list_conditions(lang)

List every clinical condition in the Mediora catalog. Returns slug + name + ICD-10 code per entry. Use mediora__explain_condition for the full explainer.

Input Schema

{
  "type": "object",
  "properties": {
    "lang": {
      "type": "string",
      "enum": [
        "en",
        "ru",
        "he"
      ],
      "description": "Language code. Defaults to 'en'."
    }
  },
  "additionalProperties": false
}
🟢mediora__explain_condition(slug, lang)

Return the full explainer for a clinical condition by slug. Includes: what the condition is, the key markers used in diagnosis, common symptoms, and when the patient should seek clinical evaluation.

Input Schema

{
  "type": "object",
  "properties": {
    "slug": {
      "type": "string",
      "description": "Mediora canonical slug (e.g. 'hba1c', 'ferritin'). Use mediora__list_markers / mediora__list_conditions to discover slugs."
    },
    "lang": {
      "type": "string",
      "enum": [
        "en",
        "ru",
        "he"
      ],
      "description": "Language code. Defaults to 'en'."
    }
  },
  "required": [
    "slug"
  ],
  "additionalProperties": false
}
🟢mediora__lookup_marker(query, lang)

Fuzzy-search markers by alias across EN/RU/HE. Useful when the upstream LLM has the lab's local name (e.g. "гликированный гемоглобин", "המוגלובין מסוכרר", "A1C") and needs to find the canonical Mediora slug.

Input Schema

{
  "type": "object",
  "properties": {
    "query": {
      "type": "string",
      "description": "Free-text marker name in EN/RU/HE; e.g. 'A1C', 'гликированный', 'TSH', 'ויטמין D'."
    },
    "lang": {
      "type": "string",
      "enum": [
        "en",
        "ru",
        "he"
      ],
      "description": "Preferred language for returned names. Defaults to 'en'."
    }
  },
  "required": [
    "query"
  ],
  "additionalProperties": false
}
🟢mediora__list_symptoms(lang)

List every patient-side symptom in the Mediora catalog (fatigue, joint pain, headache, etc.). Returns slug + short name. Use mediora__explain_symptom for the full triage-oriented explainer including the lab work-up a clinician would order.

Input Schema

{
  "type": "object",
  "properties": {
    "lang": {
      "type": "string",
      "enum": [
        "en",
        "ru",
        "he"
      ],
      "description": "Language code. Defaults to 'en'."
    }
  },
  "additionalProperties": false
}
🟢mediora__explain_symptom(slug, lang)

Return the full triage explainer for a single symptom by slug. Includes: what the symptom means, common causes, the lab work-up a clinician would order, and when the patient should seek urgent evaluation. The related marker and condition slug arrays let the upstream LLM follow the graph into mediora__explain_marker / explain_condition.

Input Schema

{
  "type": "object",
  "properties": {
    "slug": {
      "type": "string",
      "description": "Mediora canonical slug (e.g. 'hba1c', 'ferritin'). Use mediora__list_markers / mediora__list_conditions to discover slugs."
    },
    "lang": {
      "type": "string",
      "enum": [
        "en",
        "ru",
        "he"
      ],
      "description": "Language code. Defaults to 'en'."
    }
  },
  "required": [
    "slug"
  ],
  "additionalProperties": false
}
🟢mediora__list_panels

List every lab panel in the Mediora catalog (CBC, lipid, comprehensive metabolic, thyroid, iron, liver, kidney, diabetes, vitamin, inflammation, hormone, bone, cardiac, electrolyte, adrenal, PSA/prostate). Returns slug + name + marker count. Use mediora__explain_panel for the markers a panel contains.

Input Schema

{
  "type": "object",
  "properties": {},
  "additionalProperties": false
}
🟢mediora__explain_panel(slug, lang)

Return the markers that make up a lab panel by slug — each resolved to its Mediora marker slug, name and one-line summary — plus the panel's search aliases (CBC/FBC, CMP, LFT, TFT, renal panel, …). Answers "what's included in a CBC / lipid panel / CMP". Follow each marker into mediora__explain_marker for full detail.

Input Schema

{
  "type": "object",
  "properties": {
    "slug": {
      "type": "string",
      "description": "Panel slug (e.g. 'complete-blood-count', 'lipid-panel', 'comprehensive-metabolic-panel'). Use mediora__list_panels to discover slugs."
    },
    "lang": {
      "type": "string",
      "enum": [
        "en",
        "ru",
        "he"
      ],
      "description": "Language for the marker names/summaries. Defaults to 'en'."
    }
  },
  "required": [
    "slug"
  ],
  "additionalProperties": false
}
⚪mediora__whoami(bearer_token)

Validate a Mediora.AI patient Bearer token and return the patient id + email it represents. Use this first to confirm the token before calling other auth-gated tools. The token is obtained by going through the standard Mediora.AI login at https://www.mediora.ai — the same JWT the browser stores in localStorage as 'auth_token'.

Input Schema

{
  "type": "object",
  "properties": {
    "bearer_token": {
      "type": "string",
      "description": "Mediora.AI patient JWT. Get it by signing in at https://www.mediora.ai then copying localStorage.auth_token from DevTools, OR pass-through from a desktop client that stores Mediora credentials."
    }
  },
  "required": [
    "bearer_token"
  ],
  "additionalProperties": false
}
🟡mediora__analyze_lab_pdf(bearer_token, file_url, language)

Upload a lab-report PDF or scan (by HTTPS URL) and trigger Mediora.AI's full Vision + analysis pipeline. Returns a pending test id the client can poll. The URL must be https, must resolve to a public IP (no localhost / cloud-metadata / private LAN), and the file must be PDF / JPEG / PNG ≤ 10 MB. Redirects are not followed — pass the final URL.

Input Schema

{
  "type": "object",
  "properties": {
    "bearer_token": {
      "type": "string",
      "description": "Mediora.AI patient JWT (see mediora__whoami)."
    },
    "file_url": {
      "type": "string",
      "description": "Public HTTPS URL of the lab-report PDF to analyze.",
      "format": "uri"
    },
    "language": {
      "type": "string",
      "enum": [
        "en",
        "ru",
        "he"
      ],
      "description": "Preferred language for the analysis output. Defaults to 'en'."
    }
  },
  "required": [
    "bearer_token",
    "file_url"
  ],
  "additionalProperties": false
}
🟢mediora__get_patient_history(bearer_token, page, page_size)

Return the patient's past medical-test rows (id, test type, test date, risk level, summary, status, abnormal-marker count). Bearer token must be a Mediora patient-scope JWT. Paginated; default 10 per page. Proxies https://api.mediora.ai/api/medical-tests with the user's token forwarded as Authorization: Bearer.

Input Schema

{
  "type": "object",
  "properties": {
    "bearer_token": {
      "type": "string",
      "description": "Mediora.AI patient JWT (see mediora__whoami)."
    },
    "page": {
      "type": "integer",
      "minimum": 1,
      "description": "1-based page number. Defaults to 1."
    },
    "page_size": {
      "type": "integer",
      "minimum": 1,
      "maximum": 50,
      "description": "Items per page. Defaults to 10, max 50."
    }
  },
  "required": [
    "bearer_token"
  ],
  "additionalProperties": false
}
🟢mediora__get_test_details(bearer_token, test_id)

Return the persisted markers + AI analysis (Summary, KeyFindings, Recommendations, DetailedExplanation) for a specific medical-test the authenticated patient owns. Use after mediora__get_patient_history surfaces a test id the user wants to discuss. Bearer token must be a Mediora patient-scope JWT. Proxies https://api.mediora.ai/api/medical-tests/{id} with the user's token forwarded as Authorization: Bearer.

Input Schema

{
  "type": "object",
  "properties": {
    "bearer_token": {
      "type": "string",
      "description": "Mediora.AI patient JWT (see mediora__whoami)."
    },
    "test_id": {
      "type": "integer",
      "minimum": 1,
      "description": "Numeric medical-test id (returned by mediora__get_patient_history as `id`)."
    }
  },
  "required": [
    "bearer_token",
    "test_id"
  ],
  "additionalProperties": false
}
⚪mediora__longitudinal_trend(bearer_token)

Return the per-marker trajectory analyser output for the authenticated patient — HbA1c rising, eGFR falling, ferritin depleting, etc. Each finding includes the marker slug, kind, severity (Info / Notice / Important), trend per year, sample count, date range and a supportive headline + detail. Proxies https://api.mediora.ai/api/trajectory/warnings with the user's token forwarded as Authorization: Bearer.

Input Schema

{
  "type": "object",
  "properties": {
    "bearer_token": {
      "type": "string",
      "description": "Mediora.AI patient JWT. Get it by signing in at https://www.mediora.ai then copying localStorage.auth_token from DevTools, OR pass-through from a desktop client that stores Mediora credentials."
    }
  },
  "required": [
    "bearer_token"
  ],
  "additionalProperties": false
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded14 tools
verifiedversion not recorded14 tools