Skip to main content
Glama
medlineplus-mcp

medlineplus-mcp

MedlinePlus MCP

Open-source Model Context Protocol server for MedlinePlus Connect, the U.S. National Library of Medicine service for linking clinical codes and medication names to patient-friendly health information.

This server gives an AI agent narrow tools for looking up public MedlinePlus education links. It is intentionally not a medical-record server and does not store patient data.

Why

Agents working near health records need trustworthy reference material, but they should not invent medication side effects, lab explanations, or condition summaries from memory.

medlineplus-mcp keeps the privacy boundary simple:

  • Send generic lookup terms or codes to MedlinePlus, such as metformin, an RXCUI, an NDC, a LOINC code, an ICD-10-CM code, a CPT code, or a SNOMED CT code.

  • Keep private chart context local in your own agent or application.

  • Merge public education links with private patient context only after the lookup result comes back.

Related MCP server: mcp-medlineplus

Tools

lookup_medication

Look up medication education links using:

  • name: English medication name fallback, such as metformin

  • rxcui: RxNorm Concept Unique Identifier

  • ndc: National Drug Code

  • language: en or es

Spanish medication responses generally require RXCUI or NDC.

lookup_diagnosis

Look up diagnosis/problem education links using:

  • code: ICD-10-CM, ICD-9-CM, or SNOMED CT code

  • codeSystem: icd10cm, icd9cm, or snomedct

  • name: optional display name

  • language: en or es

lookup_lab_test

Look up lab-test education links using:

  • loinc: LOINC code

  • name: optional display name

  • language: en or es

lookup_procedure

Look up procedure education links using:

  • code: CPT or SNOMED CT code

  • codeSystem: cpt or snomedct

  • name: optional display name

  • language: en or es

medlineplus_connect

Low-level escape hatch for supported MedlinePlus Connect request types.

Install

git clone https://github.com/chrisvo/medlineplus-mcp.git
cd medlineplus-mcp
npm install
npm test

Run

npm start

Example MCP config:

{
  "mcpServers": {
    "medlineplus": {
      "command": "node",
      "args": ["/absolute/path/to/medlineplus-mcp/src/server.mjs"],
      "cwd": "/absolute/path/to/medlineplus-mcp",
      "env": {
        "MEDLINEPLUS_CACHE_TTL_MS": "43200000"
      }
    }
  }
}

MEDLINEPLUS_CACHE_TTL_MS defaults to 12 hours. MEDLINEPLUS_CACHE_DIR defaults to .cache/medlineplus-mcp; set it to off to disable persistent disk caching.

Caching

The server uses two cache layers:

  • in-memory cache for repeated lookups during the current process,

  • filesystem cache so repeated lookups survive process restarts.

By default cache files are written under .cache/medlineplus-mcp/ in the server working directory. Cache keys are SHA-256 hashes of the MedlinePlus Connect request URL, and cached payloads contain only the public response from MedlinePlus plus the generic lookup request.

For a different cache folder:

MEDLINEPLUS_CACHE_DIR=/var/cache/medlineplus-mcp npm start

To disable disk caching:

MEDLINEPLUS_CACHE_DIR=off npm start

Output

Tool responses are JSON text payloads:

{
  "request": {
    "type": "drug",
    "codeSystem": "ndc",
    "code": "",
    "name": "metformin",
    "language": "en"
  },
  "query_url": "https://connect.medlineplus.gov/service?...",
  "attribution": "U.S. National Library of Medicine",
  "updated": "2026-07-18T03:05:36Z",
  "total_results": 1,
  "entries": [
    {
      "title": "Metformin",
      "url": "https://medlineplus.gov/druginfo/meds/a696005.html",
      "summary": "",
      "source": "American Society of Health-System Pharmacists, Inc."
    }
  ]
}

Privacy

Do not send private chart notes, diagnoses, full medication administration records, names, MRNs, dates of birth, or free-form patient narratives to this server unless you are intentionally sending them to MedlinePlus Connect.

Prefer generic lookups:

  • Good: metformin

  • Good: rivaroxaban

  • Good: 4548-4 for a LOINC lookup

  • Bad: an entire hospital progress note

Acceptable Use

MedlinePlus says Connect requests should stay under 100 requests per minute per IP address and recommends caching results for 12-24 hours. This server includes in-memory and disk caching by request URL.

See the official docs:

Medical Safety

MedlinePlus content is patient education, not a clinical decision engine. Agents using this MCP should:

  • cite returned MedlinePlus links,

  • separate public general education from patient-specific interpretation,

  • avoid telling users to stop, start, or change medications,

  • suggest questions for the care team when private clinical context matters.

License

MIT

Available Tools

5 tools
lookup_diagnosisA

Look up MedlinePlus health-topic links for ICD-10-CM, ICD-9-CM, or SNOMED CT diagnosis/problem codes.

Inputs: code (required), name, language, codeSystem.

lookup_lab_testA

Look up MedlinePlus lab-test information using a LOINC code.

Inputs: loinc (required), name, language.

lookup_medicationA

Look up medication education links from MedlinePlus Connect using RXCUI, NDC, or an English medication name.

Inputs: ndc, name, rxcui, language.

lookup_procedureA

Look up MedlinePlus information for CPT or SNOMED CT procedure codes.

Inputs: code (required), name, language, codeSystem.

medlineplus_connectC

Low-level MedlinePlus Connect lookup for supported type/code-system combinations.

Inputs: type (required), codeSystem (required), code, name, +1 more.

Tool Schema Changelog

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

Loading tool schema changelog…

    TDQS

    B3.4/5.0

    Scored across 5 tools

    Disambiguation4/5

    The four specific lookup tools (medication, diagnosis, lab test, procedure) have clearly distinct purposes. However, medlineplus_connect is a low-level utility that overlaps with all of them, potentially causing confusion if an agent chooses it over the more specific tool.

    Naming Consistency3/5

    Four tools use a consistent 'lookup_' prefix, but medlineplus_connect breaks this pattern with a different naming style. The inconsistency is noticeable but not chaotic.

    Tool Count4/5

    Five tools is a reasonable number for the domain, covering the main clinical code systems (RXCUI, ICD, LOINC, CPT, SNOMED). The count is not excessive and fits the scope well.

    Completeness4/5

    The tools cover the major MedlinePlus lookup categories (medication, diagnosis, lab, procedure). The general medlineplus_connect tool fills potential gaps, though a dedicated health-topic search tool might be missing.

    Maintenance

    ActivityInactive
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      Not graded
      quality
      D
      maintenance
      Provides real-time access to medical data including drug interactions, ICD-10 codes, FDA adverse event reports, and clinical guidelines. It enables LLMs to query databases like openFDA, PubMed, and CMS for pharmaceutical and clinical information.
      1
      MIT
    • A
      license
      Not graded
      quality
      C
      maintenance
      Provides access to MedlinePlus consumer health information from NIH, enabling free-text search across health topics.
      292 npm
      MIT