Self-hosted RAG system that exposes an MCP interface for CLI agents (Claude Code, Codex, Gemini). Ingests code files, documentation, and notes into a vector database, then serves relevant context on demand.
- Document ingestion — upload files via API or admin UI, automatic chunking and embedding
- Semantic search — query your knowledge base with natural language
- MCP interface — plug into any MCP-compatible CLI agent
- Admin UI — Streamlit panel for uploading documents and browsing the collection
- Python 3.12 / uv
- FastAPI — REST API for ingestion and search
- Streamlit — admin panel
- Qdrant — vector database
- BAAI/bge-m3 — embedding model (self-hosted)
# install dependencies
uv sync
# configure environment
cp .env.example .env
# edit .env with your Qdrant and embedding service addresses
# run the API server
uv run uvicorn conduit.api.app:app --reload
# run the admin UI
uv run streamlit run ui/app.pyuv run pytest # run tests
uv run ruff check src/ tests/ ui/ # lint
uv run ruff format src/ tests/ ui/ # format
uv run mypy src/ # type checksrc/conduit/
├── api/ # FastAPI app, routes, dependencies
├── core/ # Domain logic (chunking, embeddings, retrieval)
├── db/ # Qdrant client wrapper
├── mcp/ # MCP interface (TBD)
├── models/ # Pydantic schemas
└── config.py # Configuration (pydantic-settings)
ui/ # Streamlit admin panel
tests/ # pytest tests