Skip to main content
Glama

medical-mcp-agent

Python 3.12 License: MIT Groq Llama-3.3-70b

Overview ๐Ÿฉบ

medical-mcp-agent is a Python-based AI-powered medical assistant prototype that combines Groq's Llama-3.3-70b model, real-time PubMed literature search, and a Model Context Protocol (MCP) server.

It provides three interfaces:

  • FastAPI REST API backend for structured diagnostic JSON responses

  • Streamlit web dashboard for an interactive dark-themed clinical assistant experience

  • FastMCP server exposing medical tools to LLM clients

This repository is designed for clinical decision support research and prototyping, not for actual medical diagnosis.

Related MCP server: MCP Healthcare Server

Table of Contents ๐Ÿ“š

Features โœจ

  • Extracts medical symptoms from natural language patient descriptions using AI

  • Generates ranked differential diagnoses, home remedies, treatments, and red-flag warnings

  • Searches and fetches real research articles from the NCBI PubMed database

  • Summarizes medical research abstracts into concise 3-4 line insights using AI

  • Beautiful dark-themed Streamlit dashboard with symptom tags, expandable article cards, and emergency warning banners

  • FastAPI REST endpoint: POST /diagnosis

  • MCP server with four callable tools for LLM agents

Tech Stack ๐Ÿง 

  • Python 3.12

  • Groq API with Llama-3.3-70b-versatile

  • FastAPI + Uvicorn for REST backend

  • Streamlit for web UI

  • FastMCP for MCP server framework

  • NCBI PubMed Entrez API for medical literature search

  • BeautifulSoup4 + lxml for HTML/XML parsing

  • uv as the Python package manager

Project Structure ๐Ÿ—‚๏ธ

medical-mcp-agent/
โ”œโ”€โ”€ src/
โ”‚   โ”œโ”€โ”€ core/
โ”‚   โ”‚   โ”œโ”€โ”€ config.py               # Groq client setup
โ”‚   โ”‚   โ”œโ”€โ”€ symptom_extractor.py    # AI symptom extraction
โ”‚   โ”‚   โ”œโ”€โ”€ diagnosis_symptoms.py   # AI diagnosis generation
โ”‚   โ”‚   โ”œโ”€โ”€ pubmed_articles.py      # PubMed search and fetch
โ”‚   โ”‚   โ””โ”€โ”€ summarize_pubmed.py     # AI abstract summarization
โ”‚   โ”œโ”€โ”€ app/
โ”‚   โ”‚   โ”œโ”€โ”€ api.py                  # FastAPI backend
โ”‚   โ”‚   โ””โ”€โ”€ streamlit.py            # Streamlit web dashboard
โ”‚   โ””โ”€โ”€ mcp/
โ”‚       โ””โ”€โ”€ server.py               # FastMCP MCP server
โ”œโ”€โ”€ .env                            # API keys
โ”œโ”€โ”€ pyproject.toml                  # Project dependencies
โ””โ”€โ”€ requirements.txt

Installation โš™๏ธ

  1. Clone the repository:

git clone https://github.com/your-username/medical-mcp-agent.git
cd medical-mcp-agent
  1. Create a .env file in the project root with your Groq API key:

GROQ_API_KEY=your_key_here
  1. Install dependencies with uv:

uv sync

Always prefix commands with PYTHONPATH=. when running from the project root.

Usage ๐Ÿš€

Run FastAPI

Start the REST backend using the repository root:

PYTHONPATH=. python src/app/api.py

The API exposes:

  • POST /diagnosis

Run Streamlit

Open the Streamlit dashboard with:

PYTHONPATH=. uv run streamlit run src/app/streamlit.py

Run MCP Server

Launch the MCP server for LLM integrations:

PYTHONPATH=. uv run fastmcp dev inspector src/mcp/server.py

MCP Tools ๐Ÿงฉ

The MCP server exposes the following callable tools:

  1. extract_patient_symptoms โ€” Extracts symptoms from natural language text

  2. generate_differential_diagnosis โ€” Generates diagnoses from a list of symptoms

  3. search_pubmed_literature โ€” Searches NCBI PubMed and returns article metadata

  4. synthesize_medical_abstracts โ€” Summarizes medical research abstracts

These tools allow LLM clients to request structured medical assistance through MCP-aware workflows.

Environment Variables ๐Ÿ”

Create a .env file and add the following variable:

GROQ_API_KEY=your_key_here

The Groq API key is required for all AI-powered operations.

Example API Request ๐Ÿงช

Send a patient description to the FastAPI endpoint:

curl -X POST http://127.0.0.1:8000/diagnosis \
  -H "Content-Type: application/json" \
  -d '{"patient_description": "36-year-old female with fever, cough, and chest pain."}'

The response returns structured JSON with symptoms, differential diagnosis, treatments, and alerts.

Notes ๐Ÿ“

  • The Streamlit dashboard includes symptom tags, article cards, and warning banners for urgent issues.

  • The PubMed integration searches the NCBI Entrez API and parses results with BeautifulSoup.

  • The MCP server supports integration with external LLM agents and tool-based workflows.

Disclaimer โš ๏ธ

This repository is a clinical decision support prototype and NOT a replacement for professional medical advice.

Use this project for experimentation, research, and learning only. Always consult a licensed healthcare professional for real medical decisions.

A
license - permissive license
-
quality - not tested
C
maintenance

Maintenance

โ€“Maintainers
โ€“Response time
โ€“Release cycle
โ€“Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

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/akshay-aiml/medical-mcp-agent'

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