For developers and AI agents

Mediora, from the outside.

An MCP server, a plain HTTP catalog API, and what runs underneath. If you are here to read your own blood test, the home page is the place to start.

For Claude · Cursor · GPT

Mediora speaks MCP. Cite our catalog from any AI agent.

Model Context Protocol is the open standard agentic AI tools use to fetch verified knowledge. Mediora ships an MCP server with anonymous catalog read tools and patient-JWT-gated tools (whoami · analyze_lab_pdf · get_patient_history · get_test_details · longitudinal_trend). Patient tools use SSRF-hardened fetch + multipart S3 upload, so Claude Desktop can analyse a lab PDF without ever visiting our website.

Or plain HTTP

Prefer a regular HTTP API? Every catalog entry is also at api.mediora.ai/api/public/catalog/{markers, conditions, symptoms} - anonymous, JSON, no key needed.

curl https://api.mediora.ai/api/public/catalog/markers
claude_desktop_config.json paste & restart
{
  "mcpServers": {
    "mediora": {
      "type": "http",
      "url": "https://mcp.mediora.ai/mcp"
    }
  }
}

Then ask Claude to compare hypothyroidism markers or interpret a lab value - answers come straight from Mediora's catalog.

Power-user trick

Got Claude Desktop? Analyse a lab PDF without opening our site.

Drop a PDF (or a public-URL link) into Claude with Mediora's MCP server connected. Claude calls our mediora__analyze_lab_pdf tool, forwards your file to our upload pipeline with your JWT, and the analysis lands back in the chat - markers, ranges, and explanations. Same SSRF-hardened path our website uses; never your file on a public mirror.

M Claude Desktop · via mcp.mediora.ai
📎 hba1c_apr_2025.pdf
Analyse this please
⚙ mediora__analyze_lab_pdf · uploading…
✓ HbA1c 5.9 % · borderline
AI agents in action

When Claude needs a verified lab fact, it asks us.

Live example of a Claude Desktop conversation grounded in Mediora's catalog via MCP. The agent calls our tool, cites the source, and stays inside what's medically verified.

Claude Desktop via mcp.mediora.ai
You

My TSH came back at 4.5 mIU/L. What does that mean?

⚙ Tool call mediora__lookup_marker(slug: "tsh") → returned reference range, high/low meaning, related markers
Claude

TSH of 4.5 mIU/L is at the upper end of the typical reference range (0.4–4.0). Per Mediora's catalog, this may point toward borderline subclinical hypothyroidism - worth retesting in 6–8 weeks alongside free T4 and discussing with your doctor.

Source: mediora.ai/en/markers/tsh
This conversation is illustrative. Real agent responses depend on the agent's model and prompt.
Under the hood

Built like infrastructure.

Operational, SEO and reliability details that aren't worth a section each, but together explain why Mediora behaves like real software and not a demo.

  • Hangfire job auto-retry (3x) with temp-file retention. If OpenAI/S3 hiccups, your upload retries - you never re-upload manually.
  • Stuck-test auto-recovery within 1 hour. DetectStuckTestsJob hourly: any analysis stuck Parsing/Analyzing > 30 min becomes Failed with a clear message - and free CleanupOldDataJob drops it after 7 days.
  • Visible monthly quota on /profile. Used / limit / reset date - no surprises, no opaque counter.
  • Cookie banner shown once. After you decide, we never bother you again. Default behavior, not a setting.
  • Schema.org Physician on every doctor profile. Google / Bing / Perplexity can verify each doctor's specialty, language and years of practice from structured data - not just our marketing copy.
  • Schema.org reviewedBy on every catalog page. The two physicians who approved this marker / condition / symptom are credited as structured data with their specialty - AI agents can verify provenance.
  • Dynamic /sitemap.xml - 500+ URLs. Every marker, condition and symptom is its own indexable page in three languages, not a single generic SEO root.
  • Branded PDF reports. Downloads carry a Mediora.AI footer with the generation timestamp - when you bring it to a doctor, they know exactly what they're reading.