When the same answer lives in a Confluence page, a JIRA comment and a README, the useful question is which one contradicts the others — and that is a first-class search here rather than something you notice by accident. Setup is a two-step commitment: ingestion and serving are separate packages with separate runs, so budget time to get the source config right before the search quality means anything.
Two halves of one toolkit: an ingestion engine that pulls content from multiple sources, converts and chunks it, and writes vectors into Qdrant; and an MCP server that gives coding assistants intelligent search over what was ingested.
- `search` — semantic search across everything indexed, filterable by source type and project
- `hierarchy_search` — structure-aware search that understands parent-child document relationships and reports gaps in a documentation tree
- `attachment_search` — a dedicated path for files attached to pages and tickets
- Cross-document intelligence: `find_similar_documents`, `analyze_relationships`, `cluster_documents`, `find_complementary_content`, and `detect_document_conflicts` for contradictions between sources
- `expand_document`, `expand_cluster` and `expand_chunk_context` for pulling more context once a result looks right
- Connectors for Git, Confluence and JIRA (Cloud and Data Center), public docs and local files, with conversion of PDF, Office documents, images, audio, EPUB and ZIP
Install `qdrant-loader` and `qdrant-loader-mcp-server` from PyPI. A Qdrant instance reachable at `QDRANT_URL` with a `QDRANT_COLLECTION_NAME`, and an LLM provider for embeddings — OpenAI, Azure OpenAI, Ollama or a custom endpoint, configured in one unified block. Create a workspace, declare your sources in a config file, run the ingest, then start the MCP server pointing at the same config and env file.
One command plus a key — pip install qdrant-loader qdrant-loader-mcp-server, then supply credentials
