Labsco
MCP SERVER

Qdrant MCP Server

by steiner385

Semantic search over your own codebase — index it into Qdrant with OpenAI embeddings, then ask for the code that handles a thing rather than the string that names it.

Code Intelligence & Repository Indexing
Summary
The dry run is the feature people skip and then regret.

Embedding a large repository costs money per token, and this tells you the file count, the token estimate and the projected spend before it starts. Everything else follows from taking that seriously: incremental indexing so you pay once per change rather than once per run, batch and concurrency controls for staying under rate limits, and a background watcher so the index does not silently drift from the code. Two moving parts to keep running — Qdrant and the indexer — which is the trade for search that understands what code does.

What it is

A code-search server backed by a Qdrant vector database. A separate indexer walks your repository, embeds the files and stores them in Qdrant; the MCP server then answers meaning-based queries against that index, and a background process re-indexes files as they change.

What you get
  • Search by meaning rather than keyword — find all authentication code, or what is similar to a given class, without knowing the identifiers
  • Incremental indexing so only changed files are re-embedded, plus a force option for a full rebuild
  • A background indexer controlled with `qdrant-control start`, `status` and `stop`, keeping the index current as you work
  • Filtering that respects `.gitignore`, with `INCLUDE_PATTERNS` and `EXCLUDE_PATTERNS` for the rest
  • A cost estimate before you commit: `qdrant-indexer --dry-run` reports the file count, estimated tokens and estimated spend
  • Throughput controls — `--batch-size`, `--max-concurrent` and `--delay` — for staying inside API rate limits
  • A Python API for the same operations, and pluggable file processors for formats the default handling misses
Requirements

An OpenAI API key as `OPENAI_API_KEY`, since embeddings are generated per file, and a Qdrant instance — Docker locally on `http://localhost:6333`, or Qdrant Cloud with `QDRANT_URL` and `QDRANT_API_KEY`. Node.js 18+ and Python 3.8+. Install with `pip install qdrant-mcp-server`, which provides `qdrant-indexer`, `qdrant-control` and `qdrant-mcp`. Tunables include `QDRANT_COLLECTION_NAME` defaulting to `codebase`, `MAX_FILE_SIZE` at 1048576, `BATCH_SIZE` at 10, and `EMBEDDING_MODEL` defaulting to `text-embedding-3-small`. MIT licensed.