# Qdrant — MCP Server

> A vector database as a semantic memory layer for your agent.

**Source:** https://mcpplaygroundonline.com/mcp-servers/qdrant  
**Transport:** stdio  
**Requires auth:** Yes

---

## What it does

The server is built as a semantic memory layer rather than a database client. qdrant-store takes a piece of text plus optional structured metadata, embeds it with the configured model and writes it to a collection. qdrant-find takes a natural-language query, embeds it the same way and returns the closest matches with their metadata attached. That is the whole surface, and the narrowness is the point — a model picks correctly between two well-described tools far more reliably than between twenty. The detail that makes it genuinely flexible is that both tool descriptions are configurable by environment variable. Rewriting them turns the same server into a code-snippet memory, a decisions log or a support-ticket search, because the description is what the model reads when deciding whether to call it. It runs over stdio via uvx, or in SSE mode when you want to host it centrally, and can point at Qdrant Cloud, a self-hosted instance or a local on-disk path with no server at all.

## Tools exposed

- qdrant-store — embed a piece of text with optional metadata and store it in a collection
- qdrant-find — semantic search by natural-language query, returning matches and metadata
- TOOL_STORE_DESCRIPTION / TOOL_FIND_DESCRIPTION — rewrite what the model reads about each tool
- EMBEDDING_MODEL — swap the model used for both writing and querying
- QDRANT_LOCAL_PATH — run entirely on local disk with no Qdrant server

## Example queries you can run

- "Remember this debugging approach and why it worked, tagged with the service name."
- "Have we solved something like this connection-pool error before?"
- "Store this architecture decision with its date and the alternatives we rejected."
- "Find the three most relevant past incidents to what is happening now."

## Details

- **Recommended model:** anthropic/claude-sonnet-4.5 — Retrieval quality depends on the model writing a good query and judging which results are actually relevant. Sonnet 4.5 discards weak matches instead of citing them.
- **Transport:** stdio
- **Authentication:** Required — A Qdrant URL and API key for Cloud or a remote instance. Neither is needed if you run against a local on-disk path.
- **Official source:** [qdrant/mcp-server-qdrant — official repository](https://github.com/qdrant/mcp-server-qdrant)

## Connecting to Qdrant

### Environment variables

- `QDRANT_URL` — URL of the Qdrant instance, e.g. https://xyz.cloud.qdrant.io:6333. Omit if using QDRANT_LOCAL_PATH.
- `QDRANT_API_KEY` — API key for Qdrant Cloud or a secured self-hosted instance.
- `COLLECTION_NAME` (required) — Collection to read and write. Created automatically if it does not exist.
- `EMBEDDING_MODEL` — FastEmbed model name. Defaults to sentence-transformers/all-MiniLM-L6-v2.
- `QDRANT_LOCAL_PATH` — Local directory for an embedded instance. Mutually exclusive with QDRANT_URL.
- `TOOL_FIND_DESCRIPTION` — The description the model reads for the find tool. Rewriting this is how you specialise the server.

### Client configuration

**uvx against Qdrant Cloud**

The collection is created on first write if it does not already exist.

```
{
  "mcpServers": {
    "qdrant": {
      "command": "uvx",
      "args": ["mcp-server-qdrant"],
      "env": {
        "QDRANT_URL": "https://xyz.cloud.qdrant.io:6333",
        "QDRANT_API_KEY": "YOUR_API_KEY",
        "COLLECTION_NAME": "agent-memory"
      }
    }
  }
}
```

**Local on-disk, no server**

Good for a single-machine setup or trying the server out. Not suitable for concurrent clients.

```
{
  "mcpServers": {
    "qdrant": {
      "command": "uvx",
      "args": ["mcp-server-qdrant"],
      "env": {
        "QDRANT_LOCAL_PATH": "/path/to/qdrant-data",
        "COLLECTION_NAME": "agent-memory"
      }
    }
  }
}
```

## Frequently asked questions

### What is the Qdrant MCP server?

It is Qdrant’s official MCP server, a semantic memory layer over a Qdrant collection. It exposes two tools — qdrant-store and qdrant-find — and handles embedding internally, so the agent works in plain text.

### Do I have to generate embeddings myself?

No. The server embeds on both write and query using FastEmbed with the model named in EMBEDDING_MODEL, defaulting to sentence-transformers/all-MiniLM-L6-v2. Changing the model after you have written data means re-indexing, since old and new vectors are not comparable.

### Why only two tools?

Because tool selection degrades as the tool list grows. Two clearly described tools are chosen correctly far more often than a full database API. If you need richer querying, the tool descriptions are configurable and the collection is still a normal Qdrant collection you can hit directly.

### How does this compare to the memory MCP server?

The memory server stores explicit entities and relations in a readable graph — precise, auditable, and only recalls what you can name. Qdrant recalls by meaning across unstructured text, which scales better and is fuzzier. Teams often run both.

### Can I run it without a Qdrant server?

Yes. Set QDRANT_LOCAL_PATH and it uses an embedded on-disk instance with no service to run. That is fine for one client on one machine; use a real instance once more than one process needs the same collection.

---

_Test this server across 40+ models on MCP Playground: https://mcpplaygroundonline.com/mcp-servers/qdrant — free, no install._
