RAG Tool Curator docs v0.1.0
Get Started

Installation

Two ways in: a real pip install, or copy the folders directly. Both are fully supported.

git clone https://github.com/Yashwanth-R19/rag-tool-curator.git
cd rag-tool-curator
pip install -e .

This installs tool_curator with its core dependencies only: sentence-transformers, faiss-cpu, rank-bm25, numpy. No web framework, no LLM SDK.

If you also want multilingual_normalizer’s Gemini backend:

pip install -e ".[normalizer]"

The normalizer extra adds google-genai. multilingual_normalizer’s abstract interface (BaseNormalizer, the get_normalizer factory, the English fast-path) has no dependency on it — you only need the extra if you actually instantiate GeminiNormalizer, or if you’re writing your own provider that happens to need it too.

Both packages import independently

from tool_curator import get_curator and from multilingual_normalizer import get_normalizer work with only the core install — installing or using one never pulls in the other's optional dependencies.

Option B — copy the folders

Both tool_curator/ and multilingual_normalizer/ are self-contained: no import reaches outside its own folder. Copy either (or both) directly into your project and install their dependencies manually:

pip install sentence-transformers faiss-cpu rank-bm25 numpy   # tool_curator
pip install google-genai                                     # multilingual_normalizer's Gemini backend

This is the right choice if you want the code vendored directly into your repo rather than tracked as an external dependency.

Requirements

  • Python 3.10+
  • No GPU required — all retrieval and the fast-path heuristic run on CPU. Only the optional Gemini translation call is a network request.

Running the bundled reference example

The example/ folder is a full reference deployment (a simulated university MCP system) used to validate both plug-ins end-to-end. It is not required to use either package — skip to Quickstart if you just want the plug-ins.

pip install -e ".[normalizer]"     # from the repo root — the example needs the Gemini extra
cd example
pip install -r requirements.txt    # MCP, Gemini SDK, pandas/openpyxl for the eval sheet, rich for the terminal UI
python main.py

You’ll be prompted for a persona (student / faculty / admin / executive) and a user ID, then dropped into an interactive session where every query prints the curator’s selection before the model responds.

Sequence diagram: settings load, MCP servers spawn, tools listed, role filter applied, curator index built from cache or from scratch
What happens between launching main.py and the first prompt: server startup, role filtering, and the curator's cache-hit/cache-miss index build.