Skip to main content
Glama
G0nza92

Medical AI Assistant MCP

by G0nza92

Medical AI Assistant

Sistema RAG desarrollado como proyecto final de AI Engineering.

El proyecto implementa un sistema de Inteligencia Artificial preparado para producción, utilizando recuperación semántica, re-ranking, un agente cíclico con LangGraph, observabilidad mediante LangSmith y Arize Phoenix, y un adaptador MCP para exponer herramientas externas.


Objetivo

Construir un asistente médico capaz de responder preguntas utilizando artículos científicos de PubMed, combinando Retrieval-Augmented Generation (RAG) con un agente basado en LangGraph.

El sistema recupera información desde una base vectorial, prioriza los documentos mediante re-ranking y genera respuestas utilizando un modelo de lenguaje (LLM).


Arquitectura general

Usuario
    │
    ▼
main.py
    │
    ▼
pipeline.py
    │
    ▼
MedicalAIAgent
    │
    ▼
LangGraph
    │
    ├───────────────┐
    ▼               │
Retrieval           │
    ▼               │
Re-ranking          │
    ▼               │
Construcción        │
de contexto         │
    ▼               │
LLM                 │
    ▼               │
Evaluación          │
    │               │
    └──── Retry ◄───┘
    │
    ▼
Respuesta final

Estructura del proyecto

Medical_AI_Assistant/

├── retrieval/
├── ranking/
├── orquestacion/
├── agente/
├── adaptadores_mcp/
├── observabilidad/
├── despliegue/
├── data/
├── scripts/
├── test/

├── main.py
├── pipeline.py
├── requirements.txt
├── README.md
└── .env.example

Tecnologías utilizadas

  • Python 3.11

  • LangChain

  • LangGraph

  • Google Gemini

  • Sentence Transformers

  • CrossEncoder (MS MARCO)

  • Qdrant

  • LangSmith

  • Arize Phoenix

  • OpenTelemetry

  • MCP (Model Context Protocol)

  • Docker

  • Kubernetes


Componentes implementados

Retrieval

  • Base vectorial Qdrant

  • Embeddings Sentence Transformers

  • Recuperación semántica


Related MCP server: GraphRAG MCP Server

Ranking

Re-ranking mediante:

cross-encoder/ms-marco-MiniLM-L-6-v2

Orquestación

Implementada utilizando:

  • LangChain


Agente

Implementado mediante:

  • LangGraph

Flujo del agente:

Retrieval
    ↓
Re-ranking
    ↓
Contexto
    ↓
LLM
    ↓
Evaluación
    ↓
Retry (si es necesario)

Observabilidad

Implementada mediante:

  • ✅ LangSmith

  • ✅ Arize Phoenix (OpenTelemetry)

Permite visualizar la ejecución completa del pipeline, las llamadas al modelo, tiempos de ejecución y trazabilidad del agente.


MCP

Se implementó un servidor MCP utilizando FastMCP.

Herramienta disponible:

search_medical_documents()

Permite consultar documentos almacenados en Qdrant desde clientes compatibles con Model Context Protocol.


Despliegue

El proyecto incluye:

  • Dockerfile

  • Kubernetes Deployment

  • Kubernetes Service

Los archivos de despliegue están preparados para ejecutarse en un entorno con Docker Engine y un clúster Kubernetes configurado.


Instalación

Crear el entorno:

conda create -n medical_ai python=3.11

Activarlo:

conda activate medical_ai

Instalar dependencias:

pip install -r requirements.txt

Variables de entorno

Crear un archivo .env:

GEMINI_API_KEY=

LANGSMITH_TRACING=true
LANGSMITH_API_KEY=
LANGSMITH_PROJECT=medical-ai-assistant

PHOENIX_TRACING=true
PHOENIX_API_KEY=
PHOENIX_COLLECTOR_ENDPOINT=
PHOENIX_PROJECT_NAME=medical-ai-assistant

Ejecución

python main.py

Pruebas

Grafo:

python test/test_graph.py

Servidor MCP:

python test/test_mcp.py

Prueba del LLM:

python test/test_llm.py

Prueba de Gemini:

python test/test_gemini.py

Estado de implementación

Componente

Estado

Retrieval

Ranking

LangChain

LangGraph

MCP

LangSmith

Arize Phoenix

Docker

Kubernetes


Autor

Gonzalo Matos

Proyecto desarrollado como trabajo final de la asignatura AI Engineering.

El repositorio implementa una arquitectura modular basada en Retrieval-Augmented Generation (RAG), LangChain, LangGraph, Model Context Protocol (MCP) y herramientas de observabilidad para sistemas de IA en producción.

Related MCP Connectors

Related MCP Servers

  • A
    license
    B
    quality
    D
    maintenance
    A Model Context Protocol server that enables semantic search capabilities by providing tools to manage Qdrant vector database collections, process and embed documents using various embedding services, and perform semantic searches across vector embeddings.
    4
    37 npm
    4
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables querying a hybrid system that combines Neo4j graph database and Qdrant vector database for powerful semantic and graph-based document retrieval through the Model Context Protocol.
    63
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    A Model Context Protocol server for agents to search, store, ingest, and maintain data in a Qdrant vector database.
    Apache 2.0