Milvus MCP Server
आधिकारिकअपने Milvus वेक्टर डेटाबेस में डेटा खोजें, क्वेरी करें और उससे इंटरैक्ट करें।
दस्तावेज़
Milvus के लिए MCP सर्वर
मॉडल कॉन्टेक्स्ट प्रोटोकॉल (MCP) एक खुला प्रोटोकॉल है जो LLM अनुप्रयोगों और बाहरी डेटा स्रोतों और उपकरणों के बीच सहज एकीकरण को सक्षम करता है। चाहे आप AI-संचालित IDE बना रहे हों, चैट इंटरफ़ेस को बढ़ा रहे हों, या कस्टम AI वर्कफ़्लो बना रहे हों, MCP LLM को उनके आवश्यक संदर्भ से जोड़ने का एक मानकीकृत तरीका प्रदान करता है।
यह रिपॉजिटरी एक MCP सर्वर रखती है जो Milvus वेक्टर डेटाबेस कार्यक्षमता तक पहुँच प्रदान करता है।

पूर्वापेक्षाएँ
इस MCP सर्वर का उपयोग करने से पहले, सुनिश्चित करें कि आपके पास है:
- Python 3.10 या उच्चतर
- एक चालू Milvus इंस्टेंस (स्थानीय या दूरस्थ)
- uv स्थापित (सर्वर चलाने के लिए अनुशंसित)
उपयोग
इस MCP सर्वर का उपयोग करने का अनुशंसित तरीका इसे बिना इंस्टॉलेशन के सीधे uv के साथ चलाना है। नीचे दिए गए उदाहरणों में Claude Desktop और Cursor दोनों को इसी तरह उपयोग करने के लिए कॉन्फ़िगर किया गया है।
यदि आप रिपॉजिटरी क्लोन करना चाहते हैं:
git clone https://github.com/zilliztech/mcp-server-milvus.git
cd mcp-server-milvus
फिर आप सर्वर को सीधे चला सकते हैं:
uv run src/mcp_server_milvus/server.py --milvus-uri http://localhost:19530
वैकल्पिक रूप से आप पर्यावरण चर सेट करने के लिए src/mcp_server_milvus/ निर्देशिका में .env फ़ाइल बदल सकते हैं और निम्न कमांड से सर्वर चला सकते हैं:
uv run src/mcp_server_milvus/server.py
महत्वपूर्ण: .env फ़ाइल की कमांड लाइन तर्कों से अधिक प्राथमिकता होगी।
चलाने के तरीके
सर्वर दो चलाने के तरीकों का समर्थन करता है: stdio (डिफ़ॉल्ट) और SSE (सर्वर-प्रेषित ईवेंट)।
Stdio मोड (डिफ़ॉल्ट)
-
विवरण: मानक इनपुट/आउटपुट के माध्यम से क्लाइंट के साथ संचार करता है। यदि कोई मोड निर्दिष्ट नहीं है तो यह डिफ़ॉल्ट मोड है।
-
उपयोग:
uv run src/mcp_server_milvus/server.py --milvus-uri http://localhost:19530
SSE मोड
-
विवरण: संचार के लिए HTTP सर्वर-प्रेषित ईवेंट का उपयोग करता है। यह मोड कई क्लाइंट को HTTP के माध्यम से कनेक्ट करने की अनुमति देता है और वेब-आधारित अनुप्रयोगों के लिए उपयुक्त है।
-
उपयोग:
uv run src/mcp_server_milvus/server.py --sse --milvus-uri http://localhost:19530 --port 8000--sse: SSE मोड सक्षम करता है।--port: SSE सर्वर के लिए पोर्ट निर्दिष्ट करता है (डिफ़ॉल्ट: 8000)।
-
SSE मोड में डिबगिंग:
यदि आप SSE मोड में डिबग करना चाहते हैं, तो SSE सेवा शुरू करने के बाद, निम्न कमांड दर्ज करें:
mcp dev src/mcp_server_milvus/server.pyआउटपुट कुछ इस प्रकार होगा:
% mcp dev src/mcp_server_milvus/merged_server.py Starting MCP inspector... ⚙️ Proxy server listening on port 6277 🔍 MCP Inspector is up and running at http://127.0.0.1:6274 🚀फिर आप परीक्षण के लिए
http://127.0.0.1:6274पर MCP इंस्पेक्टर तक पहुँच सकते हैं।
स्ट्रीमेबल HTTP मोड
-
विवरण: संचार के लिए स्ट्रीमिंग समर्थन के साथ HTTP का उपयोग करता है। यह उत्पादन परिनियोजन के लिए अनुशंसित परिवहन है और स्टेटफुल और स्टेटलेस दोनों संचालन का समर्थन करता है।
-
उपयोग:
uv run src/mcp_server_milvus/server.py --streamable-http --milvus-uri http://localhost:19530 --port 8000--streamable-http: स्ट्रीमेबल HTTP मोड सक्षम करता है।--port: सर्वर के लिए पोर्ट निर्दिष्ट करता है (डिफ़ॉल्ट: 8000)।--stateless: स्टेटलेस मोड के लिए वैकल्पिक फ़्लैग (कोई सत्र स्थायित्व नहीं)।
-
स्टेटलेस मोड:
uv run src/mcp_server_milvus/server.py --streamable-http --stateless --milvus-uri http://localhost:19530 --port 8000
समर्थित अनुप्रयोग
इस MCP सर्वर का उपयोग विभिन्न LLM अनुप्रयोगों के साथ किया जा सकता है जो मॉडल कॉन्टेक्स्ट प्रोटोकॉल का समर्थन करते हैं:
- Claude Desktop: Claude के लिए Anthropic का डेस्कटॉप अनुप्रयोग
- Cursor: MCP समर्थन के साथ AI-संचालित कोड संपादक
- कस्टम MCP क्लाइंट: MCP क्लाइंट विनिर्देश लागू करने वाला कोई भी अनुप्रयोग
Claude Desktop के साथ उपयोग
विभिन्न मोड के लिए कॉन्फ़िगरेशन
SSE मोड कॉन्फ़िगरेशन
SSE मोड के लिए Claude Desktop कॉन्फ़िगर करने हेतु इन चरणों का पालन करें:
- https://claude.ai/download. से Claude Desktop इंस्टॉल करें
- अपनी Claude Desktop कॉन्फ़िगरेशन फ़ाइल खोलें:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json
- macOS:
- SSE मोड के लिए निम्न कॉन्फ़िगरेशन जोड़ें:
{
"mcpServers": {
"milvus-sse": {
"url": "http://your_sse_host:port/sse",
"disabled": false,
"autoApprove": []
}
}
}
स्ट्रीमेबल HTTP मोड कॉन्फ़िगरेशन
{
"mcpServers": {
"milvus-streamable-http": {
"url": "http://your_host:port/mcp",
"disabled": false,
"autoApprove": []
}
}
}
- परिवर्तन लागू करने के लिए Claude Desktop पुनः आरंभ करें।
Stdio मोड कॉन्फ़िगरेशन
Stdio मोड के लिए, इन चरणों का पालन करें:
- https://claude.ai/download. से Claude Desktop इंस्टॉल करें
- अपनी Claude Desktop कॉन्फ़िगरेशन फ़ाइल खोलें:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json
- macOS:
- Stdio मोड के लिए निम्न कॉन्फ़िगरेशन जोड़ें:
{
"mcpServers": {
"milvus": {
"command": "/PATH/TO/uv",
"args": [
"--directory",
"/path/to/mcp-server-milvus/src/mcp_server_milvus",
"run",
"server.py",
"--milvus-uri",
"http://localhost:19530"
]
}
}
}
- परिवर्तन लागू करने के लिए Claude Desktop पुनः आरंभ करें।
Cursor के साथ उपयोग
Cursor भी MCP उपकरणों का समर्थन करता है। आप इन चरणों का पालन करके अपने Milvus MCP सर्वर को Cursor के साथ एकीकृत कर सकते हैं:
एकीकरण चरण
Cursor Settings>MCPखोलेंAdd new global MCP serverपर क्लिक करें- क्लिक करने के बाद, यह आपको स्वचालित रूप से
mcp.jsonफ़ाइल पर पुनर्निर्देशित करेगा, जो मौजूद न होने पर बनाई जाएगी
mcp.json फ़ाइल कॉन्फ़िगर करना
Stdio मोड के लिए:
mcp.json फ़ाइल को निम्न सामग्री से अधिलेखित करें:
{
"mcpServers": {
"milvus": {
"command": "/PATH/TO/uv",
"args": [
"--directory",
"/path/to/mcp-server-milvus/src/mcp_server_milvus",
"run",
"server.py",
"--milvus-uri",
"http://127.0.0.1:19530"
]
}
}
}
SSE मोड के लिए:
-
निम्न कमांड चलाकर सेवा शुरू करें:
uv run src/mcp_server_milvus/server.py --sse --milvus-uri http://your_sse_host --port portनोट:
http://your_sse_hostको अपने वास्तविक SSE होस्ट पते से औरportको आपके द्वारा उपयोग किए जा रहे विशिष्ट पोर्ट नंबर से बदलें। -
एक बार सेवा चालू हो जाने पर,
mcp.jsonफ़ाइल को निम्न सामग्री से अधिलेखित करें:{ "mcpServers": { "milvus-sse": { "url": "http://your_sse_host:port/sse", "disabled": false, "autoApprove": [] } } }
स्ट्रीमेबल HTTP मोड के लिए:
-
सेवा शुरू करें:
uv run src/mcp_server_milvus/server.py --streamable-http --milvus-uri http://your_host --port port -
mcp.jsonअपडेट करें:{ "mcpServers": { "milvus-streamable-http": { "url": "http://your_host:port/mcp", "disabled": false, "autoApprove": [] } } }
एकीकरण पूरा करना
उपरोक्त चरणों को पूरा करने के बाद, कॉन्फ़िगरेशन प्रभावी होना सुनिश्चित करने के लिए Cursor पुनः आरंभ करें या विंडो पुनः लोड करें।
एकीकरण सत्यापित करना
यह सत्यापित करने के लिए कि Cursor ने आपके Milvus MCP सर्वर के साथ सफलतापूर्वक एकीकरण कर लिया है:
Cursor Settings>MCPखोलें- जाँचें कि क्या "milvus", "milvus-sse", या "milvus-streamable-http" सूची में दिखाई देते हैं (आपके द्वारा चुने गए मोड पर निर्भर करता है)
- पुष्टि करें कि संबंधित उपकरण सूचीबद्ध हैं (जैसे, milvus_list_collections, milvus_vector_search, आदि)
- यदि सर्वर सक्षम है लेकिन त्रुटि दिखाता है, तो नीचे समस्या निवारण अनुभाग देखें
उपलब्ध उपकरण
सर्वर निम्नलिखित उपकरण प्रदान करता है:
खोज और क्वेरी संचालन
-
milvus_text_search: पूर्ण पाठ खोज का उपयोग करके दस्तावेज़ खोजें- पैरामीटर:
collection_name: खोजने के लिए संग्रह का नामquery_text: खोजने के लिए पाठlimit: लौटाने के लिए परिणामों की अधिकतम संख्या (डिफ़ॉल्ट: 5)output_fields: परिणामों में शामिल करने के लिए फ़ील्डdrop_ratio: अनदेखा करने के लिए कम-आवृत्ति शब्दों का अनुपात (0.0-1.0) (डिफ़ॉल्ट: 0.2)
- पैरामीटर:
-
milvus_vector_search: संग्रह पर वेक्टर समानता खोज करें- पैरामीटर:
collection_name: खोजने के लिए संग्रह का नामvector: क्वेरी वेक्टरvector_field: वेक्टर खोज के लिए फ़ील्ड नाम (डिफ़ॉल्ट: "vector")limit: लौटाने के लिए परिणामों की अधिकतम संख्या (डिफ़ॉल्ट: 5)output_fields: परिणामों में शामिल करने के लिए फ़ील्डfilter_expr: फ़िल्टर अभिव्यक्तिmetric_type: दूरी मीट्रिक (COSINE, L2, IP) (डिफ़ॉल्ट: "COSINE")radius: श्रेणी खोज के लिए वैकल्पिक निचली सीमा (डिफ़ॉल्ट: कोई नहीं)range_filter: श्रेणी खोज के लिए वैकल्पिक ऊपरी सीमा (डिफ़ॉल्ट: कोई नहीं)
- पैरामीटर:
-
milvus_hybrid_search: संग्रह पर हाइब्रिड खोज करें- पैरामीटर:
collection_name: खोजने के लिए संग्रह का नामquery_text: खोज के लिए पाठ क्वेरीtext_field: पाठ खोज के लिए फ़ील्ड नामvector: पाठ क्वेरी का वेक्टरvector_field: वेक्टर खोज के लिए फ़ील्ड नामlimit: लौटाने के लिए परिणामों की अधिकतम संख्या (डिफ़ॉल्ट: 5)output_fields: परिणामों में शामिल करने के लिए फ़ील्डfilter_expr: फ़िल्टर अभिव्यक्तिsparse_radius: विरल श्रेणी खोज के लिए वैकल्पिक निचली सीमा (डिफ़ॉल्ट: कोई नहीं)sparse_range_filter: विरल श्रेणी खोज के लिए वैकल्पिक ऊपरी सीमा (डिफ़ॉल्ट: कोई नहीं)dense_radius: सघन श्रेणी खोज के लिए वैकल्पिक निचली सीमा (डिफ़ॉल्ट: कोई नहीं)dense_range_filter: सघन श्रेणी खोज के लिए वैकल्पिक ऊपरी सीमा (डिफ़ॉल्ट: कोई नहीं)
- पैरामीटर:
-
milvus_text_similarity_search: संग्रह पर पाठ समानता खोज करेंनोट: यह उपकरण केवल Milvus 2.6.0 और उससे ऊपर में समर्थित है। और आपको Milvus सर्वर पर एम्बेडिंग फ़ंक्शन सेट करना होगा। अधिक विवरण के लिए एम्बेडिंग फ़ंक्शन देखें।
- पैरामीटर:
collection_name: खोजने के लिए संग्रह का नामquery_text: समानता खोज के लिए पाठ क्वेरीanns_field: पाठ खोज के लिए फ़ील्ड नामlimit: लौटाने के लिए परिणामों की अधिकतम संख्या (डिफ़ॉल्ट: 5)output_fields: परिणामों में शामिल करने के लिए फ़ील्डmetric_type: दूरी मीट्रिक (COSINE, L2, IP) (डिफ़ॉल्ट: "COSINE")filter_expr: वैकल्पिक फ़िल्टर अभिव्यक्तिradius: श्रेणी खोज के लिए वैकल्पिक निचली सीमा (डिफ़ॉल्ट: कोई नहीं)range_filter: श्रेणी खोज के लिए वैकल्पिक ऊपरी सीमा (डिफ़ॉल्ट: कोई नहीं)
- पैरामीटर:
-
milvus_query: फ़िल्टर अभिव्यक्तियों का उपयोग करके संग्रह क्वेरी करें- पैरामीटर:
collection_name: क्वेरी करने के लिए संग्रह का नामfilter_expr: फ़िल्टर अभिव्यक्ति (जैसे 'age > 20')output_fields: परिणामों में शामिल करने के लिए फ़ील्डlimit: लौटाने के लिए परिणामों की अधिकतम संख्या (डिफ़ॉल्ट: 10)
- पैरामीटर:
संग्रह प्रबंधन
-
milvus_list_collections: डेटाबेस में सभी संग्रह सूचीबद्ध करें -
milvus_create_collection: त्वरित सेटअप या अनुकूलित स्कीमा के साथ एक नया संग्रह बनाएँ- पैरामीटर:
collection_name: नए संग्रह के लिए नामauto_id: क्या स्वचालित रूप से आईडी उत्पन्न करनी है, डिफ़ॉल्ट Truedimension: वेक्टर आयाम, डिफ़ॉल्ट 768; त्वरित सेटअप के लिए और यदिfield_schemaप्रदान किया गया है तो अनदेखा कर दिया जाएगाprimary_field_name: प्राथमिक फ़ील्ड का नाम, डिफ़ॉल्ट "id"; त्वरित सेटअप के लिए और यदिfield_schemaप्रदान किया गया है तो अनदेखा कर दिया जाएगाvector_field_name: वेक्टर फ़ील्ड का नाम, डिफ़ॉल्ट "vector"; त्वरित सेटअप के लिए और यदिfield_schemaप्रदान किया गया है तो अनदेखा कर दिया जाएगाmetric_type: मीट्रिक प्रकार, डिफ़ॉल्ट "COSINE"; त्वरित सेटअप के लिए और यदिfield_schemaप्रदान किया गया है तो अनदेखा कर दिया जाएगाfield_schema: फ़ील्ड स्कीमा की सूची, प्रत्येक तत्व निम्न कुंजियों वाला एक शब्दकोश है:name: फ़ील्ड का नामtype: फ़ील्ड का प्रकार
index_params: इंडेक्स पैरामीटरों की वैकल्पिक सूची, प्रत्येक तत्व निम्न कुंजियों वाला एक शब्दकोश है:field_name: इंडेक्स करने के लिए फ़ील्ड का नामindex_type: इंडेक्स प्रकार**kwargs: अन्य वैकल्पिक इंडेक्स पैरामीटर
other_kwargs: संग्रह निर्माण के लिए अतिरिक्त कीवर्ड तर्क
- पैरामीटर:
-
milvus_load_collection: खोज और क्वेरी के लिए संग्रह को मेमोरी में लोड करें- पैरामीटर:
collection_name: लोड करने के लिए संग्रह का नामreplica_number: प्रतिकृतियों की संख्या (डिफ़ॉल्ट: 1)
- पैरामीटर:
-
milvus_release_collection: संग्रह को मेमोरी से मुक्त करें- पैरामीटर:
collection_name: मुक्त करने के लिए संग्रह का नाम
- पैरामीटर:
-
milvus_get_collection_info: किसी विशिष्ट संग्रह की स्कीमा, गुण, संग्रह आईडी और अन्य मेटाडेटा जैसी विस्तृत जानकारी सूचीबद्ध करता है।- पैरामीटर:
collection_name: विस्तृत जानकारी प्राप्त करने के लिए संग्रह का नाम
- पैरामीटर:
डेटा संचालन
-
milvus_insert_data: संग्रह में डेटा डालें- पैरामीटर:
collection_name: संग्रह का नामdata: फ़ील्ड नामों को मानों की सूचियों से मैप करने वाला शब्दकोश
- पैरामीटर:
-
milvus_delete_entities: फ़िल्टर अभिव्यक्ति के आधार पर संग्रह से इकाइयाँ हटाएँ- पैरामीटर:
collection_name: संग्रह का नामfilter_expr: हटाने के लिए इकाइयाँ चुनने हेतु फ़िल्टर अभिव्यक्ति
- पैरामीटर:
पर्यावरण चर
MILVUS_URI: Milvus सर्वर URI (--milvus-uri के बजाय सेट किया जा सकता है)MILVUS_TOKEN: वैकल्पिक प्रमाणीकरण टोकनMILVUS_DB: डेटाबेस नाम (डिफ़ॉल्ट "default")
विकास
सर्वर को सीधे चलाने के लिए:
uv run server.py --milvus-uri http://localhost:19530
उदाहरण
Claude Desktop का उपयोग करना
उदाहरण 1: संग्रह सूचीबद्ध करना
What are the collections I have in my Milvus DB?
Claude तब आपके Milvus DB पर यह जानकारी जाँचने के लिए MCP का उपयोग करेगा।
I'll check what collections are available in your Milvus database.
Here are the collections in your Milvus database:
1. rag_demo
2. test
3. chat_messages
4. text_collection
5. image_collection
6. customized_setup
7. streaming_rag_demo
उदाहरण 2: दस्तावेज़ खोजना
Find documents in my text_collection that mention "machine learning"
Claude प्रासंगिक दस्तावेज़ खोजने के लिए Milvus की पूर्ण-पाठ खोज क्षमताओं का उपयोग करेगा:
I'll search for documents about machine learning in your text_collection.
> View result from milvus-text-search from milvus (local)
Here are the documents I found that mention machine learning:
[Results will appear here based on your actual data]
Cursor का उपयोग करना
उदाहरण: एक संग्रह बनाना
Cursor में, आप पूछ सकते हैं:
Create a new collection called 'articles' in Milvus with fields for title (string), content (string), and a vector field (128 dimensions)
Cursor इस संचालन को निष्पादित करने के लिए MCP सर्वर का उपयोग करेगा:
I'll create a new collection called 'articles' with the specified fields.
Collection 'articles' has been created successfully with the following schema:
- title: string
- content: string
- vector: float vector[128]
समस्या निवारण
सामान्य समस्याएँ
कनेक्शन त्रुटियाँ
यदि आप "Milvus सर्वर से कनेक्ट करने में विफल" जैसी त्रुटियाँ देखते हैं:
- सत्यापित करें कि आपका Milvus इंस्टेंस चल रहा है:
docker ps(यदि Docker का उपयोग कर रहे हैं) - जाँचें कि आपके कॉन्फ़िगरेशन में URI सही है
- सुनिश्चित करें कि कनेक्शन को अवरुद्ध करने वाले कोई फ़ायरवॉल नियम नहीं हैं
- URI में
localhostके बजाय127.0.0.1का उपयोग करने का प्रयास करें
प्रमाणीकरण समस्याएँ
यदि आप प्रमाणीकरण त्रुटियाँ देखते हैं:
- सत्यापित करें कि आपका
MILVUS_TOKENसही है - जाँचें कि क्या आपके Milvus इंस्टेंस को प्रमाणीकरण की आवश्यकता है
- सुनिश्चित करें कि आपके पास उन संचालनों के लिए सही अनुमतियाँ हैं जिन्हें आप करने का प्रयास कर रहे हैं
उपकरण नहीं मिला
यदि MCP उपकरण Claude Desktop या Cursor में दिखाई नहीं देते हैं:
- अनुप्रयोग पुनः आरंभ करें
- किसी भी त्रुटि के लिए सर्वर लॉग जाँचें
- सत्यापित करें कि MCP सर्वर सही ढंग से चल रहा है
- MCP सेटिंग्स में रिफ्रेश बटन दबाएँ (Cursor के लिए)
सहायता प्राप्त करना
यदि आप समस्याओं का अनुभव करना जारी रखते हैं:
- समान समस्याओं के लिए GitHub Issues जाँचें
- समर्थन के लिए Milvus समुदाय Discord से जुड़ें
- अपनी समस्या के बारे में विस्तृत जानकारी के साथ एक नया इश्यू दर्ज करें