Two calls over one collection: text goes in with whatever metadata you attach and comes back on a described query rather than an exact match. The tool descriptions being configurable is what makes it more than a note store — rewrite them and the same pair becomes the snippet library, the decision log, or whatever else you want the agent to reach for.
Qdrant's own two-call MCP server. One call writes a piece of text, with optional metadata, into a named collection; the other searches that collection in natural language. Embeddings are produced locally by FastEmbed, so no embedding key is involved.
- An entry stored in the collection you name, with whatever metadata you attach to it
- A natural-language search over one collection, returning the stored entries that match
- A default collection through COLLECTION_NAME, which drops the collection argument from both calls
- Both tool descriptions rewritable through TOOL_STORE_DESCRIPTION and TOOL_FIND_DESCRIPTION, which is how the same two calls become a code-snippet store rather than a note store
- The result count capped by QDRANT_SEARCH_LIMIT, 10 by default
- A read-only mode: QDRANT_READ_ONLY removes qdrant-store and leaves the search
- Stdio by default, with --transport for SSE or streamable HTTP when the client connects over the network
Uv, to run `uvx mcp-server-qdrant`, and somewhere to put the vectors: QDRANT_URL for a running Qdrant, with QDRANT_API_KEY for a managed one, or QDRANT_LOCAL_PATH for an on-disk database. Set one or the other — both together is rejected. EMBEDDING_MODEL defaults to sentence-transformers/all-MiniLM-L6-v2 and only FastEmbed models are supported, so a collection made elsewhere has to match that model's vectors.
One command plus a key — uvx mcp-server-qdrant, then supply credentials
