Lightweight self-hosted RAG knowledge base: Spring Boot 4 + Spring AI, SQLite/FTS5, hybrid retrieval with RRF, cited answers, MCP server
- ✓Open-source license (MIT)
- ✓Actively maintained (<30d)
- ✓Clear description
- ✓Documented (README)
git clone https://github.com/KiMelody/miniragDEEPSEEK_API_KEYEMBEDDING_API_KEYResumen de MCP Servers
# MiniRAG
[](https://github.com/KiMelody/minirag/actions/workflows/docker.yml)
[](LICENSE)


A self-hosted RAG knowledge base in a single Spring Boot process: SQLite storage, hybrid retrieval, cited answers, and a built-in MCP server. No vector database, no message queue.
[Live demo](https://minirag.kimelody.de5.net/) (ask the owner for the access code) · [Evaluation report](eval/eval-report.md)
## Features
- **Hybrid retrieval** — in-memory cosine + SQLite FTS5 (BM25), fused with RRF; optional LLM rerank
- **Cited answers** — clickable `[n]` citations; only sources actually cited are displayed
- **Streaming web UI** — SSE, typewriter rendering, markdown, retrieval-mode switcher (vector / hybrid / rerank)
- **Small footprint** — single process, ~250MB RSS, runs on a 1GB VPS
- **Multiple interfaces** — MCP server (SSE transport), REST API, web UI, WeChat Work callback integration
## Quick start
```bash
docker run -d --name minirag -p 18090:18090 --memory 512m \
-v $(pwd)/data:/app/data \
-e DEEPSEEK_API_KEY=sk-... \
-e EMBEDDING_API_KEY=sk-... \
ghcr.io/kimelody/minirag:latest
```
Open http://localhost:18090 and start asking. Data lives in `./data` (SQLite, created automatically).
## Configuration
| Env | Required | Default | Description |
|---|---|---|---|
| `DEEPSEEK_BASE_URL` | no | `https://api.deepseek.com` | Any OpenAI-compatible chat endpoint |
| `DEEPSEEK_API_KEY` | yes | — | Chat model API key |
| `EMBEDDING_BASE_URL` | no | `https://api.siliconflow.cn/v1` | OpenAI-compatible embeddings endpoint |
| `EMBEDDING_API_KEY` | yes | — | Embeddings API key |
| `EMBEDDING_MODEL` | no | `BAAI/bge-m3` | Embedding model |
| `DEMO_KEY` | no | — | Visitor access code for read APIs; unset = open (local dev) |
| `ADMIN_KEY` | no | — | Admin key required for ingest APIs |
## MCP
Two tools: `query(question, mode?)` — ask and get a cited answer; `ingest_text(docId, text, adminKey)` — add a document.
```json
{
"mcpServers": {
"minirag": {
"url": "http://localhost:18090/sse"
}
}
}
```
The hosted demo endpoint requires basic auth: `https://minirag.kimelody.de5.net/sse` (ask the owner for credentials).
## REST API
| Method | Path | Description |
|---|---|---|
| POST | `/api/chat` | Ask; returns answer + cited sources (JSON) |
| POST | `/api/chat/stream` | Same, streamed as SSE (`meta` / `token` / `sources` / `done`) |
| GET | `/api/search?q=&mode=` | Retrieval debug: `vector` \| `hybrid` \| `rerank` |
| POST | `/api/documents/text` | Ingest `{docId, text}` (requires `X-Admin-Key`) |
| POST | `/api/documents` | Ingest an uploaded file, multipart (requires `X-Admin-Key`) |
## Evaluation
An eval harness ships in [eval/](eval/): labeled question sets, Top-1 / Recall / MRR scoring over three retrieval modes — hybrid+rerank reaches Top-1 100% / MRR 1.0 on the demo set ([report](eval/eval-report.md)); a 20-question labor-law evaluation with corpus-cleaning scripts lives in [eval/law/](eval/law/eval-report.md). Bring your own corpus; raw source texts are not redistributed.
## Build from source
```bash
mvn package
java -jar target/minirag-0.1.0-SNAPSHOT.jar
```
Requires Java 21. API keys can be put in a `.env` file in the working directory (git-ignored).
## 中文说明
单进程私有化 RAG 知识库:SQLite 存储 + 混合检索(向量 + BM25,RRF 融合,可选 LLM 重排),回答带可点击引用角标,自带网页演示、REST API 与 MCP server(SSE),内存占用约 250MB,1GB 小服务器可跑。[在线演示](https://minirag.kimelody.de5.net/)(访问码联系作者)。
## License
[MIT](LICENSE)
Lo que la gente pregunta sobre minirag
¿Qué es KiMelody/minirag?
+
KiMelody/minirag es mcp servers para el ecosistema de Claude AI. Lightweight self-hosted RAG knowledge base: Spring Boot 4 + Spring AI, SQLite/FTS5, hybrid retrieval with RRF, cited answers, MCP server Tiene 0 estrellas en GitHub y su última actualización registrada es del 2026-10-15.
¿Cómo se instala minirag?
+
Puedes instalar minirag clonando el repositorio (https://github.com/KiMelody/minirag) o siguiendo las instrucciones del README en GitHub. ClaudeWave también te ofrece bloques de instalación rápida en esta misma página.
¿Es seguro usar KiMelody/minirag?
+
Nuestro agente de seguridad ha analizado KiMelody/minirag y le ha asignado un Trust Score de 87/100 (tier: Trusted). Revisa el desglose completo de comprobaciones superadas y flags en esta página.
¿Quién mantiene KiMelody/minirag?
+
KiMelody/minirag es mantenido por KiMelody. La última actividad registrada en GitHub es del 2026-10-15, con 0 issues abiertos.
¿Hay alternativas a minirag?
+
Sí. En ClaudeWave puedes explorar mcp servers similares en /categories/mcp, ordenados por popularidad o actividad reciente.
Despliega minirag en tu cloud
Lleva este repo a producción en minutos. Cada plataforma genera su propio entorno con variables de entorno editables.
¿Mantienes este repo? Añade un badge a tu README
Pega el badge en tu README de GitHub para mostrar que está auditado por ClaudeWave. Cada badge enlaza de vuelta a esta página y muestra el Trust Score actual.
[](https://claudewave.com/repo/kimelody-minirag)<a href="https://claudewave.com/repo/kimelody-minirag"><img src="https://claudewave.com/api/badge/kimelody-minirag" alt="Featured on ClaudeWave: KiMelody/minirag" width="320" height="64" /></a>Más MCP Servers
Reverse engineer anything with agents, from app behavior down to native binaries.
Fair-code workflow automation platform with native AI capabilities. Combine visual building with custom code, self-host or cloud, 400+ integrations.
User-friendly AI Interface (Supports Ollama, OpenAI API, ...)
An open-source AI agent that brings the power of Gemini directly into your terminal.
Real-time global intelligence dashboard. AI-powered news aggregation, geopolitical monitoring, and infrastructure tracking in a unified situational awareness interface
🕷️ An adaptive Web Scraping framework that handles everything from a single request to a full-scale crawl! Don't be shy, join here: https://discord.gg/EMgGbDceNQ and follow here for daily tips and tricks: https://x.com/Scrapling_dev