Qdrant MCP Server for Claude
Connect Claude to Qdrant for read-only semantic search or opt-in semantic memory storage through the official MCP server.
Open the source and read safety notes before installing.
Safety notes
- Start with `QDRANT_READ_ONLY=true`. In read-only mode the server exposes `qdrant-find` and disables the `qdrant-store` write tool.
- Without read-only mode, `qdrant-store` can write new embedded entries and metadata into the configured collection and can create the collection when it does not already exist.
- Collection scope matters. Set `COLLECTION_NAME` to a narrow collection so Claude is not asked to choose from or write into unrelated vector indexes.
- Review custom `TOOL_STORE_DESCRIPTION` and `TOOL_FIND_DESCRIPTION` values. Tool descriptions can steer agents toward storing broad memory or searching sensitive records if written too loosely.
- If using SSE or streamable HTTP transport, keep the server reachable only by trusted MCP clients and bind/expose network interfaces deliberately.
- Search results are model context. Treat stored documents and metadata as untrusted input, especially when collections contain web pages, support tickets, generated code, or user-provided text.
Privacy notes
- Queries, retrieved documents, metadata, collection names, and result snippets can be returned to the MCP client and model session.
- Stored entries include the `information` text and optional JSON metadata. That metadata can contain code, file paths, user identifiers, URLs, ticket IDs, internal project names, or other sensitive context.
- FastEmbed runs locally in the MCP server process for the documented default embedding provider, but the configured Qdrant deployment may be local, self-hosted, or Qdrant Cloud.
- Keep `QDRANT_API_KEY` in MCP environment configuration or secret management, not in prompts, transcripts, checked-in configs, or shared examples.
- Local-path mode stores data on the machine running the MCP server. Remote mode sends vectors, payloads, and searches to the configured Qdrant service.
Prerequisites
- Qdrant Cloud cluster, self-hosted Qdrant instance, or local Qdrant database path
- Qdrant collection containing documents or memories to search, unless you intentionally enable writes and allow the server to create a collection
- Qdrant API key when connecting to an authenticated remote Qdrant deployment
- Python 3.10+ with `uvx` available, or Docker if building/running the server container yourself
- MCP-capable client with stdio support, such as Claude Code, Claude Desktop, VS Code, Cursor, or Windsurf
- Agreement on what content, metadata, code snippets, documents, or user memories Claude is allowed to store and retrieve
Schema details
- Install type
- cli
- Troubleshooting
- Yes
- Scope
- Source repo
- Estimated setup
- 10 minutes
- Difficulty
- intermediate
Full copyable content
{
"qdrant": {
"command": "uvx",
"args": ["mcp-server-qdrant"],
"env": {
"QDRANT_URL": "https://YOUR_QDRANT_HOST:6333",
"QDRANT_API_KEY": "<api key>",
"COLLECTION_NAME": "<collection>",
"QDRANT_READ_ONLY": "true"
}
}
}About this resource
Content
The Qdrant MCP Server is Qdrant's official MCP server for semantic memory and vector search workflows. It connects Claude and other MCP-capable clients to a Qdrant collection, embeds search queries with FastEmbed, and returns relevant stored entries as model context.
The server has a deliberately small tool surface: qdrant-find for semantic
retrieval and, when read-only mode is not enabled, qdrant-store for writing
new embedded entries. That makes the safety boundary easy to reason about: use
read-only mode for retrieval over an approved collection, and enable storage
only when Claude is explicitly allowed to add memory, documents, code snippets,
or metadata.
Qdrant supports remote deployments through QDRANT_URL and QDRANT_API_KEY,
or local-path mode through QDRANT_LOCAL_PATH. The two modes are mutually
exclusive in the server settings.
Features
- Official Qdrant MCP server from the
qdrant/mcp-server-qdrantrepository. qdrant-findtool for semantic retrieval from Qdrant collections.- Optional
qdrant-storetool for writing information and JSON metadata to a collection. QDRANT_READ_ONLY=truemode that disables the write tool.- Remote Qdrant connection through
QDRANT_URLandQDRANT_API_KEY. - Local database mode through
QDRANT_LOCAL_PATH. - Default collection scoping with
COLLECTION_NAME. - FastEmbed-based embeddings with
sentence-transformers/all-MiniLM-L6-v2as the documented default model. - Configurable search result limit through
QDRANT_SEARCH_LIMIT. - Optional metadata filtering through configured filterable fields or arbitrary filters.
- Stdio transport by default, with SSE and streamable HTTP transport options
available through the
--transportflag. - Tool description overrides for adapting the server to semantic memory, code search, documentation retrieval, or other approved workflows.
Use Cases
- Let Claude search an approved Qdrant collection of documentation snippets, runbooks, support notes, or code examples by natural language.
- Retrieve semantic memory for a project without exposing the whole source repository or document set in every prompt.
- Use a narrow read-only collection as a retrieval layer for common implementation patterns, deployment notes, or product facts.
- Store code snippets with explanatory metadata when Claude is explicitly allowed to build a reusable semantic code-search collection.
- Search local Qdrant data during offline or local-first development.
- Connect to Qdrant Cloud for shared team retrieval when API-key and collection boundaries are controlled.
Installation
Claude Code
- Confirm
uvxis available:
uvx --version
- Add the server in read-only mode against one approved collection:
claude mcp add qdrant --env QDRANT_URL=https://YOUR_QDRANT_HOST:6333 --env QDRANT_API_KEY=YOUR_QDRANT_API_KEY --env COLLECTION_NAME=YOUR_COLLECTION --env QDRANT_READ_ONLY=true -- uvx mcp-server-qdrant
- Start with a narrow query that proves the intended collection is connected.
- Keep
QDRANT_READ_ONLY=trueunless storing new memory is explicitly in scope.
Claude Desktop
- Open the Claude Desktop MCP configuration file.
- Add the
qdrantserver configuration shown below. - Replace the Qdrant host, API key, and collection placeholders.
- Restart Claude Desktop and test with a read-only retrieval prompt.
Configuration
Read-only remote Qdrant configuration:
{
"mcpServers": {
"qdrant": {
"command": "uvx",
"args": ["mcp-server-qdrant"],
"env": {
"QDRANT_URL": "https://YOUR_QDRANT_HOST:6333",
"QDRANT_API_KEY": "<api key>",
"COLLECTION_NAME": "<collection>",
"QDRANT_READ_ONLY": "true"
}
}
}
}
Local-path mode uses local Qdrant storage instead of a remote URL and API key:
{
"mcpServers": {
"qdrant": {
"command": "uvx",
"args": ["mcp-server-qdrant"],
"env": {
"QDRANT_LOCAL_PATH": "./qdrant-local-storage",
"COLLECTION_NAME": "project-memory",
"QDRANT_READ_ONLY": "true"
}
}
}
}
To allow storage, remove read-only mode or set it to false, then keep the
collection narrow and review each storage request:
{
"mcpServers": {
"qdrant": {
"command": "uvx",
"args": ["mcp-server-qdrant"],
"env": {
"QDRANT_URL": "https://YOUR_QDRANT_HOST:6333",
"QDRANT_API_KEY": "<api key>",
"COLLECTION_NAME": "approved-agent-memory",
"QDRANT_READ_ONLY": "false"
}
}
}
}
Tools
qdrant-find
Searches the configured collection using an embedded natural-language query. The server returns matching entries as separate messages containing stored content and metadata.
Important inputs and settings:
query: natural-language search query.collection_name: exposed as a tool argument when no defaultCOLLECTION_NAMEis configured.QDRANT_SEARCH_LIMIT: maximum number of search results, defaulting to 10.- Optional filters when filterable fields or arbitrary filters are configured.
qdrant-store
Stores text and optional JSON metadata into Qdrant after embedding the text.
This tool is hidden when QDRANT_READ_ONLY=true.
Important inputs and behavior:
information: text to embed and store.metadata: optional JSON metadata stored with the entry.collection_name: exposed as a tool argument when no defaultCOLLECTION_NAMEis configured.- Creates the target collection if it does not already exist.
- Uses the configured FastEmbed model to determine vector dimensions and vector name.
Examples
Search project memory
Use read-only retrieval against a curated project-memory collection.
Search Qdrant for prior notes about the billing import workflow and return the most relevant entries with their metadata.
Search code snippets
Use a collection that stores code snippets and descriptions.
Find examples of the retry wrapper we use for external API calls. Include metadata that identifies the source module if present.
Store approved memory
Enable writes only when the user explicitly wants Claude to add memory.
Store this deployment note in the approved project-memory collection with metadata for service name, environment, and date.
Limit returned results
Tune QDRANT_SEARCH_LIMIT when search results are too broad or too sparse.
Search the release-runbook collection for migration rollback steps and return only the three strongest matches.
Best Practices
- Use a dedicated collection for each project or workflow.
- Prefer
QDRANT_READ_ONLY=truefor retrieval-only assistants. - Enable
qdrant-storeonly for workflows where persistent memory writes are expected and reviewed. - Keep collection names, tool descriptions, and metadata conventions explicit.
- Avoid storing secrets, raw credentials, private keys, customer personal data, or unrestricted source-code dumps.
- Treat retrieved entries as context, not authority; stale or user-generated documents can still be wrong or prompt-injected.
- Use
QDRANT_SEARCH_LIMITto reduce accidental disclosure from overly broad result sets. - Rotate and scope Qdrant API keys like other production database credentials.
- Use local-path mode only when local disk persistence is intentional.
Troubleshooting
No results are returned
Confirm the collection exists, the server is pointed at the expected Qdrant
deployment or local path, the collection has embedded entries, and the query is
specific enough. Increase QDRANT_SEARCH_LIMIT only after checking collection
scope.
The store tool is missing
QDRANT_READ_ONLY=true disables qdrant-store. Remove read-only mode only if
Claude is allowed to write persistent memory into the configured collection.
Authentication fails
Verify QDRANT_URL and QDRANT_API_KEY, and make sure the key has access to
the selected collection. Do not paste API keys into prompts while debugging.
Local and remote settings conflict
Use either QDRANT_URL or QDRANT_LOCAL_PATH, not both. The server rejects
configurations that combine local-path mode with a remote URL or API key.
Search quality is poor
Check the embedding model, collection contents, metadata conventions, and stored text quality. The default FastEmbed model is convenient, but collections should be populated consistently for useful semantic retrieval.
Related Links
Source citations
Signals
Loading live community signals…
A short, calm digest of reviewed Claude resources. Unsubscribe any time.