Vector search finds "improve error handling", BM25 finds an exact error string, the graph finds connected concepts and metadata filters handle tags and status — reciprocal rank fusion merges them so you do not choose in advance. The MCP process stays alive between queries, so the models load once rather than on every search.
A retrieval server that fuses vector similarity, BM25 keyword matching, knowledge-graph traversal and metadata filtering, running entirely on ONNX Runtime with local models.
- Five tools: search, index, add_document, health, list_sources
- Four retrieval layers merged with reciprocal rank fusion — FAISS vectors, SQLite FTS5 BM25, knowledge graph, metadata filters
- Cross-encoder reranking through ONNX Runtime, with no PyTorch in the install
- Incremental indexing — only nodes and edges affected by a changed file are rebuilt, with cascading deletes
- Header-aware chunking that preserves document structure and parent context
- Query expansion for acronyms, casing and spacing variants
- CPU-only, no GPU, no API keys, no external services
Pip install "velocirag[mcp]", then velocirag index ./my-docs and velocirag mcp. Point it at your data directory with VELOCIRAG_DB or the --db argument. Local models total around 80MB; the reranker downloads its model on first use.
One command — pip install "velocirag[mcp]"
