Sandbox
@Cicatriiz/healthcare-mcp-public

MCP server for healthcare data and medical tools

This repository packages a Node.js MCP server for assistants that need healthcare references. It exposes tools for FDA drug data, PubMed, health.gov topics, clinical trials, ICD-10 lookup, medRxiv, NCBI Bookshelf, DICOM metadata, and BMI calculation.

127 stars37 forksJavaScriptUpdated 1y ago
Who it's for

People who want their agent to search medical sources, clinical trials, and drug references while they work.

What it delivers

You can ask your agent for current healthcare references without switching to separate medical sites.

What it does

FDA drug lookup

Searches OpenFDA for general drug info, labels, and adverse events.

PubMed search

Finds medical literature articles from PubMed with query and date filtering.

Clinical trials search

Looks up recruiting, completed, active, or all trials from ClinicalTrials.gov.

ICD-10 and terminology lookup

Finds ICD-10 codes or searches by condition description.

Health topics search

Pulls consumer health information from Health.gov in English or Spanish.

medRxiv search

Searches preprint medical articles from medRxiv.

NCBI Bookshelf search

Searches biomedical books and documents in the NCBI Bookshelf.

DICOM metadata extraction

Extracts metadata from a DICOM file by file path.

How to get it

  1. 1To install Healthcare Data and Medical Information Server for Claude Desktop…
    npx -y @smithery/cli install @Cicatriiz/healthcare-mcp-public --client claude
  2. 2Install the package
    npm install healthcare-mcp
  3. 3Run the server
    npx healthcare-mcp
  4. 4Clone the repository
    git clone https://github.com/Cicatriiz/healthcare-mcp-public.git
    cd healthcare-mcp-public/server
  5. 5Install dependencies
    npm install
  6. 6Set up environment variables (optional)
    # Create .env file from example
    cp .env.example .env
    # Edit .env with your API keys (optional)

README

Healthcare MCP Server

smithery badge A Model Context Protocol (MCP) server providing AI assistants with access to healthcare data and medical information tools.

Overview

Healthcare MCP Server is a specialized Node.js server that implements the Model Context Protocol (MCP) to provide AI assistants with access to healthcare data and medical information tools. It enables AI models to retrieve accurate, up-to-date medical information from authoritative sources. This repository provides a single DXT package containing the complete Node.js implementation.

DXT Extension

This repository includes a packaged DXT (Desktop Extension) file for easy installation in compatible development environments. Download healthcare-mcp.dxt for one-click installation.

Features

  • FDA Drug Information: Search and retrieve comprehensive drug information from the FDA database (improved response parsing)
  • PubMed Research: Search medical literature from PubMed's database of scientific articles
  • Health Topics: Access evidence-based health information from Health.gov (updated to API v4)
  • Clinical Trials: Search for ongoing and completed clinical trials (updated API parameters)
  • Medical Terminology: Look up ICD-10 codes and medical terminology definitions
  • medRxiv Search: Search for pre-print articles on medRxiv
  • Medical Calculator: Calculate Body Mass Index (BMI)
  • NCBI Bookshelf Search: Search the NCBI Bookshelf for biomedical books and documents
  • DICOM Metadata Extraction: Extract metadata from a DICOM file
  • Caching: Efficient caching system with connection pooling to reduce API calls and improve performance
  • Usage Tracking: Anonymous usage tracking to monitor API usage
  • Error Handling: Robust error handling and logging
  • Multiple Interfaces: Support for both stdio (for CLI) and HTTP/SSE interfaces
  • API Documentation: Interactive API documentation with Swagger UI
  • Comprehensive Testing: Extensive test suite with Node.js testing and API verification

Installation

Option 1: DXT Extension (Recommended)

  1. Download healthcare-mcp.dxt from this repository
  2. Open with your compatible MCP client (such as Claude Desktop)
  3. Follow the installation prompts
  4. Configure optional settings through the GUI

Option 2: Installing via Smithery

To install Healthcare Data and Medical Information Server for Claude Desktop automatically via Smithery:

npx -y @smithery/cli install @Cicatriiz/healthcare-mcp-public --client claude

Option 3: npm Installation

  1. Install the package:

    npm install healthcare-mcp
    
  2. Run the server:

    npx healthcare-mcp
    

Option 4: Manual Installation from Source

  1. Clone the repository:

    git clone https://github.com/Cicatriiz/healthcare-mcp-public.git
    cd healthcare-mcp-public/server
    
  2. Install dependencies:

    npm install
    
  3. Set up environment variables (optional):

    # Create .env file from example
    cp .env.example .env
    # Edit .env with your API keys (optional)
    
  4. Run the server:

    npm start
    

Usage

Running the Server

  • stdio mode (default, for MCP clients):

    npm start
    
  • HTTP/SSE mode (for web clients):

    npm run server:http
    

Testing the Tools

You can test the MCP tools using the built-in test scripts:

# Test all tools
npm test

# Test individual tools
npm run test:fda        # Test FDA drug lookup
npm run test:pubmed     # Test PubMed search
npm run test:health     # Test Health Topics
npm run test:trials     # Test Clinical Trials search
npm run test:icd        # Test ICD-10 code lookup

API Reference

The Healthcare MCP Server provides both a programmatic API for direct integration and a RESTful HTTP API for web clients.

RESTful API Endpoints

When running in HTTP mode, the following endpoints are available:

Health Check

GET /health

Returns the status of the server and its services.

FDA Drug Lookup

GET /api/fda?drug_name={drug_name}&search_type={search_type}

Parameters:

  • drug_name: Name of the drug to search for
  • search_type: Type of information to retrieve
    • general: Basic drug information (default)
    • label: Drug labeling information
    • adverse_events: Reported adverse events

Example Response:

{
  "status": "success",
  "drug_name": "aspirin",
  "search_type": "general",
  "total_results": 25,
  "results": [
    {
      "brand_name": "ASPIRIN",
      "generic_name": "ASPIRIN",
      "manufacturer": "Bayer Healthcare",
      "product_type": "HUMAN OTC DRUG",
      "route": "ORAL",
      "active_ingredients": [
        {
          "name": "ASPIRIN",
          "strength": "325 mg/1"
        }
      ]
    }
  ]
}

PubMed Search

GET /api/pubmed?query={query}&max_results={max_results}&date_range={date_range}

Parameters:

  • query: Search query for medical literature
  • max_results: Maximum number of results to return (default: 5, max: 50)
  • date_range: Limit to articles published within years (e.g. '5' for last 5 years)

Example Response:

{
  "status": "success",
  "query": "diabetes treatment",
  "total_results": 123456,
  "date_range": "5",
  "articles": [
    {
      "pmid": "12345678",
      "title": "New advances in diabetes treatment",
      "authors": ["Smith J", "Johnson A"],
      "journal": "Journal of Diabetes Research",
      "publication_date": "2023-01-15",
      "abstract": "This study explores new treatment options...",
      "url": "https://pubmed.ncbi.nlm.nih.gov/12345678/"
    }
  ]
}

Health Topics

GET /api/health_finder?topic={topic}&language={language}

Parameters:

  • topic: Health topic to search for information
  • language: Language for content (en or es, default: en)

Example Response:

{
  "status": "success",
  "search_term": "diabetes",
  "language": "en",
  "total_results": 15,
  "topics": [
    {
      "title": "Diabetes Type 2",
      "url": "https://health.gov/myhealthfinder/topics/health-conditions/diabetes/diabetes-type-2",
      "last_updated": "2023-05-20",
      "section": "Health Conditions",
      "description": "Information about managing type 2 diabetes",
      "content": ["Diabetes is a disease...", "Treatment options include..."]
    }
  ]
}

Clinical Trials Search

GET /api/clinical_trials?condition={condition}&status={status}&max_results={max_results}

Parameters:

  • condition: Medical condition or disease to search for
  • status: Trial status (recruiting, completed, active, not_recruiting, or all)
  • max_results: Maximum number of results to return (default: 10, max: 100)

Example Response:

{
  "status": "success",
  "condition": "breast cancer",
  "search_status": "recruiting",
  "total_results": 256,
  "trials": [
    {
      "nct_id": "NCT12345678",
      "title": "Study of New Treatment for Breast Cancer",
      "status": "Recruiting",
      "phase": "Phase 2",
      "study_type": "Interventional",
      "conditions": ["Breast Cancer", "HER2-positive Breast Cancer"],
      "locations": [
        {
          "facility": "Memorial Hospital",
          "city": "New York",
          "state": "NY",
          "country": "United States"
        }
      ],
      "sponsor": "National Cancer Institute",
      "url": "https://clinicaltrials.gov/study/NCT12345678",
      "eligibility": {
        "gender": "Female",
        "min_age": "18 Years",
        "max_age": "75 Years",
        "healthy_volunteers": "No"
      }
    }
  ]
}

ICD-10 Code Lookup

GET /api/medical_terminology?code={code}&description={description}&max_results={max_results}

Parameters:

  • code: ICD-10 code to look up (optional if description is provided)
  • description: Medical condition description to search for (optional if code is provided)
  • max_results: Maximum number of results to return (default: 10, max: 50)

Example Response:

{
  "status": "success",
  "search_type": "description",
  "search_term": "diabetes",
  "total_results": 25,
  "codes": [
    {
      "code": "E11",
      "description": "Type 2 diabetes mellitus",
      "category": "Endocrine, nutritional and metabolic diseases"
    },
    {
      "code": "E10",
      "description": "Type 1 diabetes mellitus",
      "category": "Endocrine, nutritional and metabolic diseases"
    }
  ]
}

Generic Tool Execution

POST /mcp/call-tool

Request Body:

{
  "name": "fda_drug_lookup",
  "arguments": {
    "drug_name": "aspirin",
    "search_type": "general"
  },
  "session_id": "optional-session-id"
}

MCP Tools

When using the MCP server through compatible clients, the following tools are available:

FDA Drug Lookup

fda_drug_lookup(drug_name, search_type = "general")

Parameters:

  • drug_name: Name of the drug to search for
  • search_type: Type of information to retrieve
    • general: Basic drug information (default)
    • label: Drug labeling information
    • adverse_events: Reported adverse events

PubMed Search

pubmed_search(query, max_results = 5, date_range = "")

Parameters:

  • query: Search query for medical literature
  • max_results: Maximum number of results to return (default: 5)
  • date_range: Limit to articles published within years (e.g. '5' for last 5 years)

Health Topics

health_topics(topic, language = "en")

Parameters:

  • topic: Health topic to search for information
  • language: Language for content (en or es, default: en)

Clinical Trials Search

clinical_trials_search(condition, status = "recruiting", max_results = 10)

Parameters:

  • condition: Medical condition or disease to search for
  • status: Trial status (recruiting, completed, active, not_recruiting, or all)
  • max_results: Maximum number of results to return

ICD-10 Code Lookup

lookup_icd_code(code = null, description = null, max_results = 10)

Parameters:

  • code: ICD-10 code to look up (optional if description is provided)
  • description: Medical condition description to search for (optional if code is provided)
  • max_results: Maximum number of results to return

medRxiv Search

medrxiv_search(query, max_results = 10)

Parameters:

  • query: Search query for medRxiv articles
  • max_results: Maximum number of results to return

Calculate BMI

calculate_bmi(height_meters, weight_kg)

Parameters:

  • height_meters: Height in meters
  • weight_kg: Weight in kilograms

NCBI Bookshelf Search

ncbi_bookshelf_search(query, max_results = 10)

Parameters:

  • query: Search query for NCBI Bookshelf
  • max_results: Maximum number of results to return

Extract DICOM Metadata

extract_dicom_metadata(file_path)

Parameters:

  • file_path: Path to the DICOM file

Data Sources

This MCP server utilizes several publicly available healthcare APIs:

License

MIT License

Files in the repo

Repository payload18 top-level entries
  • .github
  • docs
  • server
  • .env.example
  • .gitignore
  • api-documentation.md
  • CHANGELOG.md
  • docker-compose.yml
  • Dockerfile
  • DXT-CONVERSION-SUMMARY.md
  • healthcare-mcp.dxt
  • LICENSE
  • manifest.json
  • package.json
  • railway.json
  • README-DXT.md
  • README.md
  • smithery.yaml

Discussion (0)

Ask about usage, or say what you built with it

Sign in to join the discussion.

No comments yet. Be the first to say what this is good for.

More connectors

Real-time global intelligence dashboard. AI-powered news aggregation, geopolitical monitoring, and infrastructure tracking in a unified situational awareness interface

86k

High-performance code intelligence MCP server. Indexes codebases into a persistent knowledge graph — average repo in milliseconds. 158 languages, sub-ms queries, 99% fewer tokens. Single static binary, zero dependencies.

43k

Universal provider proxy for OpenAI Codex & Claude Code — use any LLM (Claude, Gemini, Grok, DeepSeek, Ollama…) with Codex CLI, App, SDK, and Claude Code

14k
okf-memory/
okf-agent-memory

Git-native persistent memory for AI coding agents. Implements Google OKF v0.2 with sub-300µs in-memory BM25 search, embedded MCP server, and progressive disclosure. Slashes token bloat by 80% with zero external databases or dependencies. Built in pure Go.

547
tirth8205/
code-review-graph

Local-first code intelligence graph for MCP and CLI. Builds a persistent map of your codebase so AI coding tools read only what matters, with benchmarked context reductions on reviews and large-repo workflows.

31k
2akouwu/
reverify

Stop your AI from making things up — it proposes, deterministic tools decide, every claim checked against ground truth with evidence. Grounded facts and context survive resets. Reverse engineering is the proving ground. MCP server + CLI.

1.1k