Skip to main content
Glama
robsyc

loinc-mcp

by robsyc

LOINC MCP Server

A Model Context Protocol server for querying LOINC (Logical Observation Identifiers Names and Codes) terminology through the LOINC Search API.

Available Tools

Tool

Description

search

Search LOINC codes by text query. Returns codes, names, and classifications.

get_code

Get full details for a LOINC code: parts, classification, units, panel members, and answer options.

Related MCP server: SNOMED CT MCP Server

Quick Start

Prerequisites

Install as a uv tool

git clone https://github.com/robsyc/loinc-mcp && cd loinc-mcp
uv tool install .

Then add to your .cursor/mcp.json or Claude Desktop config:

{
  "mcpServers": {
    "loinc-mcp": {
      "command": "loinc-mcp",
      "env": {
        "LOINC_USERNAME": "your-username",
        "LOINC_PASSWORD": "your-password"
      }
    }
  }
}

Run with uvx

{
  "mcpServers": {
    "LOINC": {
      "command": "uvx",
      "args": ["--from", "git+https://github.com/robsyc/loinc-mcp", "loinc-mcp"],
      "env": {
        "LOINC_USERNAME": "your-username",
        "LOINC_PASSWORD": "your-password"
      }
    }
  }
}

Usage Examples

"Search for LOINC codes related to glucose"

"Get the full details for LOINC code 2339-0"

"Look up the lipid panel 24331-1 and show me its members"

API Details

This server wraps the LOINC Search API:

  • Base URL: https://loinc.regenstrief.org/searchapi/

  • Auth: HTTP Basic Authentication (LOINC account credentials)

  • Endpoints used: /loincs (search) and FHIR /Questionnaire/{code} (panels)

  • Rate limiting: 10 requests/second (enforced client-side)

LOINC Class Types

Code

Type

1

Laboratory

2

Clinical

3

Claims attachments

4

Surveys

Panel Detection

When get_code is called for a panel (detected via the CLASS field), panel members are automatically fetched from the FHIR Questionnaire endpoint. For survey panels, answer options are included inline with each member.

Development

uv sync --group dev

# Lint
uv run ruff check src/ tests/

# Tests
uv run pytest tests/ -v

# MCP Inspector
LOINC_USERNAME=your-user LOINC_PASSWORD=your-pass uv run fastmcp dev inspector src/loinc_mcp/server.py:mcp

Acknowledgments

Available Tools

2 tools
get_codeA
Read-onlyIdempotent

Get full details for a LOINC code: name, parts, classification, units, and panel members/answer options if applicable.

ParametersJSON Schema
NameRequiredDescriptionDefault
codeYesLOINC code, e.g. '2339-0' (Glucose in Blood) or '24331-1' (Lipid Panel)

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already provide readOnlyHint, idempotentHint, and destructiveHint, so the description does not add extra behavioral context. The description's role in transparency is limited, and it correctly does not contradict annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, focused sentence that front-loads the main action and lists key details, making it highly concise without unnecessary words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the single parameter with full schema coverage, comprehensive annotations, and the existence of an output schema, the description sufficiently covers what the tool does. It provides a clear list of returned items, leaving no major gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, with the parameter description including an example. The tool description adds no additional meaning beyond what the schema provides, meeting the baseline for high coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Get' and the resource 'full details for a LOINC code', enumerating specific items returned. It distinguishes from the sibling tool 'search' by focusing on retrieval of details for a given code rather than searching.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context that this tool is used when a specific LOINC code is known to retrieve its details. However, it does not explicitly state when not to use it or mention alternatives like 'search' for finding codes.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 2 tool updatesv0.1.0
    • First observedget_code
    • First observedsearch

TDQS

A4/5.0

Scored across 2 tools

Disambiguation5/5

get_code retrieves details for a specific code, while search finds codes by text. Their purposes are completely distinct, leaving no ambiguity.

Naming Consistency4/5

Both names follow a simple verb pattern, but get_code uses verb_noun while search is just a verb. Slight inconsistency, though both are clear and predictable.

Tool Count3/5

With only 2 tools, the server is minimal but covers basic search and retrieval for LOINC. It is slightly thin for a domain with many potential operations, yet acceptable for a focused utility.

Completeness3/5

The set covers core lookup and search but lacks operations like listing by class, navigating hierarchies, or batch queries. Notable gaps exist, but the two tools serve essential needs.

Maintenance

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    A
    maintenance
    Provides AI agents with instant access to 10M+ OMOP medical vocabulary concepts for searching, mapping, and navigating clinical codes across SNOMED, ICD-10, RxNorm, LOINC, and more.
    11
    45 npm
    6
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables querying and browsing SNOMED CT medical terminology concepts, including search, details, and hierarchy navigation via MCP tools.
    3
    MIT
  • A
    license
    A
    quality
    B
    maintenance
    Enables LLMs to search LOINC terms with free-text, relevance-ranked, and faceted queries via the LOINC Search API, mirroring the loinc.org/search experience.
    5
    MIT