lab-units-mcp
lab-units-mcp
An MCP server that converts clinical blood-test results between conventional and SI units, and resolves lab-marker names — including abbreviations and non-English labels — to a canonical analyte.
I built the first version of this while wiring up a pipeline that ingested blood panels from several different labs. Half of them reported glucose in mg/dL and half in mmol/L, HbA1c came back as either a percentage or mmol/mol, and the marker names were inconsistent across providers and languages. The conversion factors are not complicated, but keeping them correct and in one place — with the name-matching that has to happen before you can convert anything — was worth pulling out into a small, testable tool. This is that tool, exposed over MCP so an assistant can call it directly.
It is a units-and-naming utility. It does not interpret results, does not carry reference ranges, and is not medical advice.
Tools
Tool | What it does |
| Convert a value between two units of the same analyte (e.g. glucose |
| Resolve a printed label ( |
| List every supported analyte with its canonical unit and unit options. |
The analyte can be passed by name or by a common synonym in English or Russian, so
glucose, Glucose and глюкоза all resolve to the same marker.
Supported analytes
Glucose, total/HDL/LDL cholesterol, triglycerides, creatinine, urea, total bilirubin, uric acid, calcium, iron, magnesium, phosphate, haemoglobin, HbA1c, albumin, total protein, C-reactive protein, testosterone, estradiol, cortisol, free T4, free T3, vitamin D (25-OH), vitamin B12, folate, insulin, sodium, potassium and chloride.
Conversion factors are the standard molar-mass-derived values used across clinical
laboratories. HbA1c uses the NGSP ↔ IFCC relationship
(mmol/mol = (% − 2.152) × 10.931).
Install
npm install -g lab-units-mcpOr run it without installing:
npx lab-units-mcpUse it with Claude Desktop
Add this to your claude_desktop_config.json:
{
"mcpServers": {
"lab-units": {
"command": "npx",
"args": ["-y", "lab-units-mcp"]
}
}
}There are no API keys and no network calls — everything runs locally.
Use it with the Claude Code CLI
claude mcp add lab-units -- npx -y lab-units-mcpExamples
convert_lab_value analyte="glucose" value=99 from_unit="mg/dL"
-> 99 mg/dL = 5.494 mmol/L (Glucose)
convert_lab_value analyte="HbA1c" value=5.7 from_unit="%" to_unit="mmol/mol"
-> 5.7 % = 38.79 mmol/mol (HbA1c)
identify_analyte label="ЛПНП"
-> ЛПНП -> LDL cholesterol (key: ldl_cholesterol); units: mmol/L, mg/dLDevelop
npm install
npm run build
npm startLicense
MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/Islam0953/mcp-lab-units'
If you have feedback or need assistance with the MCP directory API, please join our Discord server