Universal RAG MCP Server
Ingests Google Drive files via drive:// for indexing, semantic retrieval, and cited answers.
Connects to a local Ollama OpenAI-compatible endpoint for LLM-based answer generation.
Uses OpenAI-compatible chat completion endpoints for answer generation over retrieved chunks, including verifiable citations.
Ingests YouTube videos by URL, transcribes their audio locally with ASR, and enables semantic search with minute-level citations.
This server does not currently have a deployable release on Glama. Follow the repository's setup instructions to install and configure it for your MCP client, including any required credentials and local dependencies.
Universal RAG
🧩 Pipeline plugable de Retrieval-Augmented Generation — ingesta universal (texto, archivos, URLs, audio, video, YouTube, Google Drive), búsqueda semántica local y respuestas con citas verificables, incluidas citas por minuto en audio/video.
Hermano de Universal MCP: misma filosofía "universal" — núcleo estable, capacidades que se agregan soltando carpetas, sin tocar el servidor.
✨ Características
Pieza | Qué hace |
🔌 Conectores plugables | Fase 1: |
✂️ Chunker configurable | División con conciencia de párrafos/frases/palabras y solapamiento; para audio/video, troceado temporal acotado por minuto. |
🧠 Embeddings locales |
|
🗄️ ChromaDB embebido | Persistente, sin servidor; intercambiable por otro store (incl. uno en memoria para tests). |
🔍 Búsqueda semántica | Recuperación con scores de similitud y filtros por metadatos ( |
💬 Generación plugable | Cualquier endpoint compatible OpenAI (OpenAI, z-ai, Ollama, LM Studio, vLLM…) o modo extractivo sin LLM. |
📎 Citas verificables | Cada respuesta referencia sus fuentes con |
🎙️ ASR local (Fase 2) | faster-whisper corre en tu máquina: MP3/WAV/M4A/MP4/MKV… → transcripción con citas |
🖥️ 3 interfaces | API REST (FastAPI) + CLI (Typer) + servidor MCP (para Claude Desktop / Universal MCP). |
Related MCP server: RAG MCP Server
🚀 Inicio rápido
pip install universal-rag # núcleo (embeddings deterministas)
pip install "universal-rag[local]" # + embeddings neuronales locales
pip install "universal-rag[media]" # + audio/video/youtube (faster-whisper, yt-dlp)CLI
# Ingesta (el conector se resuelve automáticamente por esquema/extensión/dominio)
universal-rag ingest ./docs/manual.pdf
universal-rag ingest "https://es.wikipedia.org/wiki/Energía_solar"
universal-rag ingest "./informes/*.md" # globs = ingesta masiva
universal-rag ingest ./podcast.mp3 # → transcripción local + minutos
universal-rag ingest ./clase.mp4 # → pista de audio → ASR + minutos
universal-rag ingest "https://youtu.be/abc123" # → YouTube → ASR + minutos
universal-rag ingest "drive://<fileId>" # → Google Drive (público/compartido)
# Consulta con citas (en media, con minuto exacto)
universal-rag query "¿cada cuánto se limpian los paneles?"
# Administración
universal-rag documents # lista lo ingestado
universal-rag stats # documentos, fragmentos, conectoresAPI REST
universal-rag serve --port 8100curl -X POST localhost:8100/ingest -H 'Content-Type: application/json' \
-d '{"source": "https://ejemplo.com/articulo"}'
curl -X POST localhost:8100/ingest -H 'Content-Type: application/json' \
-d '{"source": "./entrevista.mp3", "options": {"language": "es", "asr_model": "small"}}'
curl -X POST localhost:8100/query -H 'Content-Type: application/json' \
-d '{"question": "¿qué dijo sobre costos?", "k": 4}'Como servidor MCP (Claude Desktop, Universal MCP…)
universal-rag mcp # stdio
universal-rag mcp --transport streamable-http --port 8200Herramientas MCP: rag_ingest, rag_ingest_text, rag_query, rag_stats, rag_list_documents, rag_delete_document.
🧪 Python
from universal_rag import RAGPipeline
rag = RAGPipeline()
rag.ingest("./docs/contrato.pdf")
rag.ingest("./entrevista.mp3", language="es", asr_model="small")
answer = rag.query("¿cuál es la cláusula de penalización?")
print(answer.answer)
for citation in answer.citations:
minute = f" {citation.timestamp}" if citation.timestamp else ""
print(f" [{citation.source}{minute}] {citation.title} → {citation.quote[:80]}")
# [audio 03:12–04:05] Entrevista → ...sobre la cláusula de penalización...⚙️ Configuración (variables RAG_*)
Variable | Default | Descripción |
|
|
|
|
| Modelo local multilingüe |
|
|
|
|
| Persistencia del índice |
|
| Troceado |
| (vacío → modo extractivo) | Endpoint compatible OpenAI |
| — / | Credenciales y modelo |
|
| Fragmentos recuperados |
|
| Whisper: |
| (auto) |
|
| — | Directorios con conectores externos |
Ejemplo con Ollama local:
export RAG_LLM_BASE_URL=http://localhost:11434/v1
export RAG_LLM_MODEL=llama3.1🏗️ Arquitectura
fuente ──▶ ConnectorRegistry (auto-descubrimiento + prioridad) ──▶ Document
│ text/file/url (F1) │ audio/video/youtube/drive (F2: ASR local)
▼ ▼ segments (start, end, text)
Chunker ──▶ Chunks ──▶ Embedder ──▶ VectorStore (Chroma)
(texto: párrafos) (media: por minuto [mm:ss])
│
pregunta ──▶ Retriever ◀──────────────────────────────────────┘
│ RetrievedChunks
▼
Generator (OpenAI-compat / echo) ──▶ Answer + Citations [1][2]… [00:00–01:05]Detalles en docs/ARCHITECTURE.md · Cómo agregar conectores en docs/ADDING_CONNECTORS.md.
🗺️ Hoja de ruta
Fase 1 (✅ v0.1.0) — núcleo + conectores
text/file/url+ ChromaDB + embeddings locales + API/CLI/MCP.Fase 2 (✅ v0.2.0) — conectores
audio(MP3),video(MP4),youtubeydrivecon ASR faster-whisper local y citas por minuto.Fase 3 (próxima) — búsqueda híbrida (BM25 + vectores), reranking, evaluación de calidad y mini UI de chat.
💡 Calidad del ASR: el modelo
basees rápido y ligero; para español u otros idiomas no ingleses recomendamosRAG_ASR_MODEL=small(omedium) — la precisión mejora notablemente. Audio con música de fondo o voces sintéticas degrada la precisión de cualquier Whisper.
🧰 Desarrollo
git clone https://github.com/rtostudioco/universal-rag && cd universal-rag
pip install -e ".[dev]"
pytest # suite completa (sin red, sin modelos pesados)
ruff check .📄 Licencia
MIT — Universal RAG Contributors.
This server cannot be deployed
Maintenance
Related MCP Connectors
Ingest, manage, and retrieve documents for RAG-powered AI applications
OCR, transcription, file extraction, and image generation for AI agents via MCP.
Self-hosted AI workspace: semantic RAG document search, long-term memory, and AI chat via MCP.
Cloud or self-hosted knowledge for AI agents: hybrid search, reranking, GraphRAG, scoped MCP tools.
Related MCP Servers
- AlicenseAqualityDmaintenanceProvides local Retrieval-Augmented Generation (RAG) capabilities using Ollama for embeddings and ChromaDB for vector storage. It enables users to ingest and perform semantic searches across PDF, Markdown, and TXT documents within MCP-compatible clients.429 npmMIT
- FlicenseNot gradedqualityDmaintenanceProvides tools for ingesting documents into a local vector database and retrieving relevant information via semantic search, enabling retrieval-augmented generation for MCP clients.6-
- FlicenseCqualityDmaintenanceProvides RAG tools with local vector retrieval and web fallback using Firecrawl, enabling document ingestion and querying through MCP stdio transport.3-
- AlicenseNot gradedqualityAmaintenanceA local-first RAG engine that ingests documents (PDF, Markdown, images, etc.) and provides hybrid search, reranking, and LLM answer synthesis via MCP for AI agent integration.37 PyPI3MIT