--- title: RAG Books MCP v2 (ESL+ISLP+FES+PDSH+R4DS) emoji: 📖 colorFrom: indigo colorTo: purple sdk: gradio sdk_version: 5.50.0 app_file: app.py pinned: false license: apache-2.0 short_description: MCP v2 RAG sobre 5 libros (uso académico). tags: - mcp-server-track - rag - statistical-learning - chromadb - educational --- # 📖 RAG Books MCP v2 — ESL + ISLP + FES + PDSH + R4DS Servidor MCP que expone búsqueda semántica sobre cinco libros de referencia de Statistical Learning, Data Science y Data Wrangling, accesible por UI web y por clientes MCP (Kiro, Claude Desktop, Cursor, etc.). | Libro | Autores | Rol | |---|---|---| | **ESL** — *The Elements of Statistical Learning* | Hastie, Tibshirani, Friedman | Teoría rigurosa | | **ISLP** — *An Introduction to Statistical Learning with Python* | James, Witten, Hastie, Tibshirani | Teoría intuitiva con Python | | **FES** — *Feature Engineering and Selection* | Kuhn, Johnson | Heurísticas de FE | | **PDSH** — *Python Data Science Handbook* | VanderPlas | Implementación Python | | **R4DS** — *R for Data Science, 2nd Ed.* | Wickham, Çetinkaya-Rundel, Grolemund | EDA iterativo y data wrangling | > ℹ️ **R4DS y la cláusula NoDerivatives** — *R for Data Science* está bajo > licencia CC BY-NC-ND 3.0 US. Está incluido en este dataset únicamente para > uso académico no comercial, con atribución explícita a sus autores. Si los > autores o el editor (O'Reilly) consideran que excede su política, abre un > issue y se retirará en menos de 24 h. Procedimiento y trazabilidad en el > [DATA_CARD del dataset](https://huggingface.co/datasets/gusdelact/rag-esl-islp-chromadb). > ⚠️ **R4DS está escrito en R/tidyverse**, no en Python. El valor de su > indexación son los principios de EDA (ciclo iterativo, qué mirar primero, > heurísticas de variación/covariación) que se traducen 1-a-1 a pandas/seaborn. > El cliente MCP debe presentar el código resultante en el lenguaje del > usuario, no copiar R como solución. ## v1 vs v2 - **v1:** la base ChromaDB se empaqueta dentro del Space. - **v2 (este Space):** la base ChromaDB se carga del dataset HF [`gusdelact/rag-esl-islp-chromadb`](https://huggingface.co/datasets/gusdelact/rag-esl-islp-chromadb) vía `snapshot_download`. La primera tool call descarga ~95 MB; las siguientes son cache hit. ## Endpoint MCP ``` https://-.hf.space/gradio_api/mcp/ ``` ## Conexión desde un cliente MCP ```jsonc { "mcpServers": { "rag-books-mcp-v2": { "command": "npx", "args": [ "-y", "mcp-remote", "https://-.hf.space/gradio_api/mcp/" ] } } } ``` ## Variables de entorno reconocidas | Variable | Default | Descripción | |---|---|---| | `RAG_CHROMA_DATASET` | `gusdelact/rag-esl-islp-chromadb` | Repo del dataset con la base ChromaDB. | | `RAG_CHROMA_REVISION` | `main` | Revision (branch/tag/commit) a descargar. Recomendado pinear a `v2.2.0`. Usa `v2.1.0` si quieres la versión sin R4DS. | | `RAG_CHROMA_CACHE_DIR` | `/data/chroma_db` (si existe `/data`) o `~/.cache/...` | Cache local de la descarga. | | `RAG_CHROMA_DIR` | — | Si está set y la carpeta existe, omite el download. | | `HF_TOKEN` | — | Solo si el dataset es privado. | ## Tools | Tool | Descripción | |------|-------------| | `search_theory(query, book, top_k)` | Búsqueda semántica en los 5 libros. `book ∈ {esl, islp, fes, pdsh, r4ds, both, all}`. | | `get_section(book, chapter, section, max_chunks)` | Sección específica por referencia. | | `cite_foundation(topic, detail_level)` | Fundamentación teórica multi-libro. | | `list_available_topics()` | Lista capítulos y secciones indexados. | ## Stack - **Embeddings:** `sentence-transformers/all-MiniLM-L6-v2` (local, sin API key). - **Vector store:** ChromaDB descargado de HF Hub. - **UI / MCP:** Gradio con `mcp_server=True`. - **Chunks publicados:** 3689 (1093 ESL + 884 ISLP + 465 FES + 563 PDSH + 684 R4DS).