medical-mcp

medical-mcp

This MCP server provides authoritative medical data from FDA, WHO, PubMed, RxNorm, and Google Scholar, enabling drug information lookup, health statistics retrieval, medical literature searching, and clinical guidelines access directly in AI workflows.

Category
Visit Server

README

🩺 Medical MCP Server

Bring trusted medical data directly into your AI workflow. A local server for private, free access to FDA, WHO, PubMed, RxNorm, and Google Scholar. No API keys. No data leaks.

An MCP (Model Context Protocol) server that brings authoritative medical information into AI coding environments like Cursor and Claude Desktop.

<a href="https://glama.ai/mcp/servers/@JamesANZ/medical-mcp"> <img width="380" height="200" src="https://glama.ai/mcp/servers/@JamesANZ/medical-mcp/badge" alt="medical-mcp MCP server" /> </a>

Trust Score

Why Use Medical MCP?

  • šŸ”’ Your Data Never Leaves – Runs 100% locally; no tracking, no logs, no cloud
  • šŸ†“ No API Keys – Works out of the box, zero configuration
  • šŸ„ Authoritative Sources – FDA, WHO, PubMed, RxNorm, Google Scholar, AAP, pediatric journals
  • ⚔ Easy Setup – One-click install in Cursor or simple manual setup
  • šŸ”¬ Comprehensive – Drug info, health stats, medical literature, clinical guidelines, pediatric sources

Quick Start

Ready to bring medical intelligence into your AI workflow? Install in seconds:

Install in Cursor (Recommended):

šŸ”— Install in Cursor

Or install manually:

npm install -g medical-mcp
# Or from source:
git clone https://github.com/JamesANZ/medical-mcp.git
cd medical-mcp && npm install && npm run build

Features

šŸ’Š Drug Information

  • search-drugs – Search FDA database by brand or generic name
  • get-drug-details – Get comprehensive drug info by NDC code
  • search-drug-nomenclature – Standardized drug names via RxNorm

šŸ“Š Health Statistics

  • get-health-statistics – WHO Global Health Observatory data (life expectancy, mortality, disease prevalence)

šŸ”¬ Medical Literature

  • search-medical-literature – Search 30M+ PubMed articles
  • get-article-details – Detailed article info by PMID
  • search-google-scholar – Academic research with citations
  • search-medical-databases – Multi-database search (PubMed, Scholar, Cochrane, ClinicalTrials.gov)
  • search-medical-journals – Top journals (NEJM, JAMA, Lancet, BMJ, Nature Medicine)

šŸ„ Clinical Tools

  • search-clinical-guidelines – Practice recommendations from medical organizations

šŸ‘¶ Pediatric Sources

  • search-pediatric-guidelines – AAP guidelines and Bright Futures preventive care
  • search-pediatric-literature – Research from major pediatric journals (Pediatrics, JAMA Pediatrics, etc.)
  • get-child-health-statistics – Pediatric health indicators from WHO (mortality, immunization, nutrition)
  • search-pediatric-drugs – Drugs with pediatric labeling and dosing information
  • search-aap-guidelines – Comprehensive AAP guideline search (Bright Futures + Policy Statements)

šŸ“Š Cache Management

  • get-cache-stats – View cache statistics (hit rate, memory usage, entry count)

Installation

Cursor (One-Click)

Click the install link above or use:

cursor://anysphere.cursor-deeplink/mcp/install?name=medical-mcp&config=eyJtZWRpY2FsLW1jcCI6eyJjb21tYW5kIjoibnB4IiwiYXJncyI6WyIteSIsIm1lZGljYWwtbWNwIl19fQ==

Manual Installation

Requirements: Node.js 18+ and npm

# Clone and build
git clone https://github.com/JamesANZ/medical-mcp.git
cd medical-mcp
npm install
npm run build

# Run server
npm start

Claude Desktop

Add to claude_desktop_config.json:

macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json

{
  "mcpServers": {
    "medical-mcp": {
      "command": "node",
      "args": ["/absolute/path/to/medical-mcp/build/index.js"]
    }
  }
}

Restart Claude Desktop after configuration.

Usage Examples

Search for Drug Information

Ask about a medication's uses, dosage, and safety information:

{
  "tool": "search-drugs",
  "arguments": { "query": "Tylenol", "limit": 5 }
}

Get Health Statistics

Retrieve global health indicators like life expectancy or mortality rates:

{
  "tool": "get-health-statistics",
  "arguments": {
    "indicator": "Life expectancy at birth (years)",
    "country": "USA"
  }
}

Search Medical Literature

Find peer-reviewed research articles on any medical topic:

{
  "tool": "search-medical-literature",
  "arguments": { "query": "COVID-19 treatment", "max_results": 10 }
}

Data Sources

Source Coverage Update Frequency
FDA All FDA-approved drugs (US) Real-time
WHO Global health stats (194 countries) Annual
PubMed 30M+ medical citations Daily
RxNorm Standardized drug nomenclature (US) Weekly
Google Scholar Academic papers across disciplines Real-time
AAP Bright Futures guidelines & policy statements Periodic
Pediatric Journals Major pediatric journals (Pediatrics, JAMA Pediatrics, etc.) Daily

Security & Privacy

  • āœ… Localhost-only – Server runs locally, no external access
  • āœ… No data storage – All queries are real-time, nothing saved
  • āœ… Process isolation – Medical data stays on your machine
  • āœ… No API keys – No credentials to manage or leak

Use Cases

  • Medical Researchers – Quick literature reviews without paywalls
  • Healthcare Developers – Build prototypes with real medical data
  • Students – Access drug information and research papers
  • Clinicians – Reference tool for drug details and health statistics
  • Pediatricians – AAP guidelines, Bright Futures, pediatric literature, and child health data

Caching

The server includes an in-memory caching layer to improve response times and reduce API calls:

  • Automatic Caching: All API responses are cached with source-specific TTL policies
  • TTL Policies:
    • FDA data: 24 hours
    • PubMed articles: 1 hour
    • WHO statistics: 7 days
    • RxNorm nomenclature: 30 days
    • Clinical guidelines: 7 days
    • Google Scholar: 1 hour
    • Bright Futures: 30 days
    • AAP Policy: 7 days
    • Pediatric journals: 1 hour
    • Child health indicators: 7 days
    • Pediatric drugs: 24 hours
  • Cache Management: Automatic cleanup of expired entries every 5 minutes
  • LRU Eviction: Least recently used entries are evicted when cache exceeds 1000 entries
  • Cache Statistics: Use get-cache-stats tool to view hit rates and memory usage

Configuration (via environment variables):

  • CACHE_ENABLED=true - Enable/disable caching (default: true)
  • CACHE_MAX_SIZE=1000 - Maximum cache entries (default: 1000)
  • CACHE_TTL_FDA=86400 - FDA TTL in seconds (default: 86400)
  • CACHE_TTL_PUBMED=3600 - PubMed TTL in seconds (default: 3600)
  • CACHE_TTL_WHO=604800 - WHO TTL in seconds (default: 604800)
  • CACHE_TTL_RXNORM=2592000 - RxNorm TTL in seconds (default: 2592000)
  • CACHE_CLEANUP_INTERVAL=300000 - Cleanup interval in milliseconds (default: 300000)

Performance: Cached responses typically return in <10ms vs 800-1500ms for API calls. Expected cache hit rate: 60%+ for common queries.

Technical Details

Built with: Node.js, TypeScript, MCP SDK
Dependencies: @modelcontextprotocol/sdk, superagent, puppeteer, zod
Platforms: macOS, Windows, Linux

Note: Google Scholar access uses web scraping with rate limiting. Other sources use official APIs.

Medical Disclaimer

āš ļø Important: This tool provides information from authoritative sources but should not replace professional medical advice, diagnosis, or treatment. Always consult qualified healthcare professionals for medical decisions.

Contributing

⭐ If this project helps you, please star it on GitHub! ⭐

Contributions welcome! Please open an issue or submit a pull request.

License

MIT License – see LICENSE.md for details.

Support

If you find this project useful, consider supporting it:

⚔ Lightning Network

lnbc1pjhhsqepp5mjgwnvg0z53shm22hfe9us289lnaqkwv8rn2s0rtekg5vvj56xnqdqqcqzzsxqyz5vqsp5gu6vh9hyp94c7t3tkpqrp2r059t4vrw7ps78a4n0a2u52678c7yq9qyyssq7zcferywka50wcy75skjfrdrk930cuyx24rg55cwfuzxs49rc9c53mpz6zug5y2544pt8y9jflnq0ltlha26ed846jh0y7n4gm8jd3qqaautqa

₿ Bitcoin: bc1ptzvr93pn959xq4et6sqzpfnkk2args22ewv5u2th4ps7hshfaqrshe0xtp

Īž Ethereum/EVM: 0x42ea529282DDE0AA87B42d9E83316eb23FE62c3f

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured