Skip to main content
Glama
kalevikas

Medical Diagnosis AI MCP

by kalevikas

Medical Diagnosis & Literature Analysis AI (MCP & FastAPI)

An AI-powered patient symptom analysis and medical literature research assistant. This repository provides a dual interface: a Model Context Protocol (MCP) server for seamless integration with AI agents (like Claude Desktop or Cursor) and a FastAPI REST API endpoint.

It automatically extracts symptoms from natural language text, uses OpenAI's GPT-4 to suggest potential diagnoses/cures, retrieves relevant medical literature directly from PubMed (via NCBI Entrez APIs), and summarizes the scientific abstracts.


Features

  • Symptom Extraction: Uses regex-based text processing to extract symptoms (headache, fever, nausea, fatigue, pain) from patient descriptions.

  • AI-Driven Diagnosis: Leverages OpenAI GPT-4 to analyze symptoms, suggest potential diagnoses, and recommend management strategies/cures.

  • PubMed Integration: Queries NCBI Entrez APIs to fetch titles, authors, dates, URLs, and abstracts of the latest matching scientific literature.

  • Scientific Abstract Summarization: Utilizes GPT-4 to compile a structured summary of the retrieved PubMed publications.

  • Model Context Protocol (MCP) Support: Built with FastMCP for quick integration with modern LLM clients.

  • FastAPI Endpoint: Exposes a POST endpoint /diagnosis for standard HTTP client integration.


Project Structure

medical_diagnosis_ai_mcp/
├── tools/
│   ├── diagnosis_tools.py     # OpenAI GPT-4 interface for suggesting diagnoses/cures
│   ├── symptom_extractor.py   # Regex-based symptom extractor
│   ├── pubmed_fetcher.py      # NCBI Entrez utility for searching and fetching articles
│   └── summarizer.py          # OpenAI GPT-4 interface for summarizing abstracts
├── mcp_tools.py               # FastMCP server definition & entrypoint
├── fastapi_app.py             # FastAPI server & route handlers
├── pyproject.toml             # Project configuration and basic package dependencies
├── uv.lock                    # Locked dependencies
└── .env                       # Environment variables (OpenAI keys, base URLs)

Prerequisites

  • Python: 3.12 or higher

  • OpenAI API Key (or OpenRouter/compatible LLM provider API Key)


Installation & Setup

  1. Clone the repository:

    git clone <your-repo-url>
    cd medical_diagnosis_ai_mcp
  2. Set up environment variables: Create a .env file in the root directory (or edit the existing one) with your credentials:

    OPENAI_API_KEY="your-api-key-here"
    OPENAI_BASE_URL="https://api.openai.com/v1" # Or OpenRouter/alternative endpoint
  3. Install dependencies: We recommend using uv or standard pip:

    # Using uv
    uv sync
    
    # Or using pip
    pip install mcp[cli] fastapi uvicorn openai requests beautifulsoup4 lxml python-dotenv

How to Run

1. Model Context Protocol (MCP) Server

To run the server in development/dev mode or standard mode:

  • Run directly:

    python mcp_tools.py
  • Run with MCP CLI (Dev Mode):

    mcp dev mcp_tools.py

2. FastAPI REST Server

To start the REST API server with live reloading:

uvicorn fastapi_app:app --reload

Once running, the interactive Swagger documentation will be available at http://127.0.0.1:8000/docs.


Usage Examples

FastAPI API Call

Send a POST request to /diagnosis to run the complete diagnostic analysis:

Request:

curl -X POST "http://127.0.0.1:8000/diagnosis" \
     -H "Content-Type: application/json" \
     -d '{"description": "The patient complains of severe headache, recurring fever, and extreme fatigue."}'

Response Schema:

{
  "symptom": [
    "headache",
    "fever",
    "fatigue"
  ],
  "diabnosis": "Based on the symptoms of severe headache, recurring fever, and extreme fatigue, possible diagnoses include...\n\nSuggested cures/treatment...",
  "pubmed_summary": "Unified summary of PubMed studies concerning headache, fever, and fatigue..."
}

Integrating with Claude Desktop

To expose the tool in Claude Desktop, add the following configuration to your claude_desktop_config.json:

On Windows: File path: %APPDATA%\Claude\claude_desktop_config.json

{
  "mcpServers": {
    "medical-diagnosis-ai-mcp": {
      "command": "uv",
      "args": [
        "run",
        "--path",
        "C:\\path\\to\\your\\medical_diagnosis_ai_mcp",
        "mcp_tools.py"
      ],
      "env": {
        "OPENAI_API_KEY": "your-api-key-here",
        "OPENAI_BASE_URL": "https://api.openai.com/v1"
      }
    }
  }
}

(Replace C:\\path\\to\\your\\medical_diagnosis_ai_mcp with the absolute path to your project folder.)

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/kalevikas/medical-diagnosis-ai-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server