index_codeLABSCO SUMMARY
Project detection is the feature — and the thing that goes wrong first.
Per-project collections are what make the search usable across a machine full of repositories, but they depend on the server knowing your actual working directory, which MCP clients do not always pass through. Check the reported project context before you conclude the index is empty. The GitHub half is a separate, larger surface bolted onto the same retrieval engine.
What it is
A context-aware RAG server backed by Qdrant. It detects the current project from markers such as .git or package.json and keeps each project's index in its own collection, so a search from one repository does not surface results from another unless you ask it to.
What you get
index_directoryindexes a whole tree with glob patterns and exclusions;index_codeandindex_configtake a single filesearch_codefilters by language and chunk type, andsearch_configfilters by file type and config path- Hybrid search combines semantic similarity with BM25 keyword matching, and results carry their own vector_score and bm25_score
- AST-based chunking keeps whole functions and classes intact for Python, JavaScript/TypeScript, Shell and Go
get_contextreports which project the server thinks you are in — the first thing to check when results look wrong- A GitHub side covering issues, sub-issues and Projects V2, including
github_list_projects,github_get_project_statusandgithub_smart_add_project_item
Requirements
The Python package qdrant-rag-mcp, version 0.3.4.post6. Python 3.10+ with uv, Docker for Qdrant itself, and the repository's ./scripts/setup.sh then ./install_global.sh. The server needs to know your real working directory: set MCP_CLIENT_CWD in the client config, pass --client-cwd, or export it at the start of the session. QDRANT_RAG_AUTO_INDEX=true keeps the index current as files change.
Setup effort
Build from source — clone the repository, then follow the steps on this page and add the configuration for your client
USE CASES
Finding code you half-remember
Search by what it does rather than the exact identifier, filtered to one language or to function-level chunks.
Tracking down a configuration value
Search the config collection by file type and config path instead of grepping every YAML in the tree.
Getting a fresh repository indexed
Index the directory with the glob patterns you care about, excluding vendored trees.
Working out why a search returned nothing
Ask what project context the server detected before re-indexing anything.
Moving issues onto a roadmap board
Add issues to a Projects V2 board and read back completion metrics.
23 tools
Listed in project docs. Your client may show a different list.
index_configindex_directoryreindex_directorysearchsearch_codesearch_configget_file_chunksdetect_changesget_contextswitch_projectclear_projecthealth_checkget_context_summarygithub_list_repositoriesgithub_list_projectsgithub_create_projectgithub_delete_projectgithub_add_project_itemgithub_update_project_itemgithub_get_project_statusgithub_create_project_viewgithub_smart_add_project_itemBEFORE YOU INSTALL
What to know first
Tools you get
23 tools named in the project's documentation.
Requires
- Python 3.10+
- GITHUB_TOKEN in your environment
INSTALLATION
Connect your client
Clone the repository, then follow the steps on this page and add the configuration for your client. This one is built from source rather than installed with a single command.
Server setup
git clone https://github.com/ancoleman/qdrant-rag-mcp ~/mcp-servers/qdrant-rag
cd ~/mcp-servers/qdrant-rag
./scripts/setup.sh
./install_global.shMCP Clients
Claude Code — user scope
claude mcp add qdrant-rag -s user ~/.mcp-servers/qdrant-rag-global.shThe configuration on this page does not set GITHUB_TOKEN; the project's instructions set it with an export line. That line reaches only programs started from the same terminal, so to supply GITHUB_TOKEN, start your client or the server from that terminal.