Better Qdrant MCP Server
The Better Qdrant MCP Server manages Qdrant vector databases through semantic search and document operations.
Core Capabilities:
List Collections - View all available Qdrant collections in your database
Add Documents - Process and ingest documents from file paths into collections with configurable chunking (chunk size and overlap)
Semantic Search - Query collections to find similar documents based on semantic meaning with customizable result limits
Delete Collections - Remove collections from your Qdrant database
Embedding Service Support:
OpenAI - Cloud-based embeddings via OpenAI API
OpenRouter - Cloud-based embeddings via OpenRouter API
Ollama - Local embeddings using Ollama models (default: nomic-embed-text)
FastEmbed - Local embeddings using FastEmbed models
Utilizes .env files for configuration of API keys, endpoints, and other server settings.
Requires Node.js runtime environment (version 18.0.0 or higher) to operate the MCP server.
Integrates with Ollama for local embedding models, supporting document embedding and semantic search functionality.
Leverages OpenAI's embedding capabilities for processing and semantically searching documents in Qdrant collections.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Better Qdrant MCP Serversearch for documents about machine learning in my research collection"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Better Qdrant MCP Server
A Model Context Protocol (MCP) server for enhanced Qdrant vector database functionality. This server provides tools for managing Qdrant collections, adding documents, and performing semantic searches.
Features
List Collections: View all available Qdrant collections
Add Documents: Process and add documents to a Qdrant collection with various embedding services
Search: Perform semantic searches across your vector database
Delete Collection: Remove collections from your Qdrant database
Related MCP server: doc-lib-mcp
Installation
npm install -g better-qdrant-mcp-serverOr use it directly with npx:
npx better-qdrant-mcp-serverConfiguration
The server uses environment variables for configuration. You can set these in a .env file in your project root:
# Qdrant Configuration
QDRANT_URL=http://localhost:6333
QDRANT_API_KEY=your_api_key_if_needed
# Embedding Service API Keys
OPENAI_API_KEY=your_openai_api_key
OPENROUTER_API_KEY=your_openrouter_api_key
OLLAMA_ENDPOINT=http://localhost:11434Supported Embedding Services
OpenAI: Requires an API key
OpenRouter: Requires an API key
Ollama: Local embedding models (default endpoint: http://localhost:11434)
FastEmbed: Local embedding models
Usage with Claude
To use this MCP server with Claude, add it to your MCP settings configuration file:
{
"mcpServers": {
"better-qdrant": {
"command": "npx",
"args": ["better-qdrant-mcp-server"],
"env": {
"QDRANT_URL": "http://localhost:6333",
"QDRANT_API_KEY": "your_api_key_if_needed",
"DEFAULT_EMBEDDING_SERVICE": "ollama",
"OPENAI_API_KEY": "your_openai_api_key",
"OPENAI_ENDPOINT": "https://api.openai.com/v1",
"OPENROUTER_API_KEY": "your_openrouter_api_key",
"OPENROUTER_ENDPOINT": "https://api.openrouter.com/v1",
"OLLAMA_ENDPOINT": "http://localhost:11434",
"OLLAMA_MODEL": "nomic-embed-text"
}
}
}
}Example Commands
List Collections
use_mcp_tool
server_name: better-qdrant
tool_name: list_collections
arguments: {}Add Documents
use_mcp_tool
server_name: better-qdrant
tool_name: add_documents
arguments: {
"filePath": "/path/to/your/document.pdf",
"collection": "my-collection",
"embeddingService": "openai",
"chunkSize": 1000,
"chunkOverlap": 200
}Search
use_mcp_tool
server_name: better-qdrant
tool_name: search
arguments: {
"query": "your search query",
"collection": "my-collection",
"embeddingService": "openai",
"limit": 5
}Delete Collection
use_mcp_tool
server_name: better-qdrant
tool_name: delete_collection
arguments: {
"collection": "my-collection"
}Requirements
Node.js >= 18.0.0
A running Qdrant server (local or remote)
API keys for the embedding services you want to use
License
MIT
Available Tools
4 toolsadd_documentsC
Add documents to a Qdrant collection with specified embedding service
| Name | Required | Description | Default |
|---|---|---|---|
| chunkOverlap | No | Overlap between chunks (optional) | |
| chunkSize | No | Size of text chunks (optional) | |
| collection | Yes | Name of the collection to add documents to | |
| embeddingService | Yes | Embedding service to use | |
| filePath | Yes | Path to the file to process |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions the embedding service but doesn't cover critical aspects like whether this is a write operation (implied by 'Add'), potential side effects, error conditions, or performance characteristics. For a tool that likely modifies data, this is insufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that directly states the tool's purpose without unnecessary words. It's appropriately sized and front-loaded with the core action.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of adding documents with embeddings (a write operation with processing steps), no annotations, and no output schema, the description is incomplete. It lacks details on behavior, output format, error handling, or integration context, leaving significant gaps for an AI agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema fully documents all parameters. The description adds no additional meaning beyond implying that documents are processed with embeddings, which is already suggested by the 'embeddingService' parameter. Baseline 3 is appropriate when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Add documents') and target resource ('to a Qdrant collection'), specifying the embedding service requirement. However, it doesn't differentiate from sibling tools like 'search' or 'delete_collection' beyond the basic verb.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like 'search' or 'list_collections', nor are prerequisites or typical use cases mentioned. The description only states what it does, not when it's appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_collectionC
Delete a Qdrant collection
| Name | Required | Description | Default |
|---|---|---|---|
| collection | Yes | Name of the collection to delete |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states the tool deletes a collection, implying a destructive mutation, but does not elaborate on critical aspects such as irreversibility, permissions required, error handling, or side effects (e.g., data loss). This leaves significant gaps for a tool with clear destructive intent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, direct sentence with zero wasted words, making it highly concise and front-loaded. It immediately communicates the core action without unnecessary elaboration, which is efficient for an AI agent.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's destructive nature, lack of annotations, and no output schema, the description is insufficiently complete. It fails to address key contextual elements like irreversibility, error cases, or what happens post-deletion, which are critical for safe and informed usage by an agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 100%, with the single parameter 'collection' clearly documented in the schema. The description does not add any additional meaning or context beyond what the schema provides (e.g., format examples or constraints), so it meets the baseline for adequate but not enhanced parameter semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Delete') and resource ('a Qdrant collection'), making the purpose immediately understandable. However, it does not differentiate this tool from its siblings (like 'list_collections' or 'add_documents'), which would require mentioning it's a destructive operation versus read-only alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It does not mention prerequisites (e.g., that the collection must exist), exclusions, or refer to sibling tools like 'list_collections' for checking before deletion, leaving the agent with minimal context for decision-making.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_collectionsB
List all available Qdrant collections
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. While 'List all available Qdrant collections' implies a read-only operation, it doesn't specify important behavioral details like whether this requires authentication, what format the results come in, if there are rate limits, or how large collections are handled. The description is minimal and lacks operational context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that states exactly what the tool does with no wasted words. It's front-loaded with the core functionality and appropriately sized for a simple listing operation. Every word earns its place in conveying the essential purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with no annotations, no output schema, and zero parameters, the description is insufficiently complete. While it states what the tool does, it doesn't provide enough context about the operation's behavior, result format, or integration considerations. The agent would need to guess about important operational details that aren't covered.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, and schema description coverage is 100% (empty schema is fully described). The description appropriately doesn't discuss parameters since none exist. This meets the baseline expectation for a parameterless tool, though it doesn't add any parameter-related value beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('List') and resource ('Qdrant collections'), making the purpose immediately understandable. It specifies 'all available' collections, which adds useful scope information. However, it doesn't explicitly differentiate from sibling tools like 'search' or 'delete_collection', which would require more specific comparison.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like 'search' or 'delete_collection'. There's no mention of prerequisites, typical use cases, or scenarios where this tool would be preferred over others. The agent must infer usage from the tool name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
searchC
Search for similar documents in a collection
| Name | Required | Description | Default |
|---|---|---|---|
| collection | Yes | Name of the collection to search in | |
| embeddingService | Yes | Embedding service to use | |
| limit | No | Maximum number of results to return (optional) | |
| query | Yes | Search query |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions 'similar documents' but doesn't explain how similarity is determined (e.g., via embeddings), what the output looks like (e.g., relevance scores), or any constraints like rate limits or authentication needs. This leaves significant gaps for a search tool with multiple parameters.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that directly states the tool's purpose without unnecessary words. It's appropriately sized and front-loaded, making it easy to grasp quickly, which is ideal for conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of a search tool with 4 parameters, no annotations, and no output schema, the description is incomplete. It fails to explain key aspects like the search mechanism (embedding-based), expected output format, or error conditions. This leaves the agent with insufficient context to use the tool effectively beyond basic parameter input.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 100%, so the schema already documents all parameters well. The description adds no additional meaning beyond what's in the schema, such as explaining the relationship between query and embeddingService or how limit affects results. This meets the baseline for high schema coverage but doesn't enhance understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the tool's purpose as 'Search for similar documents in a collection', which clearly indicates a search operation. However, it's vague about what 'similar' means (e.g., semantic similarity via embeddings) and doesn't distinguish from siblings like list_collections, which might also involve collections but for listing rather than searching. It's adequate but lacks specificity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. For example, it doesn't clarify if this is for semantic search (implied by embeddingService) versus other search methods, or how it relates to siblings like add_documents or list_collections. There's no mention of prerequisites, such as needing an existing collection, leaving usage context unclear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
Each tool has a clearly distinct purpose: add_documents handles document insertion, delete_collection removes collections, list_collections enumerates them, and search performs similarity queries. There is no overlap in functionality, making tool selection straightforward.
All tools follow a consistent verb_noun pattern (add_documents, delete_collection, list_collections, search). The naming is uniform and predictable, with no deviations in style or convention.
With only 4 tools, the set feels thin for a vector database server, lacking operations like collection creation, document updates, or deletion. While the tools cover basic CRUD aspects, the scope is limited and may require workarounds for full functionality.
There are significant gaps in the tool surface for a Qdrant server: no create_collection tool, no update or delete document operations, and no management of embeddings or configurations. This incomplete coverage will likely cause agent failures in common workflows.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
The Needle MCP server enables semantic search on documents stored in files like PDFs, DOCX, and XLSX by connecting AI applications to external data sources. It provides capabilities to create and manage document collections, perform natural language searches on stored content, and retrieve relevant information without requiring exact keyword matches.
A Model Context Protocol server for Wix AI tools
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yo…
Related MCP Servers
- AlicenseNot gradedqualityFmaintenanceA Model Context Protocol (MCP) server that enables semantic search and retrieval of documentation using a vector database (Qdrant). This server allows you to add documentation from URLs or local files and then search through them using natural language queries.18136Apache 2.0
- FlicenseNot gradedqualityDmaintenanceA Model Context Protocol server for ingesting, chunking and semantically searching documentation files, with support for markdown, Python, OpenAPI, HTML files and URLs.
- AlicenseNot gradedqualityDmaintenanceA Model Context Protocol server that enables intelligent document search and retrieval from PDF collections, providing semantic search capabilities powered by OpenAI embeddings and ChromaDB vector storage.13MIT
- AlicenseNot gradedqualityDmaintenanceA Model Context Protocol (MCP) server for Retrieval-Augmented Generation (RAG) operations. It provides tools for building and querying vector-based knowledge bases from document collections, enabling semantic search and document retrieval capabilities.3MIT
Appeared in Searches
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/wrediam/better-qdrant-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server