Medical MCP Server

Medical MCP Server

Enables medical information retrieval and drug interaction checking via MCP, integrating a local knowledge base with Grok AI for fallback queries.

Category
Visit Server

README

Medical MCP Server

A Model Context Protocol (MCP) server that provides medical information tools powered by Grok AI. Works with Claude Desktop, Claude Code, and any other MCP-compatible client.

License: MIT Node.js MCP SDK Grok AI


Disclaimer: This server is for EDUCATIONAL PURPOSES ONLY. It is not a substitute for professional medical advice, diagnosis, or treatment. Always consult a qualified healthcare professional for medical concerns.


Table of Contents


Features

  • Medication Information — Uses, dosage, side effects, and warnings
  • Drug Interaction Checker — Identify potential interactions between two medications
  • Medical Term Definitions — Plain-language explanations of medical terminology
  • General Medical Q&A — Powered by Grok AI for open-ended questions
  • Interactive CLI — Terminal-based client with conversation memory and colored output
  • Claude Desktop Integration — Plug in as an MCP server for seamless AI-assisted queries
  • Hybrid Knowledge Base — Fast local lookups + Grok AI fallback for unknown queries
  • Safety First — Every response includes a medical disclaimer

Architecture

┌──────────────────────────────────────────────────────┐
│                   User / MCP Client                  │
│            (Claude Desktop · CLI · etc.)             │
└───────────────────────┬──────────────────────────────┘
                        │  stdio
                        ▼
┌──────────────────────────────────────────────────────┐
│               MCP Server  (index.js)                 │
│                                                      │
│  ┌─────────────────────┐   ┌──────────────────────┐  │
│  │  Local Knowledge DB │   │     Grok AI API      │  │
│  │  (medications,      │──▶│  (fallback for       │  │
│  │   interactions,     │   │   unknown queries)   │  │
│  │   terminology)      │   └──────────────────────┘  │
│  └─────────────────────┘                             │
│                                                      │
│  Tools: get_medication_info · check_drug_interaction │
│         define_medical_term  · ask_medical_question  │
└──────────────────────────────────────────────────────┘

Prerequisites

Requirement Version
Node.js v18 or higher
Grok API Key Free tier available

Installation

# 1. Clone the repository
git clone https://github.com/your-username/medical-mcp-server.git
cd medical-mcp-server

# 2. Install dependencies
npm install

Configuration

1. Create your .env file

cp .env.example .env

2. Add your Grok API key

Open .env and fill in:

GROK_API_KEY=your_grok_api_key_here
GROK_API_BASE_URL=https://api.x.ai/v1   # optional, this is the default

Getting a Grok API key:

  1. Visit https://console.x.ai/
  2. Sign in with your X (Twitter) account
  3. Go to API KeysCreate new key
  4. Copy it immediately (it won't be shown again)

Usage

CLI (Interactive Mode)

Run the interactive terminal client — no MCP client needed:

npm run cli

Example session:

You: What is aspirin used for?
Assistant: Aspirin (Acetylsalicylic acid) is used for pain relief, fever reduction,
           and as a blood thinner...  [Medical Disclaimer: ...]

You: Check interactions between aspirin and ibuprofen
Assistant: ⚠️ Interaction found: Concurrent use may increase the risk of gastrointestinal
           bleeding...

You: /help      ← type /help to see available commands
You: /exit      ← exits the client

Claude Desktop Integration

Add the server to your Claude Desktop config file:

Windows%APPDATA%\Claude\claude_desktop_config.json

macOS/Linux~/Library/Application Support/Claude/claude_desktop_config.json

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

Replace /absolute/path/to/medical-mcp-server/index.js with the actual path on your machine.

After saving:

  1. Restart Claude Desktop
  2. Look for the plug icon (🔌) to confirm the server is connected
  3. Start asking medical questions in your Claude conversations

Available Tools

Tool Description
get_medication_info Detailed medication info — uses, dosage, side effects, warnings
check_drug_interaction Checks for interactions between two medications
define_medical_term Plain-English definitions of medical terminology
ask_medical_question General medical Q&A via Grok AI

Example prompts (in Claude Desktop or CLI)

Can you get information about metformin?
Check if there are any interactions between aspirin and warfarin.
What does tachycardia mean?
What are the common symptoms of dehydration?

Available Resources

URI Description
medical://medications/list Lists all medications in the built-in knowledge base
medical://disclaimer Full medical disclaimer text

Built-in Knowledge Base

The server ships with pre-loaded data so common queries are answered instantly without an API call:

Medications: Aspirin · Ibuprofen · Metformin

Drug Interactions: Aspirin–Ibuprofen · Aspirin–Warfarin · Metformin–Alcohol

Medical Terms: Hypertension · Diabetes · Tachycardia · Hypotension

All other queries fall back to Grok AI automatically.


Project Structure

medical-mcp-server/
├── index.js          # MCP server — tools, resources, Grok integration
├── cli.js            # Interactive CLI client
├── package.json      # Dependencies and npm scripts
├── .env.example      # Environment variable template
├── .gitignore        # Ignores node_modules, .env, logs
├── QUICKSTART.md     # 5-minute setup guide
└── README.md         # This file

Extending the Server

All extension points are in index.js:

Add a new medication to the knowledge base:

MEDICAL_DATA.medications["drug-name"] = {
  name: "Drug Name",
  generic_name: "...",
  uses: [...],
  dosage: "...",
  side_effects: [...],
  warnings: [...],
};

Add a new tool:

  1. Add the tool definition inside the ListToolsRequestSchema handler
  2. Add the handler logic inside the CallToolRequestSchema handler

Add a new resource:

  1. Register the URI in ListResourcesRequestSchema
  2. Handle the URI in ReadResourceRequestSchema

Troubleshooting

Problem Solution
GROK_API_KEY is not set Check that .env exists and contains a valid key with no extra spaces or quotes
Server not showing in Claude Desktop Verify the path in config is absolute and correct, then restart Claude Desktop
API rate limit errors Grok API limits depend on your plan — consider caching frequent queries
CLI won't start Ensure Node.js v18+ is installed (node --version)


Acknowledgments

  • Model Context Protocol SDK — MCP protocol implementation
  • Grok AI by X.AI — AI backend for medical queries
  • Medical data is for educational purposes only and does not replace professional medical advice

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
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

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