TL;DR: Qdrant has two ports: 6333 for REST, 6334 for gRPC. The MCP server speaks REST. If `QDRANT_URL` uses 6334, switch it to 6333.

```text
Connection failed / unexpected response from Qdrant
```

(With `QDRANT_URL` set to the service URL for that host and port.)

## Fix it

1. Check the port in your client config `env` block:

```json
{
  "env": {
    "QDRANT_URL": "http://YOUR_QDRANT_HOST:6334"
  }
}
```

2. Change 6334 to 6333:

```json
{
  "env": {
    "QDRANT_URL": "http://YOUR_QDRANT_HOST:6333"
  }
}
```

3. Sanity-check with curl:

```bash
curl http://YOUR_QDRANT_HOST:6333/collections
```

   Expected: JSON listing collections.

4. Restart the MCP client.

   Expected: the server connects.

## When to use this

- QDRANT_URL contains port 6334 and the server cannot talk to Qdrant.
- The curl check against 6333 works but the server is configured for 6334.

## When NOT to use this

- The URL already uses 6333 and still fails. Then it is a host, auth, or Qdrant-down problem.
- The error is 401. Auth, not ports.

## Compatibility

- qdrant/mcp-server-qdrant and REST-based Qdrant MCP servers.

## Why it happens

Qdrant's Docker image publishes both ports side by side, and docs mention them together, so it is easy to grab the wrong one. gRPC speaks HTTP/2 with a binary protocol; a REST client opening a conversation there gets nothing it understands.

## Edge cases

- Qdrant Cloud URLs include the port explicitly (`:6333`). Keep it.
- If you run Qdrant behind a reverse proxy, the external port may differ from 6333. Use whatever port serves the REST API externally.
- Some setups only map 6333 in Docker. Then 6334 is unreachable from outside the container entirely.