knowledge-rag
Sistema RAG local para Claude Code con búsqueda híbrida (semántica + BM25), reordenamiento con cross-encoder, fragmentación consciente de Markdown, 9 formatos de archivo, observador de archivos y 12 herramientas MCP. Cero servidores externos. pip install knowledge-rag
Documentación
knowledge-rag
El servidor RAG local, primero para MCP, para Claude Code, Cursor y todos los agentes de IA.
Búsqueda híbrida · Reordenamiento con cross-encoder · 35 formatos de archivo · 100% local · Cero nube · Infraestructura de nivel empresarial integrada.
pip install knowledge-rag → restart Claude Code → search_knowledge("your query")
Inicio rápido · Por qué knowledge-rag · Comparar · Características empresariales · Documentación
⭐ Historial de estrellas
Gráfico actualizado diariamente por GitHub Action
🎯 Por qué knowledge-rag
La mayoría de los frameworks RAG caen en una de tres trampas: (1) requieren que envíes tus datos a una API en la nube, (2) te dan 300 bloques de construcción y 0 valores predeterminados con opinión, o (3) incluyen RAG como una característica del 5% de una plataforma mucho más grande que no pediste.
knowledge-rag hace una cosa bien: es el servidor RAG local nativo de MCP que Claude Code, Cursor, Windsurf, VS Code, Cline, Gemini CLI y Zed pueden buscar de inmediato — con infraestructura empresarial (autenticación bearer, métricas Prometheus, limitación de tasa, sondas de salud, registro JSON estructurado, reindexación sin tiempo de inactividad) que ningún otro OSS centrado en RAG incluye de serie.
🔒 100% local, 0% nubeTus archivos nunca salen de la máquina. Sin bloqueo de proveedor, sin dolor de cabeza por residencia de datos, sin dependencia forzada de la nube. Cumplimiento LGPD / GDPR / HIPAA por arquitectura — porque no hay nada que cumplir cuando nada sale. |
🚀 Configuración sin fricción
|
🛡️ OSS de grado de producciónPuerta de calidad de 7 pilares en cada PR (35+ verificaciones automatizadas), matriz CI de 9 celdas OS×Python (Linux + Windows + macOS × 3.11/3.12/3.13), pruebas de caos nocturnas + pruebas de resistencia de 50K iteraciones + pruebas de mutación. 700+ pruebas. 0 regresiones conocidas. |
💰 Cero costo continuoSin facturas de tokens. Sin nivel SaaS. Sin características de pago ocultas detrás de un muro. Licencia MIT, para siempre. Se ejecuta en la laptop que ya tienes — GPU opcional, CPU funciona bien con FastEmbed ONNX. |
📊 Cómo se compara knowledge-rag con otros frameworks RAG
Auditamos 16 frameworks y plataformas RAG populares (LlamaIndex, LangChain, ChromaDB, Weaviate, Qdrant, RAGFlow, LightRAG, DSPy, GraphRAG, Haystack, RAG-Anything, kotaemon, txtai, llmware, Dify, open-webui, FastGPT) para que puedas elegir con honestidad.
Leyenda: ✅ integrado · 🟡 plugin / nivel de pago / parcial · ❌ no disponible · ⚠️ preocupación de licencia o predeterminado
| Dimensión | 🎯 knowledge-rag | LlamaIndex | LangChain | Haystack | RAGFlow | txtai | open-webui | Dify | Qdrant |
|---|---|---|---|---|---|---|---|---|---|
| 100% local, cero nube | ✅ | 🟡 | ✅ | 🟡 | 🟡 | ✅ | ✅ | 🟡 | 🟡 |
| Nativo MCP (Claude/Cursor) | ✅ 13 herramientas | 🟡 paquete | 🟡 adaptador | 🟡 envoltorio | 🟡 complemento | ✅ | ✅ consumidor | ✅ | ❌ |
| Híbrido BM25 + semántico | ✅ 128× más rápido | 🟡 | 🟡 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| Reordenamiento con cross-encoder | ✅ integrado | ❌ | 🟡 | ✅ | ✅ fusionado | ❌ | ✅ | 🟡 | 🟡 |
| Autenticación bearer integrada | ✅ | ❌ | ❌ | ❌ núcleo | ❌ | 🟡 | ✅ RBAC | ✅ OAuth2 | ✅ |
Prometheus /metrics | ✅ | ❌ | ❌ | ❌ núcleo | ❌ | ❌ | ✅ OTel | ❌ | ✅ |
| Limitación de tasa | ✅ ventana deslizante | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ | ✅ | ✅ |
Sondas de salud (/health) | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | 🟡 | 🟡 | ✅ |
| Registro JSON estructurado | ✅ opt-in | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ OTel | 🟡 | ✅ |
| Reindexación sin tiempo de inactividad | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ |
| Reindexación asíncrona en segundo plano | ✅ + sondeo | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | 🟡 |
| GPU CUDA opcional | ✅ 12 auto | ❌ | 🟡 | ✅ | ✅ | ✅ | ✅ | 🟡 | 🟡 |
| Formatos de archivo integrados | ✅ 20 | 0 (LlamaParse=$) | 50+ plugins | ✅ 36+ | 8+ | ? | ? | ~10 | ❌ |
| Configuración < 5 min POC | ✅ pip 1-liner | ✅ | ✅ | ✅ | ❌ 16GB RAM | ✅ | ✅ docker | ✅ docker | ✅ |
| Caos nocturno + resistencia + mutación | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
| Licencia | ✅ MIT | MIT | MIT | Apache-2.0 | Apache-2.0 | Apache-2.0 | ⚠️ preservando | ⚠️ restrictiva | Apache-2.0 |
Las 5 dimensiones donde knowledge-rag es único: sondas de salud + registro JSON + Prometheus + límite de tasa + autenticación bearer simultáneamente integrados en un servidor MCP OSS centrado en RAG. Reindexación sin tiempo de inactividad + reindexación asíncrona en segundo plano + caos/resistencia/mutación nocturnos están documentados en el README de nadie más.
🚀 Inicio rápido (3 minutos, de cero a tu primera consulta)
Elige tu ruta de integración — knowledge-rag envía el mismo servidor a través de cada canal.
Ruta 1 — Claude Code, Cursor, Windsurf, Cline, VS Code, Gemini CLI, Zed (MCP)
pip install knowledge-rag
knowledge-rag init # scaffolds config.yaml + documents/
Coloca tus PDFs, markdown, archivos de código en documents/. Reinicia tu cliente MCP. Pregúntale:
search_knowledge("your query")
Eso es todo. La primera consulta carga el modelo de embeddings ONNX (~200MB, descarga única). Las consultas posteriores se almacenan en caché y alcanzan latencia de sub-segundo.
Ruta 2 — Servidor HTTP / SSE (multi-usuario, aislado, con balanceo de carga)
# config.yaml
server:
transport: "sse" # or "streamable-http"
host: "0.0.0.0"
port: 8179
auth:
bearer_token: "your-secret-token"
rate_limit:
enabled: true
requests_per_minute: 60
metrics:
enabled: true
port: 9179
logging:
format: "json" # ELK / Loki / Datadog / CloudWatch ready
knowledge-rag --transport sse
- Sonda de salud:
curl http://your-host:8179/health→ 200 + payload JSON - Recolección Prometheus:
http://your-host:9179/metrics - Despachador MCP: autenticado mediante
Authorization: Bearer your-secret-token
Ruta 3 — Docker (modelos pre-descargados, listo para aislamiento)
docker pull ghcr.io/lyonzin/knowledge-rag:latest
docker run -v $(pwd)/documents:/app/documents -p 8179:8179 ghcr.io/lyonzin/knowledge-rag:latest
Guía de instalación completa con los 5 métodos, 8 configuraciones de cliente MCP y configuración de GPU: docs/INSTALLATION.md →
🤖 Habilidades listas para usar para agentes de IA
Instalar knowledge-rag le da a tu agente 13 herramientas MCP. No le dice al agente cuándo usarlas. Eso es lo que resuelve la carpeta skills/ — habilidades de comportamiento listas para usar para Claude Code, Cursor, Windsurf, Cline, Zed, VS Code Copilot que convierten "IA con acceso a RAG" en "IA que realmente usa RAG primero".
10 habilidades, con licencia MIT, organizadas por tipo:
| # | Habilidad | Qué hace |
|---|---|---|
| 1 | rag-check-first | Busca en el corpus antes de responder cualquier afirmación técnica |
| 2 | rag-cite-sources | Cada afirmación incluye citas path:line |
| 3 | rag-onboard-context | La primera interacción de una sesión sondea qué está indexado |
| 4 | rag-deep-dive | Perforación de 3 pasos: search → fetch → find similar |
| 5 | rag-web-fallback | Solo accede a la web cuando el RAG local devuelve vacío |
| 6 | rag-troubleshoot | Bug / error → RAG primero para correcciones previas |
| 7 | rag-code-review | La revisión consulta ADRs / patrones antes de comentar |
| 8 | rag-index-decisions | Después de una decisión, indexa de nuevo — cierra el ciclo de retroalimentación |
| 9 | rag-security-first | Tareas de seguridad: MITRE / CVE / runbook primero |
| 10 | rag-evaluate-quality | Chequeo semanal — MRR@5 · Recall@5 · Precision@5 |
Instalación — elige la ruta más corta para tu máquina:
# Option 1 — Via skills.sh (needs Node — one command, zero clone)
npx skills add lyonzin/knowledge-rag
# Option 2 — Via our install.sh (no Node needed; works on Linux/macOS/WSL/Git Bash)
curl -fsSL https://raw.githubusercontent.com/lyonzin/knowledge-rag/master/skills/install.sh | bash
Ambas reinician Claude Code y listo. La opción 2 admite --project, --only rag-check-first,rag-cite-sources, --dry-run, --help.
Para Cursor, Windsurf, Cline e instrucciones manuales completas → skills/README.md · Catálogo completo con cadenas de habilidades → skills/CATALOG.md
🛠️ Las 13 herramientas MCP que recibe tu agente
Una vez instalado, tu agente de IA recibe estas 13 herramientas automáticamente:
| Herramienta | Propósito |
|---|---|
search_knowledge | Semántico híbrido + BM25 con reordenamiento con cross-encoder |
get_document | Recupera el contenido completo de un documento |
search_similar | Encuentra documentos similares a una referencia |
evaluate_retrieval | Mide MRR@5 · Recall@5 · Precision@5 |
add_document | Indexa un nuevo documento mediante MCP |
update_document | Re-indexa un documento modificado |
remove_document | Elimina un documento + todos sus fragmentos |
add_from_url | Obtiene, sanitiza e indexa una URL |
list_documents | Enumera documentos indexados |
list_categories | Auto-etiquetado por ruta de carpeta |
get_index_stats | Tamaño del corpus, tasa de aciertos de caché, dimensión de embeddings |
reindex_documents | Reconstrucción incremental inteligente O nuclear |
get_reindex_status | Sondeo de progreso en vivo (reindexación asíncrona) |
Referencia completa de API con detalles de parámetros, esquemas de retorno, ejemplos: docs/API.md →
🏢 Características empresariales (integradas, cero configuración)
Cada framework RAG afirma ser "listo para producción". Esto es lo que knowledge-rag incluye en el núcleo OSS, verificado por pruebas de regresión, que los competidores o ponen detrás de un muro de pago, o convierten en plugin, o simplemente no tienen.
Seguridad
|
Observabilidad
|
Escala y rendimiento
|
Fiabilidad
|
💼 Casos de uso (corpus reales, equipos reales)
Equipos de seguridad — Red / Blue / CTF
Preajuste: cybersecurity.yaml · 8 categorías · 200+ palabras clave de enrutamiento · 69 expansiones de consulta
Ingiere MITRE ATT&CK, informes de amenazas, writeups de exploits, informes de incidentes. Busca desde Claude Code con search_knowledge("privilege escalation windows") y obtén recuperación instantánea en todo tu corpus. Aislado — nada sale del portátil.
Equipos de desarrollo — Documentos de diseño, Runbooks, Código
Preajuste: developer.yaml · 9 categorías · 150+ palabras clave de enrutamiento · 50+ expansiones
Reemplaza la búsqueda en Confluence. Ingiere documentos de arquitectura, ADRs, runbooks, código, especificaciones de API. Los desarrolladores preguntan a su agente de IA "cómo autenticamos el servicio de pagos" y obtienen el ADR exacto + la cita del archivo de implementación.
Laboratorios de investigación — Papers, Cuadernos, Datasets
Preajuste: research.yaml · 9 categorías · 100+ palabras clave de enrutamiento · 40+ expansiones
Indexa papers de arXiv, cuadernos de laboratorio, documentación de datasets. La búsqueda semántica encuentra papers por intención, no solo por palabras clave — el reranking con cross-encoder destaca el realmente relevante en lugar de cinco que comparten un término.
Base de conocimiento empresarial — Aislada, auditable
Preajuste: general.yaml · pizarra en blanco, búsqueda semántica pura
Despliega vía SSE en una sola VM. 40+ usuarios autenticados mediante token bearer, con límite de tasa, monitoreados con Prometheus, sondas /health conectadas a tu balanceador de carga, logs JSON enviados a Datadog. Sin llamadas a la nube. Cumple con los requisitos de localización de datos de LGPD, GDPR e HIPAA por diseño.
Verificado a escala: reproducción en producción sobre un corpus de 5 889 documentos / 75 016 chunks con consultas concurrentes durante una reconstrucción nuclear — cero tiempo de inactividad, cero errores (ver CHANGELOG v4.8.3).
🏗️ Arquitectura de un vistazo
Vista de extremo a extremo de cómo se conectan los clientes MCP, el pipeline de recuperación, el almacenamiento y la infraestructura empresarial. Cada flecha es una ruta de código real — nada de lo que se muestra aquí es aspiracional.
flowchart TB
subgraph CLIENTS["MCP Clients (any of these)"]
C1[Claude Code]
C2[Claude Desktop]
C3[Cursor]
C4[Windsurf]
C5[VS Code · Cline · Gemini CLI · Zed]
end
subgraph TRANSPORT["Transport Layer"]
T1[stdio<br/>1 process per client]
T2[SSE / streamable-http<br/>1 server serves N clients]
end
subgraph MIDDLEWARE["ASGI Middleware Chain (HTTP mode)"]
M1[HealthMiddleware<br/>/health · /healthz]
M2[BearerAuthMiddleware<br/>constant-time compare]
M3[Rate Limiter<br/>sliding window]
end
subgraph MCP["13 MCP Tools (frozen contract)"]
MT1[search_knowledge]
MT2[get_document · search_similar]
MT3[add_document · add_from_url · update · remove]
MT4[reindex_documents · get_reindex_status]
MT5[list_documents · list_categories · get_index_stats · evaluate_retrieval]
end
subgraph SEARCH["Retrieval Pipeline"]
R[Query Router<br/>lexical vs semantic]
F[FTS5 Fast-Path<br/>opt-in · lt 10ms]
BM[BM25 Inverted Index<br/>128x faster than baseline]
SE[Semantic Search<br/>FastEmbed ONNX lazy-loaded]
RRF[Reciprocal Rank Fusion]
CE[Cross-Encoder Rerank<br/>MiniLM-L-6-v2]
QC[Query Cache<br/>LRU + 5-min TTL]
end
subgraph STORAGE["Storage (100% local)"]
CH[ChromaDB<br/>vectors + metadata<br/>WAL mode]
FT[SQLite FTS5<br/>lexical index<br/>WAL + busy-timeout]
MD[index_metadata.json<br/>durable state]
end
subgraph INGEST["Document Ingestion"]
FS[documents/ folder]
WD[Watchdog<br/>10s debounce]
PA[35 Parsers<br/>MD · PDF · DOCX · code · IaC · IPYNB]
CK[Chunker<br/>markdown-aware · code-aware]
EM[FastEmbed ONNX<br/>384D bge-small-en-v1.5]
DD[SHA256 Dedup]
SW[Zero-downtime Staging Swap<br/>rollback on validation fail]
end
subgraph OBS["Enterprise Observability (opt-in)"]
PM[Prometheus /metrics<br/>7 canonical + histograms]
LG[Structured JSON logs<br/>ELK · Loki · Datadog · CloudWatch]
HC[Health payload<br/>version · uptime · cache stats]
end
subgraph CFG["Configuration"]
YM[config.yaml<br/>+ 5 domain presets]
end
C1 & C2 & C3 & C4 & C5 -->|MCP protocol| T1
C1 & C2 & C3 & C4 & C5 -.->|remote deploy| T2
T1 --> MCP
T2 --> M1 --> M2 --> M3 --> MCP
MT1 --> QC
QC -->|cache miss| R
R -->|lexical| F
R -->|semantic| SE
R -->|hybrid| BM
F --> CH
F --> FT
BM --> CH
SE --> CH
BM --> RRF
SE --> RRF
RRF --> CE
CE --> QC
MT2 --> CH
MT3 --> INGEST
MT4 --> SW
MT5 --> CH
FS --> WD --> PA
PA --> CK --> EM --> DD --> CH
SW -.->|atomic swap| CH
SW -.-> FT
CH -.-> MD
MCP -.->|instrumented| PM
MCP -.->|logs| LG
M1 --> HC
YM -.-> SEARCH
YM -.-> STORAGE
YM -.-> OBS
YM -.-> MIDDLEWARE
classDef client fill:#3776AB,stroke:#1e5a8a,color:#fff
classDef transport fill:#00A67E,stroke:#006e54,color:#fff
classDef middleware fill:#6b46c1,stroke:#4c1d95,color:#fff
classDef storage fill:#4b5563,stroke:#1f2937,color:#fff
classDef obs fill:#dc2626,stroke:#7f1d1d,color:#fff
classDef ingest fill:#f59e0b,stroke:#78350f,color:#fff
class C1,C2,C3,C4,C5 client
class T1,T2 transport
class M1,M2,M3 middleware
class CH,FT,MD storage
class PM,LG,HC obs
class FS,WD,PA,CK,EM,DD,SW ingest
Leyendo el diagrama (de arriba a abajo):
- Cualquier cliente MCP — Claude Code, Cursor, Windsurf y otros 5 — se conecta mediante el transporte de tu elección (stdio para uso personal, SSE/streamable-http para equipos).
- El modo HTTP encadena 3 middlewares ASGI en orden: primero las sondas de salud (siempre respondidas), luego la autenticación bearer (protegida con
WWW-Authenticate), y luego el limitador de tasa (ventana deslizante). - Las 13 herramientas MCP están decoradas con
@rate_limited+@instrument— Prometheus cuenta cada llamada, el limitador de tasa aplica RPM+burst, ambos con costo cero cuando están deshabilitados. search_knowledgeverifica primero la caché de consultas; un fallo de caché se enruta a través del Query Router (clasificador regex) ya sea a la ruta rápida FTS5 (léxica) o al pipeline híbrido (BM25 + semántico + RRF + reranking con cross-encoder).- El almacenamiento es 100% local: ChromaDB (modo WAL) para vectores + metadatos, SQLite FTS5 (WAL + busy-timeout) para la ruta rápida léxica,
index_metadata.jsonpara estado duradero. - La ingesta de documentos se ejecuta continuamente: el watchdog observa
documents/, 35 analizadores manejan cada formato, el chunker respeta los límites de idioma, FastEmbed ONNX genera embeddings, SHA256 deduplica, y un intercambio de staging realiza reconstrucciones sin tiempo de inactividad con reversión ante fallos. - Observabilidad empresarial (opt-in) —
/metricsde Prometheus, logs JSON estructurados, payload/health— se conecta a los mismos puntos de instrumentación, sin necesidad de cambios de código. config.yaml(con 5 preajustes de dominio) controla cada subsistema — sin líos de variables de entorno, sin rutas codificadas.
Arquitectura completa — 4 diagramas Mermaid detallados (Descripción general del sistema · Flujo de consultas · Ingesta de documentos · efecto hybrid_alpha): docs/ARCHITECTURE.md
📄 35 formatos de archivo — analizados de forma nativa, sin necesidad de plugins
Cada analizador es consciente de chunks — Markdown se divide en encabezados ##, el código se divide en límites de función/clase, los cuadernos omiten salidas base64, los PDF usan PyMuPDF, las hojas de cálculo se extraen hoja por hoja. 33 formatos están habilitados por defecto; los 2 formatos MetaTrader son opt-in (agrégalos a documents.supported_formats en config.yaml).
| # | Formato | Extensión | Analizador | Predeterminado | Notas |
|---|---|---|---|---|---|
| 1 | Markdown | .md | Consciente de secciones (divide en ##) | Sí | Los encabezados se conservan como límites de chunk |
| 2 | Texto plano | .txt | Chunking de tamaño fijo | Sí | 1000 caracteres + 200 de superposición |
| 3 | .pdf | Extracción con PyMuPDF | Sí | Solo PDF basados en texto (sin OCR) | |
| 4 | Word | .docx | python-docx | Sí | Los encabezados se conservan como markdown |
| 5 | Excel | .xlsx | openpyxl | Sí | Extracción hoja por hoja |
| 6 | PowerPoint | .pptx | python-pptx | Sí | Extracción diapositiva por diapositiva |
| 7 | Jupyter Notebook | .ipynb | Analizador consciente de celdas | Sí | Solo celdas de Markdown + código; omite salidas/base64 |
| 8 | JSON | .json | Consciente de estructura | Sí | Extracción de pares clave-valor aplanados |
| 9 | CSV | .csv | Analizador basado en filas | Sí | Encabezados + filas como texto |
| 10 | XML | .xml | Analizador XML | Sí | Elemento raíz + metadatos de namespace |
| 11 | Python | .py | Analizador consciente de código | Sí | Funciones/clases como chunks |
| 12 | C Source | .c | Analizador consciente de código | Sí | Funciones / structs / includes extraídos |
| 13 | C/C++ Header | .h | Analizador consciente de código | Sí | Declaraciones de funciones + structs extraídos |
| 14 | C++ Source | .cpp | Analizador consciente de código | Sí | Clases / structs / includes extraídos |
| 15 | JavaScript | .js | Analizador consciente de código | Sí | Funciones / clases / imports (ESM + CJS) |
| 16 | React JSX | .jsx | Analizador consciente de código | Sí | Igual que el analizador JS |
| 17 | TypeScript | .ts | Analizador consciente de código | Sí | Funciones / clases / interfaces / enums / imports |
| 18 | React TSX | .tsx | Analizador consciente de código | Sí | Igual que el analizador TS |
| 19 | Go | .go | Analizador consciente de código | Sí | Funciones / structs / imports extraídos |
| 20 | Rust | .rs | Analizador consciente de código | Sí | Funciones / structs / enums / traits / imports use |
| 21 | Kotlin | .kt | Analizador consciente de código | Sí | Funciones (incl. miembros de clase) / clases extraídas |
| 22 | YAML | .yaml | Analizador YAML | Sí | Kubernetes kind / apiVersion / name extraídos |
| 23 | YAML | .yml | Analizador YAML | Sí | Igual que el analizador YAML |
| 24 | HuJSON | .hujson | Analizador HuJSON | Sí | JSON con comentarios + comas finales (p. ej., ACLs de Tailscale) |
| 25 | CUE | .cue | Analizador consciente de código | Sí | Imports / package extraídos |
| 26 | Protocol Buffers | .proto | Analizador Proto | Sí | Services / messages / RPCs extraídos |
| 27 | Rego | .rego | Analizador consciente de código | Sí | Políticas OPA — imports / package extraídos |
| 28 | SQL | .sql | Analizador SQL | Sí | Nombres de tablas + tipos de sentencias extraídos |
| 29 | Shell | .sh | Analizador Shell | Sí | Nombres de funciones extraídos |
| 30 | jq | .jq | Analizador Shell | Sí | Indexado como script estilo shell |
| 31 | Dockerfile | Dockerfile | Analizador de texto | Sí | Coincide por nombre de archivo exacto (sin extensión) |
| 32 | Makefile | Makefile | Analizador de texto | Sí | Coincide por nombre de archivo exacto (sin extensión) |
| 33 | Tiltfile | Tiltfile | Analizador consciente de código | Sí | Starlark — funciones def / load() extraídos |
| 34 | MQL4 Source | .mq4 | Analizador de código | No | MetaTrader — opt-in vía documents.supported_formats |
| 35 | MQL4 Header | .mqh | Analizador de código | No | MetaTrader — opt-in vía documents.supported_formats |
Habilitar un formato opt-in — agrega la extensión a
documents.supported_formatsen tuconfig.yaml:documents: supported_formats: [".md", ".pdf", ".mq4", ".mqh"]
Referencia completa del analizador con notas por formato: docs/CONFIGURATION.md
🔌 Elige tu integración MCP
|
Claude Code |
Claude Desktop |
Cursor |
Windsurf |
VS Code |
Cline · Gemini CLI · Zed |
Guía completa de configuración de clientes con esquemas JSON por cliente: docs/INSTALLATION.md#use-with-other-mcp-clients →
⚠️ Modelo operativo — léelo una vez. Tu cliente MCP (Claude Desktop, Code, Cursor, etc.) genera y posee el proceso del servidor knowledge-rag. NO ejecutes también
knowledge-ragen una terminal mientras tu cliente MCP esté abierto — dos procesos de escritura contra el mismodata_dircorrompen el segmento HNSW de ChromaDB en Windows (ver issue #216). Línea base recomendada: agrega"KNOWLEDGE_RAG_SINGLE_INSTANCE": "1"al bloqueenvde tu configuración MCP como red de seguridad. Explicación completa + cómo ejecutar comandos CLI de forma segura: docs/single-instance.md.
⚙️ Configuración en 30 segundos
# config.yaml — everything is optional; defaults just work
paths:
documents_dir: "./documents"
data_dir: "./data"
models:
embedding:
profile: "compact" # "compact" | "quality" | "multilingual" | "custom"
gpu: "auto" # "auto" | "true" | "false"
reranker:
enabled: true # cross-encoder rerank
search:
default_results: 5
max_results: 100
server: # optional — SSE / HTTP mode
transport: "stdio" # or "sse" / "streamable-http"
auth:
bearer_token: "" # set a secret to enable auth
rate_limit:
enabled: false
metrics:
enabled: false
logging:
format: "text" # or "json"
Preajustes preconstruidos: cybersecurity.yaml · developer.yaml · research.yaml · general.yaml · multilingual.yaml
Referencia completa de configuración — cada campo, cada valor predeterminado, guía de ajuste: docs/CONFIGURATION.md →
🔒 Seguridad y cumplimiento
knowledge-rag está diseñado para equipos que no pueden permitir que sus documentos salgan del perímetro.
| Requisito | Cómo lo cumple knowledge-rag |
|---|---|
| Localización de datos (LGPD / GDPR / HIPAA) | 100% on-premise, cero llamadas de red de salida después de la descarga inicial del modelo |
| Despliegue aislado | Modelos ONNX precargados; establece HF_HUB_OFFLINE=1 para forzar cero red |
| Monitoreo de CVE | Dependabot (semanal) + pip-audit + Socket + CodeQL |
| Seguridad de la cadena de suministro | PyPI Trusted Publishing vía OIDC (sin tokens de larga duración) |
| Divulgación de vulnerabilidades | Aviso de seguridad privado vía SECURITY.md |
| Atestaciones de lanzamiento firmadas | Atestaciones de lanzamiento de GitHub en cada versión publicada |
| Compilaciones reproducibles | requirements.txt bloqueado con versiones fijadas |
| Acceso autenticado | Middleware de token bearer en transportes SSE / HTTP (comparación de tiempo constante, RFC 6750) |
| Límite de tasa | Ventana deslizante por cliente RPM + burst (opt-in, costo cero cuando está deshabilitado) |
| Registro listo para auditoría | Logs JSON estructurados opt-in → envíalos a tu SIEM |
| Defensas contra path traversal | Protecciones CWE-22 / CWE-59 en 6 herramientas CRUD |
| Defensa contra inyección de prompts | Saneamiento de 3 capas en add_from_url (OWASP LLM01:2025) |
Insignia de OpenSSF Best Practices: aprobada · ID de proyecto #13864
📈 Números que importan
- 26 000+ descargas totales en PyPI · 250+ estrellas en GitHub · 70+ equipos empresariales (privados + comunidad)
- 700+ pruebas recopiladas · 1.33:1 proporción prueba-código · puerta de tendencia codecov ±0.5pp
- 35+ comprobaciones de estado en cada PR (matriz OS×Python de 9 celdas · 7 pilares de calidad)
- 35 formatos de archivo analizados nativamente · 13 herramientas MCP congeladas · 5 preajustes de dominio (cibernético · desarrollo · investigación · multilingüe · general)
- BM25 128× más rápido que la línea base · cross-encoder +1.88pp Recall@10 (p<0.001) · caché −40% latencia p95
- 1 800+ archivos / 39 K fragmentos indexados en < 3 min en una computadora portátil moderna (corpus típico de desarrollador)
- Verificado en producción en corpus de 5 889 documentos / 75 016 fragmentos
Panel de referencia pública: https://lyonzin.github.io/knowledge-rag/
📚 Documentación
| Documento | Qué contiene |
|---|---|
| Guía de instalación | 5 métodos de instalación · 8 integraciones de clientes MCP · configuración de GPU |
| Referencia de API | Referencia completa de las 13 herramientas MCP |
| Referencia de configuración | Cada campo de config.yaml · preajustes · ajuste |
| Arquitectura | 4 diagramas Mermaid: Descripción general del sistema · Flujo de consultas · Ingestión · hybrid_alpha |
| Solución de problemas | 11 problemas comunes + soluciones |
| Guía de ruta rápida FTS5 | Ruta rápida léxica opcional: cuándo y cómo |
| Operaciones de reindexación | Reconstrucción sin tiempo de inactividad · reanudación · punto de control |
| Configuración de GPU | Instalación de CUDA 12 + solución de problemas |
| Migración a v4.8.0 | Perfil de incrustación · multilingüe · sin tiempo de inactividad |
| Política de seguridad | Modelo de amenazas · canal de divulgación |
| Contribuciones | Desarrollo · pruebas · proceso de PR |
| Registro de cambios | Todas las notas de versión desde v1.0.0 |
🤝 Comunidad y soporte
- Reportar un error → Abrir un issue
- Hacer una pregunta → Debates de GitHub
- Reportar una vulnerabilidad → Aviso de seguridad (privado)
- Contribuir → CONTRIBUTING.md
SLA de respuesta (mejor esfuerzo, proyecto comunitario):
- Informes de seguridad: dentro de 48 h
- Informes de errores con reproducción: dentro de 5 días hábiles
- Solicitudes de funciones: clasificadas en el próximo ciclo de versión
🗺️ Versiones recientes
- v4.8.5 (2026-08-13) — Observabilidad empresarial: endpoint
/health+ registro estructurado JSON opcional - v4.8.4 (2026-08-13) — Parche: correcciones de seguridad + durabilidad + defensivas
- v4.8.3 (2026-08-10) — Corrección crítica: endurecimiento de reconstrucción nuclear + reindexación inteligente en corpus de 50k+ fragmentos
- v4.8.2 (2026-08-10) — Versión opcional de ruta rápida léxica FTS5
- v4.8.0 (2026-08-06) — Base multilingüe + reindexación sin tiempo de inactividad
Historial completo: CHANGELOG.md →
📜 Licencia
Licencia MIT — LICENCIA. Para siempre. Sin ventas adicionales en la nube, sin doble licencia, sin cláusulas restrictivas. Haz un fork, vende derivados, intégralo en productos comerciales: la licencia no le importa.
🙏 Agradecimientos
Construido sobre los hombros de increíbles proyectos de código abierto:
- Anthropic MCP — Especificación del Protocolo de Contexto de Modelo + SDK de Python
- ChromaDB — base de datos vectorial que simplemente funciona
- FastEmbed — incrustaciones ONNX, sin inflación de PyTorch
- HuggingFace — alojamiento de modelos + cross-encoder
Xenova/ms-marco-MiniLM-L-6-v2 - BAAI — el modelo de incrustación
bge-small-en-v1.5
Colaboradores de la comunidad: @Hohlas · @eeshsaxena · Sergey Khokhlov · y todos los que presentaron issues o PRs.
Construido por Ailton Rocha (Lyon.) · Marca ⭐ si esto te ahorra tiempo · Reportar un problema · Contribuir
knowledge-rag — el servidor RAG local con prioridad MCP para Claude Code, Cursor, Windsurf y cada agente de IA.