// the find
swirlai/swirl-search
AI Search & RAG Without Moving Your Data. Get instant answers from your company's knowledge across 100+ apps while keeping data secure. Deploy in minutes, not months.
Swirl is a federated search middleware that fans queries out to 40+ backends (M365, Jira, Confluence, databases, search engines, vector stores) and re-ranks unified results using LLM relevancy scoring — without indexing or moving your data. It's for enterprise teams who need a single search layer across scattered systems and don't want to build per-source connectors themselves. The MCP server makes it directly callable from Claude, Cursor, and similar tools.
The no-index architecture is the genuine differentiator: you're not ETL-ing data into a central store, so you sidestep data governance headaches entirely. The connector library is broad and maintained — 40+ providers with JSON config files you can actually read and modify. The processing pipeline model (query processors → result processors → mixers) is properly extensible without forking core code. MCP support is current and works with real clients, not a vaporware checkbox.
Django as the core framework means you're carrying a lot of session/ORM machinery for what is essentially an async fan-out proxy — Celery + Redis + Django is a heavier stack than this problem needs. The Docker quickstart is stateless by design, which means credentials disappear on restart; this will bite evaluators who don't read the fine print. LLM re-ranking only supports OpenAI/Azure OpenAI out of the box — using Claude or a local model requires custom connector work. Cosine similarity re-ranking via spaCy is done in-process on the Django worker, so result sets from many slow providers will block that worker for the duration.