Qdrant
आधिकारिकQdrant वेक्टर खोज इंजन के ऊपर सिमैंटिक मेमोरी लेयर लागू करें
Qdrant MCP के साथ आप क्या कर सकते हैं?
- स्मृतियाँ संग्रहीत करें — अपने सहायक से
qdrant-storeके साथ जानकारी सहेजने के लिए कहें, वैकल्पिक रूप से मेटाडेटा शामिल करें और किसी विशिष्ट संग्रह को लक्षित करें। - सिमेंटिक खोज — प्राकृतिक भाषा क्वेरी द्वारा प्रासंगिक संग्रहीत जानकारी प्राप्त करने के लिए
qdrant-findका उपयोग करें, परिणामQDRANT_SEARCH_LIMITद्वारा सीमित होते हैं। - कोड स्निपेट प्रबंधन — कोड को मेटाडेटा के साथ संग्रहीत करने और Cursor या Claude Code में पुन: उपयोग के लिए सिमेंटिक खोज के माध्यम से इसे पुनः प्राप्त करने हेतु टूल विवरण कॉन्फ़िगर करें।
- केवल-पठन मोड —
qdrant-storeको अक्षम करने और केवल खोज संचालन की अनुमति देने के लिएQDRANT_READ_ONLYसक्षम करें।
दस्तावेज़
mcp-server-qdrant: एक Qdrant MCP सर्वर
Model Context Protocol (MCP) एक खुला प्रोटोकॉल है जो LLM अनुप्रयोगों और बाहरी डेटा स्रोतों तथा टूल्स के बीच सहज एकीकरण सक्षम करता है। चाहे आप AI-संचालित IDE बना रहे हों, चैट इंटरफ़ेस बेहतर कर रहे हों, या कस्टम AI वर्कफ़्लो बना रहे हों, MCP LLM को उनके आवश्यक संदर्भ से जोड़ने का एक मानकीकृत तरीका प्रदान करता है।
यह रिपॉज़िटरी Qdrant के लिए एक MCP सर्वर बनाने का उदाहरण है, जो एक वेक्टर खोज इंजन है।
अवलोकन
Qdrant वेक्टर खोज इंजन में मेमोरी रखने और पुनर्प्राप्त करने के लिए एक आधिकारिक Model Context Protocol सर्वर। यह Qdrant डेटाबेस के ऊपर एक सिमेंटिक मेमोरी परत के रूप में कार्य करता है।
घटक
टूल्स
qdrant-store- Qdrant डेटाबेस में कुछ जानकारी संग्रहीत करें
- इनपुट:
information(स्ट्रिंग): संग्रहीत करने के लिए जानकारीmetadata(JSON): संग्रहीत करने के लिए वैकल्पिक मेटाडेटाcollection_name(स्ट्रिंग): उस संग्रह का नाम जिसमें जानकारी संग्रहीत की जानी है। यदि कोई डिफ़ॉल्ट संग्रह नाम नहीं है तो यह फ़ील्ड आवश्यक है। यदि डिफ़ॉल्ट संग्रह नाम है, तो यह फ़ील्ड सक्षम नहीं है।
- रिटर्न: पुष्टिकरण संदेश
qdrant-find- Qdrant डेटाबेस से प्रासंगिक जानकारी पुनर्प्राप्त करें
- इनपुट:
query(स्ट्रिंग): खोज के लिए उपयोग करने हेतु क्वेरीcollection_name(स्ट्रिंग): उस संग्रह का नाम जिसमें जानकारी संग्रहीत की जानी है। यदि कोई डिफ़ॉल्ट संग्रह नाम नहीं है तो यह फ़ील्ड आवश्यक है। यदि डिफ़ॉल्ट संग्रह नाम है, तो यह फ़ील्ड सक्षम नहीं है।
- रिटर्न: Qdrant डेटाबेस में संग्रहीत जानकारी अलग-अलग संदेशों के रूप में
पर्यावरण चर
कॉन्फ़िगरेशन पर्यावरण चर के माध्यम से किया जाता है। एकमात्र कमांड-लाइन तर्क --transport है, जिसका उपयोग ट्रांसपोर्ट प्रोटोकॉल चुनने के लिए किया जाता है।
[!NOTE] आप एक ही समय में
QDRANT_URLऔरQDRANT_LOCAL_PATHदोनों प्रदान नहीं कर सकते।
| नाम | विवरण | डिफ़ॉल्ट मान |
|---|---|---|
QDRANT_URL | Qdrant सर्वर का URL | कोई नहीं |
QDRANT_API_KEY | Qdrant सर्वर के लिए API कुंजी | कोई नहीं |
COLLECTION_NAME | उपयोग करने के लिए डिफ़ॉल्ट संग्रह का नाम। | कोई नहीं |
QDRANT_LOCAL_PATH | स्थानीय Qdrant डेटाबेस का पथ (QDRANT_URL का विकल्प) | कोई नहीं |
EMBEDDING_PROVIDER | एम्बेडिंग प्रदाता (वर्तमान में केवल "fastembed" समर्थित है) | fastembed |
EMBEDDING_MODEL | उपयोग करने के लिए एम्बेडिंग मॉडल का नाम | sentence-transformers/all-MiniLM-L6-v2 |
TOOL_STORE_DESCRIPTION | स्टोर टूल के लिए कस्टम विवरण | settings.py में डिफ़ॉल्ट देखें |
TOOL_FIND_DESCRIPTION | फाइंड टूल के लिए कस्टम विवरण | settings.py में डिफ़ॉल्ट देखें |
QDRANT_SEARCH_LIMIT | खोज से लौटाए जाने वाले परिणामों की अधिकतम संख्या | 10 |
QDRANT_READ_ONLY | केवल-पठन मोड सक्षम करें (qdrant-store टूल अक्षम करता है) | false |
FastMCP पर्यावरण चर
चूँकि mcp-server-qdrant FastMCP पर आधारित है, यह सभी FastMCP पर्यावरण चरों का भी समर्थन करता है। सबसे महत्वपूर्ण नीचे सूचीबद्ध हैं:
| पर्यावरण चर | विवरण | डिफ़ॉल्ट मान |
|---|---|---|
FASTMCP_LOG_LEVEL | लॉगिंग स्तर सेट करें (DEBUG, INFO, WARNING, ERROR, CRITICAL) | INFO |
FASTMCP_SERVER_DEBUG | डीबग मोड सक्षम करें | false |
FASTMCP_SERVER_HOST | सर्वर को बाँधने के लिए होस्ट पता | 127.0.0.1 |
FASTMCP_SERVER_PORT | सर्वर चलाने के लिए पोर्ट | 8000 |
FASTMCP_SERVER_ON_DUPLICATE_RESOURCES | डुप्लिकेट संसाधनों के लिए व्यवहार (warn, error, replace, ignore) | warn |
FASTMCP_SERVER_ON_DUPLICATE_TOOLS | डुप्लिकेट टूल्स के लिए व्यवहार (warn, error, replace, ignore) | warn |
FASTMCP_SERVER_ON_DUPLICATE_PROMPTS | डुप्लिकेट प्रॉम्प्ट के लिए व्यवहार (warn, error, replace, ignore) | warn |
FASTMCP_SERVER_DEPENDENCIES | सर्वर वातावरण में स्थापित करने के लिए निर्भरताओं की सूची | [] |
[!NOTE] सर्वर-विशिष्ट सेटिंग्स
FASTMCP_SERVER_उपसर्ग का उपयोग करती हैं। यह भविष्य के संस्करणों में बदल सकता है।
स्थापना
uvx का उपयोग करना
uvx का उपयोग करते समय mcp-server-qdrant को सीधे चलाने के लिए किसी विशेष स्थापना की आवश्यकता नहीं है।
QDRANT_URL="http://localhost:6333" \
COLLECTION_NAME="my-collection" \
EMBEDDING_MODEL="sentence-transformers/all-MiniLM-L6-v2" \
uvx mcp-server-qdrant
ट्रांसपोर्ट प्रोटोकॉल
सर्वर विभिन्न ट्रांसपोर्ट प्रोटोकॉल का समर्थन करता है जिन्हें --transport फ़्लैग का उपयोग करके निर्दिष्ट किया जा सकता है:
QDRANT_URL="http://localhost:6333" \
COLLECTION_NAME="my-collection" \
uvx mcp-server-qdrant --transport sse
समर्थित ट्रांसपोर्ट प्रोटोकॉल:
stdio(डिफ़ॉल्ट): मानक इनपुट/आउटपुट ट्रांसपोर्ट, केवल स्थानीय MCP क्लाइंट द्वारा उपयोग किया जा सकता हैsse: Server-Sent Events ट्रांसपोर्ट, रिमोट क्लाइंट के लिए उपयुक्तstreamable-http: Streamable HTTP ट्रांसपोर्ट, रिमोट क्लाइंट के लिए उपयुक्त, SSE से अधिक नया
यदि निर्दिष्ट नहीं है तो डिफ़ॉल्ट ट्रांसपोर्ट stdio है।
जब SSE ट्रांसपोर्ट का उपयोग किया जाता है, तो सर्वर निर्दिष्ट पोर्ट पर सुनता है और आने वाले कनेक्शनों की प्रतीक्षा करता है। डिफ़ॉल्ट पोर्ट 8000 है, हालाँकि इसे FASTMCP_SERVER_PORT पर्यावरण चर का उपयोग करके बदला जा सकता है।
QDRANT_URL="http://localhost:6333" \
COLLECTION_NAME="my-collection" \
FASTMCP_SERVER_PORT=1234 \
uvx mcp-server-qdrant --transport sse
Docker का उपयोग करना
MCP सर्वर को बनाने और चलाने के लिए एक Dockerfile उपलब्ध है:
# Build the container
docker build -t mcp-server-qdrant .
# Run the container
docker run -p 8000:8000 \
-e FASTMCP_SERVER_HOST="0.0.0.0" \
-e QDRANT_URL="http://your-qdrant-server:6333" \
-e QDRANT_API_KEY="your-api-key" \
-e COLLECTION_NAME="your-collection" \
mcp-server-qdrant
[!TIP] कृपया ध्यान दें कि हमने सर्वर को सभी नेटवर्क इंटरफेस पर सुनने के लिए
FASTMCP_SERVER_HOST="0.0.0.0"सेट किया है। Docker कंटेनर में सर्वर चलाते समय यह आवश्यक है।
Smithery के माध्यम से स्थापना
Smithery के माध्यम से Claude Desktop के लिए Qdrant MCP सर्वर स्वचालित रूप से स्थापित करने के लिए:
npx @smithery/cli install mcp-server-qdrant --client claude
Claude Desktop की मैन्युअल कॉन्फ़िगरेशन
इस सर्वर को Claude Desktop ऐप के साथ उपयोग करने के लिए, अपने claude_desktop_config.json के "mcpServers" अनुभाग में निम्नलिखित कॉन्फ़िगरेशन जोड़ें:
{
"qdrant": {
"command": "uvx",
"args": ["mcp-server-qdrant"],
"env": {
"QDRANT_URL": "https://xyz-example.eu-central.aws.cloud.qdrant.io:6333",
"QDRANT_API_KEY": "your_api_key",
"COLLECTION_NAME": "your-collection-name",
"EMBEDDING_MODEL": "sentence-transformers/all-MiniLM-L6-v2"
}
}
}
स्थानीय Qdrant मोड के लिए:
{
"qdrant": {
"command": "uvx",
"args": ["mcp-server-qdrant"],
"env": {
"QDRANT_LOCAL_PATH": "/path/to/qdrant/database",
"COLLECTION_NAME": "your-collection-name",
"EMBEDDING_MODEL": "sentence-transformers/all-MiniLM-L6-v2"
}
}
}
यह MCP सर्वर स्वचालित रूप से निर्दिष्ट नाम के साथ एक संग्रह बनाएगा यदि वह मौजूद नहीं है।
डिफ़ॉल्ट रूप से, सर्वर मेमोरी एन्कोड करने के लिए sentence-transformers/all-MiniLM-L6-v2 एम्बेडिंग मॉडल का उपयोग करेगा। फिलहाल, केवल FastEmbed मॉडल समर्थित हैं।
अन्य टूल्स के लिए समर्थन
इस MCP सर्वर का उपयोग किसी भी MCP-संगत क्लाइंट के साथ किया जा सकता है। उदाहरण के लिए, आप इसे Cursor और VS Code के साथ उपयोग कर सकते हैं, जो Model Context Protocol के लिए अंतर्निहित समर्थन प्रदान करते हैं।
Cursor/Windsurf के साथ उपयोग
आप टूल विवरण को अनुकूलित करके इस MCP सर्वर को Cursor या Windsurf के लिए कोड खोज टूल के रूप में कॉन्फ़िगर कर सकते हैं:
QDRANT_URL="http://localhost:6333" \
COLLECTION_NAME="code-snippets" \
TOOL_STORE_DESCRIPTION="Store reusable code snippets for later retrieval. \
The 'information' parameter should contain a natural language description of what the code does, \
while the actual code should be included in the 'metadata' parameter as a 'code' property. \
The value of 'metadata' is a Python dictionary with strings as keys. \
Use this whenever you generate some code snippet." \
TOOL_FIND_DESCRIPTION="Search for relevant code snippets based on natural language descriptions. \
The 'query' parameter should describe what you're looking for, \
and the tool will return the most relevant code snippets. \
Use this when you need to find existing code snippets for reuse or reference." \
uvx mcp-server-qdrant --transport sse # Enable SSE transport
Cursor/Windsurf में, आप SSE ट्रांसपोर्ट प्रोटोकॉल का उपयोग करके इस चल रहे सर्वर की ओर इशारा करके अपनी सेटिंग्स में MCP सर्वर कॉन्फ़िगर कर सकते हैं। Cursor में MCP सर्वर जोड़ने का विवरण https://docs.cursor.com/context/model-context-protocol#adding-an-mcp-server-to-cursor में पाया जा सकता है। यदि आप Cursor/Windsurf स्थानीय रूप से चला रहे हैं, तो आप निम्न URL का उपयोग कर सकते हैं:
http://localhost:8000/sse
[!TIP] हम Cursor/Windsurf को MCP सर्वर से जोड़ने के लिए SSE ट्रांसपोर्ट को पसंदीदा तरीके के रूप में सुझाते हैं, क्योंकि यह रिमोट कनेक्शन का समर्थन कर सकता है। यह सर्वर को अपनी टीम के साथ साझा करना या क्लाउड वातावरण में उपयोग करना आसान बनाता है।
यह कॉन्फ़िगरेशन Qdrant MCP सर्वर को एक विशेष कोड खोज टूल में बदल देता है जो:
- कोड स्निपेट, दस्तावेज़ीकरण और कार्यान्वयन विवरण संग्रहीत कर सकता है
- सिमेंटिक खोज के आधार पर प्रासंगिक कोड उदाहरण पुनर्प्राप्त कर सकता है
- डेवलपर्स को विशिष्ट कार्यान्वयन या उपयोग पैटर्न खोजने में मदद कर सकता है
आप कोड स्निपेट के प्राकृतिक भाषा विवरण (information पैरामीटर में) वास्तविक कोड (metadata.code प्रॉपर्टी में) के साथ संग्रहीत करके डेटाबेस भर सकते हैं, और फिर उन्हें प्राकृतिक भाषा क्वेरी का उपयोग करके खोज सकते हैं जो बताती हैं कि आप क्या खोज रहे हैं।
[!NOTE] ऊपर दिए गए टूल विवरण उदाहरण हैं और आपके विशिष्ट उपयोग के मामले के लिए अनुकूलित करने की आवश्यकता हो सकती है। अपनी टीम के वर्कफ़्लो और आपके द्वारा संग्रहीत और पुनर्प्राप्त किए जाने वाले कोड स्निपेट के विशिष्ट प्रकारों से बेहतर मेल खाने के लिए विवरण समायोजित करने पर विचार करें।
यदि आपने mcp-server-qdrant सफलतापूर्वक स्थापित किया है, लेकिन फिर भी इसे Cursor के साथ काम नहीं करवा पा रहे हैं, तो कृपया Cursor नियम बनाने पर विचार करें ताकि एजेंट नया कोड स्निपेट बनाते समय MCP टूल्स का हमेशा उपयोग किया जाए। आप नियमों को केवल कुछ फ़ाइल प्रकारों के लिए काम करने के लिए प्रतिबंधित कर सकते हैं, ताकि दस्तावेज़ीकरण या अन्य प्रकार की सामग्री के लिए MCP सर्वर का उपयोग न हो।
Claude Code के साथ उपयोग
आप इस MCP सर्वर से जोड़कर Claude Code की क्षमताओं को बढ़ा सकते हैं, जिससे आपके मौजूदा कोडबेस पर सिमेंटिक खोज सक्षम हो जाती है।
mcp-server-qdrant सेट करना
-
MCP सर्वर को Claude Code में जोड़ें:
# Add mcp-server-qdrant configured for code search claude mcp add code-search \ -e QDRANT_URL="http://localhost:6333" \ -e COLLECTION_NAME="code-repository" \ -e EMBEDDING_MODEL="sentence-transformers/all-MiniLM-L6-v2" \ -e TOOL_STORE_DESCRIPTION="Store code snippets with descriptions. The 'information' parameter should contain a natural language description of what the code does, while the actual code should be included in the 'metadata' parameter as a 'code' property." \ -e TOOL_FIND_DESCRIPTION="Search for relevant code snippets using natural language. The 'query' parameter should describe the functionality you're looking for." \ -- uvx mcp-server-qdrant -
सत्यापित करें कि सर्वर जोड़ा गया था:
claude mcp list
Claude Code में सिमेंटिक कोड खोज का उपयोग
TOOL_STORE_DESCRIPTION और TOOL_FIND_DESCRIPTION में निर्दिष्ट टूल विवरण, Claude Code को MCP सर्वर का उपयोग करने के तरीके के बारे में मार्गदर्शन करते हैं। ऊपर दिए गए उदाहरण हैं और आपके विशिष्ट उपयोग के मामले के लिए अनुकूलित करने की आवश्यकता हो सकती है। हालाँकि, Claude Code पहले से ही सक्षम होना चाहिए:
- विवरण के साथ कोड स्निपेट संग्रहीत करने के लिए
qdrant-storeटूल का उपयोग करें। - प्राकृतिक भाषा का उपयोग करके प्रासंगिक कोड स्निपेट खोजने के लिए
qdrant-findटूल का उपयोग करें।
विकास मोड में MCP सर्वर चलाएँ
MCP सर्वर को mcp dev कमांड का उपयोग करके विकास मोड में चलाया जा सकता है। यह सर्वर शुरू करेगा और आपके ब्राउज़र में MCP इंस्पेक्टर खोलेगा।
COLLECTION_NAME=mcp-dev fastmcp dev src/mcp_server_qdrant/server.py
VS Code के साथ उपयोग
एक-क्लिक स्थापना के लिए, नीचे दिए गए इंस्टॉल बटनों में से एक पर क्लिक करें:
मैन्युअल स्थापना
VS Code में अपनी User Settings (JSON) फ़ाइल में निम्नलिखित JSON ब्लॉक जोड़ें। आप Ctrl + Shift + P दबाकर और Preferences: Open User Settings (JSON) टाइप करके ऐसा कर सकते हैं।
{
"mcp": {
"inputs": [
{
"type": "promptString",
"id": "qdrantUrl",
"description": "Qdrant URL"
},
{
"type": "promptString",
"id": "qdrantApiKey",
"description": "Qdrant API Key",
"password": true
},
{
"type": "promptString",
"id": "collectionName",
"description": "Collection Name"
}
],
"servers": {
"qdrant": {
"command": "uvx",
"args": ["mcp-server-qdrant"],
"env": {
"QDRANT_URL": "${input:qdrantUrl}",
"QDRANT_API_KEY": "${input:qdrantApiKey}",
"COLLECTION_NAME": "${input:collectionName}"
}
}
}
}
}
या यदि आप Docker का उपयोग करना पसंद करते हैं, तो इसके बजाय यह कॉन्फ़िगरेशन जोड़ें:
{
"mcp": {
"inputs": [
{
"type": "promptString",
"id": "qdrantUrl",
"description": "Qdrant URL"
},
{
"type": "promptString",
"id": "qdrantApiKey",
"description": "Qdrant API Key",
"password": true
},
{
"type": "promptString",
"id": "collectionName",
"description": "Collection Name"
}
],
"servers": {
"qdrant": {
"command": "docker",
"args": [
"run",
"-p", "8000:8000",
"-i",
"--rm",
"-e", "QDRANT_URL",
"-e", "QDRANT_API_KEY",
"-e", "COLLECTION_NAME",
"mcp-server-qdrant"
],
"env": {
"QDRANT_URL": "${input:qdrantUrl}",
"QDRANT_API_KEY": "${input:qdrantApiKey}",
"COLLECTION_NAME": "${input:collectionName}"
}
}
}
}
}
वैकल्पिक रूप से, आप अपने वर्कस्पेस में निम्नलिखित सामग्री के साथ एक .vscode/mcp.json फ़ाइल बना सकते हैं:
{
"inputs": [
{
"type": "promptString",
"id": "qdrantUrl",
"description": "Qdrant URL"
},
{
"type": "promptString",
"id": "qdrantApiKey",
"description": "Qdrant API Key",
"password": true
},
{
"type": "promptString",
"id": "collectionName",
"description": "Collection Name"
}
],
"servers": {
"qdrant": {
"command": "uvx",
"args": ["mcp-server-qdrant"],
"env": {
"QDRANT_URL": "${input:qdrantUrl}",
"QDRANT_API_KEY": "${input:qdrantApiKey}",
"COLLECTION_NAME": "${input:collectionName}"
}
}
}
}
Docker के साथ वर्कस्पेस कॉन्फ़िगरेशन के लिए, .vscode/mcp.json में इसका उपयोग करें:
{
"inputs": [
{
"type": "promptString",
"id": "qdrantUrl",
"description": "Qdrant URL"
},
{
"type": "promptString",
"id": "qdrantApiKey",
"description": "Qdrant API Key",
"password": true
},
{
"type": "promptString",
"id": "collectionName",
"description": "Collection Name"
}
],
"servers": {
"qdrant": {
"command": "docker",
"args": [
"run",
"-p", "8000:8000",
"-i",
"--rm",
"-e", "QDRANT_URL",
"-e", "QDRANT_API_KEY",
"-e", "COLLECTION_NAME",
"mcp-server-qdrant"
],
"env": {
"QDRANT_URL": "${input:qdrantUrl}",
"QDRANT_API_KEY": "${input:qdrantApiKey}",
"COLLECTION_NAME": "${input:collectionName}"
}
}
}
}
योगदान
यदि आपके पास mcp-server-qdrant को बेहतर बनाने के सुझाव हैं, या कोई बग रिपोर्ट करना चाहते हैं, तो एक issue खोलें! हम सभी और किसी भी योगदान का स्वागत करते हैं।
mcp-server-qdrant का स्थानीय परीक्षण
MCP इंस्पेक्टर MCP सर्वरों के परीक्षण और डिबगिंग के लिए एक डेवलपर टूल है। यह एक क्लाइंट UI (डिफ़ॉल्ट पोर्ट 5173) और एक MCP प्रॉक्सी सर्वर (डिफ़ॉल्ट पोर्ट 3000) दोनों चलाता है। इंस्पेक्टर का उपयोग करने के लिए अपने ब्राउज़र में क्लाइंट UI खोलें।
QDRANT_URL=":memory:" COLLECTION_NAME="test" \
fastmcp dev src/mcp_server_qdrant/server.py
शुरू होने के बाद, इंस्पेक्टर इंटरफ़ेस तक पहुँचने के लिए अपना ब्राउज़र http://localhost:5173 पर खोलें।
लाइसेंस
यह MCP सर्वर Apache License 2.0 के अंतर्गत लाइसेंस प्राप्त है। इसका अर्थ है कि आप Apache License 2.0 की शर्तों और नियमों के अधीन, सॉफ़्टवेयर का उपयोग, संशोधन और वितरण करने के लिए स्वतंत्र हैं। अधिक जानकारी के लिए, कृपया प्रोजेक्ट रिपॉज़िटरी में LICENSE फ़ाइल देखें।