A powerful Model Context Protocol (MCP) server that provides seamless integration with Qdrant vector database. This server enables AI applications to perform advanced vector operations, semantic search, and intelligent document retrieval with automatic embedding generation powered by Ollama.
| Tool | Description |
|---|---|
qdrant_connect | Establish connection to Qdrant server with Ollama configuration |
qdrant_health_check | Verify server connectivity and health status |
| Tool | Description |
|---|---|
qdrant_create_collection | Create new collections with custom vector dimensions and distance metrics |
qdrant_delete_collection | Remove collections and all associated data |
qdrant_get_collection_info | Retrieve detailed collection metadata and statistics |
qdrant_list_collections | List all available collections with basic info |
| Tool | Description |
|---|---|
qdrant_insert_points | Insert vector points with custom embeddings and metadata |
qdrant_insert_text | Auto-generate embeddings and insert text content |
qdrant_get_points | Retrieve specific points by their unique IDs |
qdrant_update_points | Modify existing points' vectors or metadata |
qdrant_delete_points | Remove points by ID with batch support |
qdrant_count_points | Get total point count in collection |
| Tool | Description |
|---|---|
qdrant_search_similar | Find similar vectors with advanced filtering options |
qdrant_search_similar_text | Text-based semantic search with auto-embedding |
| Tool | Description |
|---|---|
qdrant_scroll | Paginated browsing through collection data |
qdrant_scroll_all | Retrieve all points with automatic pagination |
| Tool | Description |
|---|---|
qdrant_generate_embedding | Generate embeddings for text using Ollama |
qdrant_create_payload_index | Create indexes for faster metadata filtering |
qdrant_delete_payload_index | Remove payload indexes |
The MCP Qdrant server supports sophisticated payload filtering across search and scroll operations (qdrant_search_similar, qdrant_search_similar_text, qdrant_scroll, and qdrant_scroll_all). This enables precise control over result sets based on metadata conditions.
Perfect for basic key-value matching:
{
"simpleFilter": {
"category": "technology",
"status": "published",
"priority": 1
}
}
For advanced boolean logic and range queries:
Basic Matching
{
"filter": {
"must": [
{ "key": "category", "match": { "value": "technology" } }
]
}
}
Multiple Required Conditions
{
"filter": {
"must": [
{ "key": "category", "match": { "value": "technology" } },
{ "key": "status", "match": { "value": "active" } },
{ "key": "rating", "range": { "gte": 4.0 } }
]
}
}
Optional Conditions (OR Logic)
{
"filter": {
"should": [
{ "key": "author", "match": { "value": "john_doe" } },
{ "key": "author", "match": { "value": "jane_smith" } },
{ "key": "featured", "match": { "value": true } }
]
}
}
Exclusion Logic
{
"filter": {
"must": [
{ "key": "category", "match": { "value": "technology" } }
],
"must_not": [
{ "key": "status", "match": { "value": "archived" } },
{ "key": "deprecated", "match": { "value": true } }
]
}
}
Range Filters
{
"filter": {
"must": [
{ "key": "score", "range": { "gte": 0.8, "lte": 1.0 } },
{ "key": "created_date", "range": { "gte": "2024-01-01" } },
{ "key": "views", "range": { "gt": 1000 } }
]
}
}
Complex Combined Logic
{
"filter": {
"must": [
{ "key": "category", "match": { "value": "technology" } }
],
"should": [
{
"must": [
{ "key": "author", "match": { "value": "expert_author" } },
{ "key": "verified", "match": { "value": true } }
]
},
{ "key": "trending", "match": { "value": true } }
],
"must_not": [
{ "key": "status", "match": { "value": "archived" } }
]
}
}
The easiest way to use this MCP server is through Docker:
# Add the MCP server to VS Code as Stdio mode
code --add-mcp '{"name":"mcp-qdrant","command":"docker","args":["run", "-i", "--rm", "--env-file", "'${HOME}'/.mcp-credentials", "--name", "mcp-qdrant", "--network", "host", "allfunc/mcp-qdrant", "stdio"]}'
# Add the MCP server to VS Code as httpStream mode
code --add-mcp '{"name":"mcp-qdrant","command":"docker","args":["run", "-i", "--rm", "--env-file", "'${HOME}'/.mcp-credentials", "--name", "mcp-qdrant", "--network", "host", "allfunc/mcp-qdrant"]}'
# Add the MCP server to Claude as a transport
# claude mcp add --transport http <name> <url>
claude mcp add -s user --transport http mcp-qdrant http://localhost/mcp
# Clone and install
git clone https://github.com/allfunc/mcp-qdrant.git
cd mcp-qdrant/app
bun install
# Run the server
bun run src/index.ts
docker run --rm -it \
-p 65534:65534 \
-p 65533:65533 \
--env-file $HOME/.mcp-credentials \
--network host \
allfunc/mcp-qdrant
Create a .mcp-credentials file in your home directory with the following environment variables:
# Qdrant Configuration
QDRANT_URL=http://localhost:6333
QDRANT_API_KEY=your_api_key_here # Optional
# Ollama Configuration for Embeddings
OLLAMA_URL=http://localhost:11434
OLLAMA_MODEL=mxbai-embed-large
| Variable | Description | Default |
|---|---|---|
QDRANT_URL | Qdrant server URL | http://localhost:6333 |
QDRANT_API_KEY | Optional API key for authentication | - |
OLLAMA_URL | Ollama server URL for embeddings | http://localhost:11434 |
OLLAMA_MODEL | Embedding model to use | mxbai-embed-large |
Connect to Qdrant:
// The server will automatically connect using your environment configuration
Create a collection:
qdrant_create_collection({
name: "my_documents",
vectorSize: 1024,
distance: "Cosine"
})
Insert text with automatic embedding:
qdrant_insert_text({
collectionName: "my_documents",
text: "This is a sample document about machine learning",
payload: {
category: "technology",
author: "john_doe",
timestamp: "2024-01-01"
}
})
Search for similar content:
qdrant_search_similar_text({
collectionName: "my_documents",
queryText: "artificial intelligence",
limit: 5,
simpleFilter: {
category: "technology"
}
})
Content type
Image
Digest
sha256:30305ce5b…
Size
273 MB
Last updated
4 months ago
docker pull allfunc/mcp-qdrant