General-purpose RAG MCP plugin — index anything, search with hybrid BM25+semantic, zero-config
Project description
omni-rag-mcp
A general-purpose RAG MCP plugin for token-efficient semantic search over any directory of files. Auto-ingests the current working directory on first search and provides hybrid search (BM25 + semantic), directory overview, structural analysis, and dependency graphs.
Zero-config by default: local Qdrant storage, ONNX embeddings, no external services required. Supports code, markdown, PDFs, CSVs, and more via pluggable extractors.
Quick Start
pip install omni-rag-mcp
omni-rag-setup
That's it. Restart Claude Code and the plugin auto-indexes your working directory on first search.
How It Works
Your Files -> Extractors -> Chunking -> Embedding -> Qdrant (local)
|
Claude Code -> MCP Tool Call -> Hybrid Search -> Relevant Snippets
- First search auto-ingests your working directory (extracts content, chunks, generates embeddings, stores in local Qdrant)
- Subsequent searches are fast hybrid lookups (BM25 + semantic) -- no re-ingestion needed
- Incremental updates detect git changes and only re-embed modified files
MCP Tools
| Tool | Purpose |
|---|---|
search |
Hybrid search over indexed files (auto-ingests if needed) |
search_by_file |
Search filtered by file path pattern |
get_context |
Compressed directory overview (languages, structure, dependencies) |
get_file_signatures |
Function/class signatures without reading every file |
get_dependency_graph |
Internal import/dependency graph |
stats |
Index size and configuration |
ingest |
Manual re-index (incremental by default, force=True for full) |
check_status |
Is the index current? Any uncommitted changes? |
Embedding Providers
Zero-config by default. Choose your provider:
| Provider | Config | Notes |
|---|---|---|
| ONNX (default) | None needed | Auto-downloads all-MiniLM-L6-v2 (23MB, 384-dim) |
| Ollama | OMNI_RAG_EMBEDDING_PROVIDER=ollama |
Requires Ollama running with model pulled |
| OpenAI | OMNI_RAG_EMBEDDING_PROVIDER=openai + OMNI_RAG_OPENAI_API_KEY=sk-... |
text-embedding-3-small |
| Voyage | OMNI_RAG_EMBEDDING_PROVIDER=voyage + OMNI_RAG_VOYAGE_API_KEY=... |
voyage-code-3 (optimized for code) |
Optional Extras
pip install omni-rag-mcp[pdf] # PDF extraction (PyMuPDF)
pip install omni-rag-mcp[docx] # Word document extraction
pip install omni-rag-mcp[image] # Image/OCR extraction (Tesseract + Pillow)
pip install omni-rag-mcp[all] # All optional extractors
Storage
By default, uses Qdrant in local/on-disk mode -- no Docker needed. Data stored in .omni-rag/ under your project directory.
For remote Qdrant:
OMNI_RAG_QDRANT_MODE=remote
OMNI_RAG_QDRANT_HOST=your-host
OMNI_RAG_QDRANT_PORT=6333
Configuration
All settings via environment variables with OMNI_RAG_ prefix. See config/.env.example for the full reference.
Legacy RAG_ prefix variables are still supported with deprecation warnings.
Development
# Install with dev dependencies
pip install -e ".[dev]"
# Run tests
python -m pytest tests/ -v
# Health check
python scripts/health_check.py
Manual MCP Registration
If omni-rag-setup doesn't work, add this to your Claude Code MCP config:
{
"mcpServers": {
"omni-rag": {
"command": "omni-rag"
}
}
}
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file omni_rag_mcp-3.0.1.tar.gz.
File metadata
- Download URL: omni_rag_mcp-3.0.1.tar.gz
- Upload date:
- Size: 172.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1c75f840de0284f3ddad62a9ad48f28240936e595e7bc0101087e20d62a5cf77
|
|
| MD5 |
fecd60f5824ac763357c70dba1e43be6
|
|
| BLAKE2b-256 |
84c6e922f321af87775caf7d5b9c4b67393ea83ce7f6eaa691da5bb03add4e76
|
Provenance
The following attestation bundles were made for omni_rag_mcp-3.0.1.tar.gz:
Publisher:
ci.yml on Suyash2013/codebase-rag-mcp
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
omni_rag_mcp-3.0.1.tar.gz -
Subject digest:
1c75f840de0284f3ddad62a9ad48f28240936e595e7bc0101087e20d62a5cf77 - Sigstore transparency entry: 1338808593
- Sigstore integration time:
-
Permalink:
Suyash2013/codebase-rag-mcp@2fc9ff7656eeaa95b728f296350b7ce24bac34d5 -
Branch / Tag:
refs/tags/v3.0.1 - Owner: https://github.com/Suyash2013
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
ci.yml@2fc9ff7656eeaa95b728f296350b7ce24bac34d5 -
Trigger Event:
push
-
Statement type:
File details
Details for the file omni_rag_mcp-3.0.1-py3-none-any.whl.
File metadata
- Download URL: omni_rag_mcp-3.0.1-py3-none-any.whl
- Upload date:
- Size: 55.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
56f79d413bc42f2f9c4b5c70ee8f3a3339581ac31587cc5c1f377d1b310d9219
|
|
| MD5 |
a99ec3fa73f1e9d7edf2e9aca4b3d35a
|
|
| BLAKE2b-256 |
b4075f8ad26e1e2ae56a8caac45dc8cfc49330a95bfa3bef89023641369150fe
|
Provenance
The following attestation bundles were made for omni_rag_mcp-3.0.1-py3-none-any.whl:
Publisher:
ci.yml on Suyash2013/codebase-rag-mcp
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
omni_rag_mcp-3.0.1-py3-none-any.whl -
Subject digest:
56f79d413bc42f2f9c4b5c70ee8f3a3339581ac31587cc5c1f377d1b310d9219 - Sigstore transparency entry: 1338808598
- Sigstore integration time:
-
Permalink:
Suyash2013/codebase-rag-mcp@2fc9ff7656eeaa95b728f296350b7ce24bac34d5 -
Branch / Tag:
refs/tags/v3.0.1 - Owner: https://github.com/Suyash2013
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
ci.yml@2fc9ff7656eeaa95b728f296350b7ce24bac34d5 -
Trigger Event:
push
-
Statement type: