Minima MCP Server for Local RAG Files
Run an MCP server for local RAG on files to enable fast, secure retrieval-augmented generation and offline document search.
Overview
Minima is an MCP (Model Context Protocol) server designed to make local RAG (retrieval-augmented generation) workflows fast, private, and simple. It indexes files on disk, builds a local vector index, and exposes an MCP-compatible HTTP API so LLMs or agent frameworks can request contextual documents at inference time. Running Minima locally avoids sending sensitive content to cloud vector stores and reduces latency for document-heavy prompts.
This server is useful for developers building private assistants, offline search for documentation, or any workflow that combines a local knowledge base with an LLM. Minima is lightweight, supports multiple storage and embedding backends, and can be deployed on a developer machine, VM, or container for secure, repeatable RAG pipelines.
Features
- MCP-compliant HTTP API for model context retrieval
- File-system based ingestion (PDF, text, Markdown, DOCX, etc.)
- Local vector index support (file-backed index for fast searches)
- Configurable embedding provider (local or remote)
- Chunking and metadata extraction for robust retrieval
- Simple CLI for indexing and serving
- Docker-friendly for isolated deployments
- Designed for low-latency, private RAG workflows
Installation / Configuration
Prerequisites:
- Git
- Docker (optional)
- Go toolchain (optional, for building from source)
Clone the repo:
Build from source (if the project is Go-based):
# build executable
# run the server with a simple config
Run with Docker (example):
Example config file (config.yaml):
server:
host: "0.0.0.0"
port: 8080
data:
docs_dir: "/data/docs"
index_dir: "/data/index"
indexing:
chunk_size: 1000
chunk_overlap: 200
filetypes:
embeddings:
provider: "openai" # or "hf", "local", etc.
model: "text-embedding-3-small"
api_key_env: "OPENAI_API_KEY"
vector_store:
backend: "faiss" # or "annoy", "sqlite", "pgvector"
params:
n_trees: 10
Configuration table (key meanings):
| Key | Description |
|---|---|
| server.port | Port for the MCP HTTP API (default 8080) |
| data.docs_dir | Directory containing files to index |
| data.index_dir | Where to persist the vector index |
| indexing.chunk_size | Max tokens/characters per chunk |
| embeddings.provider | Embedding service to use |
| vector_store.backend | Local vector index backend |
Indexing files (CLI example):
# index a folder of documents into the local index directory
Start the server:
# or if using docker, the container entrypoint might run `serve`
Available Resources
- GitHub repository: https://github.com/dmayboroda/minima
- MCP (Model Context Protocol) spec: use an MCP client or any HTTP client that can call the server’s MCP endpoints
- Supported vector backends: FAISS, Annoy, SQLite/PGVector (depends on build)
- Embedding providers: OpenAI, Hugging Face, or local embedding model