Couchbase
आधिकारिकCouchbase क्लस्टर में संग्रहीत डेटा के साथ प्राकृतिक भाषा का उपयोग करके इंटरैक्ट करें।
Couchbase MCP के साथ आप क्या कर सकते हैं?
- क्लस्टर संरचना का अन्वेषण करें — बकेट, स्कोप और कलेक्शन की सूची माँगें, और
get_buckets_in_cluster,get_scopes_in_bucket, औरget_schema_for_collectionके माध्यम से स्कीमा का निरीक्षण करें। - SQL++ क्वेरी चलाएँ —
run_sql_plus_plus_queryके साथ किसी स्कोप पर केवल-पठन क्वेरी निष्पादित करें, याexplain_sql_plus_plus_queryके माध्यम से निष्पादन योजनाएँ प्राप्त करें। - क्लस्टर स्वास्थ्य जाँचें —
test_cluster_connectionऔरget_cluster_health_and_servicesके साथ कनेक्शन और सेवा स्थिति सत्यापित करें, याget_cluster_diagnostics_reportके माध्यम से डायग्नोस्टिक्स प्राप्त करें। - क्वेरी प्रदर्शन का विश्लेषण करें —
get_longest_running_queriesऔरget_queries_using_primary_indexका उपयोग करके धीमी या अकुशल क्वेरी पहचानें। - दस्तावेज़ प्रबंधित करें —
get_document_by_idऔरupsert_document_by_idके साथ ID द्वारा दस्तावेज़ प्राप्त या संशोधित करें (लेखन टूल के लिएCB_MCP_READ_ONLY_MODE=falseआवश्यक है)। - इंडेक्स अनुकूलित करें —
get_index_advisor_recommendationsके साथ इंडेक्स अनुशंसाएँ प्राप्त करें याlist_indexesके माध्यम से मौजूदा इंडेक्स सूचीबद्ध करें।
दस्तावेज़
Couchbase MCP सर्वर
Couchbase MCP सर्वर एक स्व-होस्टेड मॉडल कॉन्टेक्स्ट प्रोटोकॉल (MCP) सर्वर है जो AI एजेंटों और LLM-संचालित सहायकों — Claude, Cursor, Windsurf, VS Code Copilot, और अन्य MCP क्लाइंट्स — को Couchbase क्लस्टरों में डेटा से जोड़ता है, चाहे वे Capella पर होस्ट किए गए हों या स्व-प्रबंधित हों। MCP एक खुला मानक है जो AI सहायकों को टूल कॉल करने और बाहरी डेटा स्रोतों से क्वेरी करने की अनुमति देता है; यह सर्वर Couchbase के लिए उस मानक को लागू करता है, ताकि एक AI एजेंट आपके क्लस्टर का निरीक्षण कर सके, SQL++ क्वेरी चला सके, दस्तावेज़ पढ़ और लिख सके, और हाथ से लिखे कोड के बजाय प्राकृतिक भाषा का उपयोग करके क्वेरी प्रदर्शन का विश्लेषण कर सके।
यह क्लस्टर हेल्थ, डेटा स्कीमा, की-वैल्यू, क्वेरी, और प्रदर्शन सहित श्रेणियों में टूल प्रदान करता है — केवल-पढ़ने के मोड (डिफ़ॉल्ट रूप से चालू) और सूक्ष्म-स्तरीय टूल अक्षमीकरण के माध्यम से सुरक्षा नियंत्रण के साथ, ताकि आप किसी AI एजेंट को अनजाने में लिखने के जोखिम के बिना अपने डेटा का अन्वेषण और क्वेरी करने दे सकें। यह STDIO और स्ट्रीमेबल HTTP ट्रांसपोर्ट दोनों का समर्थन करता है।
Couchbase MCP सर्वर को पायथन पैकेज इंडेक्स (PyPI) पैकेज और Docker के माध्यम से वितरित किया जाता है। Couchbase MCP सर्वर के लिए एंटरप्राइज़ समर्थन Couchbase AI डेटा प्लेन को लाइसेंस देकर उपलब्ध है, जो Couchbase एजेंट मेमोरी और Couchbase एजेंट कैटलॉग के उपयोग और एंटरप्राइज़ समर्थन का भी अधिकार देता है।
पूर्ण दस्तावेज़ीकरण के लिए, mcp-server.couchbase.com पर जाएँ।
पूर्ण दस्तावेज़ीकरण के लिए, docs.couchbase.com/mcp-server पर जाएँ।
विषय-सूची
- Couchbase MCP सर्वर क्यों
- उदाहरण प्रॉम्प्ट
- विशेषताएँ/टूल
- पूर्वापेक्षाएँ
- कॉन्फ़िगरेशन
- ऑपरेशनल इनसाइट्स सर्वर
- स्ट्रीमेबल HTTP ट्रांसपोर्ट मोड
- SSE ट्रांसपोर्ट मोड
- OAuth 2.1 प्राधिकरण
- Docker इमेज
- उपयोग डेटा संग्रह
- समस्या निवारण युक्तियाँ
- एकीकरण परीक्षण
- FAQ
- योगदान
- समर्थन नीति
Couchbase MCP सर्वर क्यों
- डिफ़ॉल्ट रूप से सुरक्षित — लेखन संचालन (दस्तावेज़ अपसर्ट/इन्सर्ट/डिलीट और डेटा-संशोधित SQL++ क्वेरी) तब तक अवरुद्ध रहते हैं जब तक आप स्पष्ट रूप से
CB_MCP_READ_ONLY_MODE=falseसेट नहीं करते, और व्यक्तिगत टूल को अक्षम या उपयोगकर्ता पुष्टि के पीछे गेट किया जा सकता है। - Capella और स्व-प्रबंधित क्लस्टरों के साथ काम करता है — वही कॉन्फ़िगरेशन Couchbase Capella (पूरी तरह से प्रबंधित) या स्व-होस्टेड Couchbase सर्वर क्लस्टर से जुड़ता है।
- RBAC-जागरूक — टूल अक्षमीकरण LLM व्यवहार को निर्देशित करने के लिए एक सुविधा परत है; अंतर्निहित Couchbase उपयोगकर्ता की भूमिका-आधारित पहुँच नियंत्रण प्राधिकृत सुरक्षा सीमा बनी रहती है।
- उत्पादन ट्रांसपोर्ट — स्थानीय डेस्कटॉप क्लाइंट्स के लिए STDIO पर चलाएँ, या साझा/दूरस्थ तैनाती के लिए वैकल्पिक OAuth 2.1 (JWT/JWKS, प्रदाता-अज्ञेय — Auth0, Okta, Keycloak, Entra, Cognito, आदि) के साथ स्ट्रीमेबल HTTP।
- कोई भी MCP क्लाइंट — Claude Desktop, Cursor, Windsurf, VS Code, और JetBrains AI Assistant/Junie के साथ परीक्षण किया गया; MCP विनिर्देश लागू करने वाले किसी भी क्लाइंट के साथ काम करता है।
उदाहरण प्रॉम्प्ट
एक बार सर्वर कनेक्ट हो जाने पर, आप अपने AI सहायक के माध्यम से अपने Couchbase क्लस्टर से प्राकृतिक भाषा में बात कर सकते हैं। उदाहरण के लिए:
- "इस क्लस्टर में मेरे पास कौन से बकेट, स्कोप और कलेक्शन हैं, और
ordersकलेक्शन की स्कीमा क्या है?" - "
usersकलेक्शन में 10 सबसे हाल के दस्तावेज़ खोजने के लिए एक SQL++ क्वेरी चलाएँwhere status = 'active'।" - "पिछले घंटे में इस क्लस्टर पर 5 सबसे धीमी क्वेरी कौन सी हैं, और क्या उनमें से किसी में कवरिंग इंडेक्स गायब है?"
- "जाँचें कि क्या यह क्लस्टर स्वस्थ है और मुझे बताएं कि कौन सी सेवाएँ चल रही हैं।"
- "इन फ़ील्ड्स के साथ
productsकलेक्शन में एक नया दस्तावेज़ इन्सर्ट करें: ..." (CB_MCP_READ_ONLY_MODE=falseकी आवश्यकता है)
विशेषताएँ/टूल
यह वितरण दो सर्वर भेजता है: ऑपरेशनल सर्वर (डिफ़ॉल्ट —
नीचे दी गई तालिकाएँ) couchbase SDK के माध्यम से एक नियमित Couchbase क्लस्टर से बात करता है, और ऑपरेशनल इनसाइट्स
सर्वर (नीचे इसकी अपनी तालिका) couchbase-operational-insights SDK के माध्यम से ऑपरेशनल इनसाइट्स क्लस्टरों से बात करता है।
क्लस्टर सेटअप और स्वास्थ्य टूल
| टूल नाम | विवरण |
|---|---|
get_server_configuration_status | क्लस्टर से कनेक्ट किए बिना सर्वर स्थिति और कॉन्फ़िगरेशन प्राप्त करें — केवल-पढ़ने के मोड, अक्षम/पुष्टि-आवश्यक टूल, OAuth सेटिंग्स, और हल किए गए लॉगिंग कॉन्फ़िगरेशन की रिपोर्ट करता है |
test_cluster_connection | क्लस्टर से कनेक्ट करके क्लस्टर क्रेडेंशियल जाँचें |
get_cluster_health_and_services | क्लस्टर स्वास्थ्य स्थिति और सभी चल रही सेवाओं की सूची प्राप्त करें, वैकल्पिक रूप से service_types के माध्यम से विशिष्ट सेवाओं तक फ़िल्टर किया गया |
get_cluster_diagnostics_report | SDK के कैश्ड कनेक्शन डायग्नोस्टिक्स प्राप्त करें — क्या कनेक्शन पहले से टूटे हुए थे और कितने समय के लिए, बिना किसी सक्रिय नेटवर्क प्रोबिंग के |
get_cluster_metrics | प्रबंधन REST API के stats-range एंडपॉइंट के माध्यम से एक या अधिक क्लस्टर सांख्यिकी ऐतिहासिक समय विंडो पर प्राप्त करें। केवल स्व-प्रबंधित Couchbase सर्वर 7.6+ — Capella पर उपलब्ध नहीं। |
discover_tool_input_values | सर्वर के साथ बंडल किए गए संदर्भ डेटा से किसी अन्य टूल को आवश्यक सटीक इनपुट मान देखें — वर्तमान में get_cluster_metrics के लिए हर Couchbase सर्वर मीट्रिक नाम (प्रकार, इकाई, संस्करण जोड़ा गया, विवरण)। श्रेणी द्वारा ब्राउज़ करें या कीवर्ड द्वारा फ़ज़ी-खोज करें। क्लस्टर कनेक्शन के बिना, ऑफ़लाइन काम करता है। |
डेटा मॉडल और स्कीमा खोज टूल
| टूल नाम | विवरण |
|---|---|
get_buckets_in_cluster | क्लस्टर में सभी बकेट की सूची प्राप्त करें |
get_scopes_in_bucket | निर्दिष्ट बकेट में सभी स्कोप की सूची प्राप्त करें |
get_collections_in_scope | निर्दिष्ट स्कोप और बकेट में सभी कलेक्शन की सूची प्राप्त करें। ध्यान दें कि इस टूल के लिए क्लस्टर में क्वेरी सेवा होनी आवश्यक है। |
get_scopes_and_collections_in_bucket | निर्दिष्ट बकेट में सभी स्कोप और कलेक्शन की सूची प्राप्त करें |
get_schema_for_collection | एक कलेक्शन के लिए संरचना प्राप्त करें |
create_scope | एक बकेट में नया स्कोप बनाएँ (Couchbase सर्वर 7.6+ और Capella)। डिफ़ॉल्ट रूप से अक्षम जब CB_MCP_READ_ONLY_MODE=true। |
create_collection | एक मौजूदा स्कोप में नया कलेक्शन बनाएँ (Couchbase सर्वर 7.6+ और Capella)। डिफ़ॉल्ट रूप से अक्षम जब CB_MCP_READ_ONLY_MODE=true। |
delete_scope | एक बकेट से स्कोप और उसके सभी कलेक्शन हटाएँ — स्थायी। डिफ़ॉल्ट रूप से अक्षम जब CB_MCP_READ_ONLY_MODE=true। |
delete_collection | एक स्कोप से कलेक्शन और उसके सभी दस्तावेज़ हटाएँ — स्थायी। डिफ़ॉल्ट रूप से अक्षम जब CB_MCP_READ_ONLY_MODE=true। |
दस्तावेज़ KV संचालन टूल
| टूल नाम | विवरण |
|---|---|
get_document_by_id | निर्दिष्ट स्कोप और कलेक्शन से ID द्वारा एक दस्तावेज़ प्राप्त करें |
lookup_subdocument | पूरे दस्तावेज़ को लाए बिना पथ द्वारा दस्तावेज़ के भाग देखें (विशिष्ट फ़ील्ड, अस्तित्व जाँच, या सरणी/ऑब्जेक्ट गणना) |
upsert_document_by_id | निर्दिष्ट स्कोप और कलेक्शन में ID द्वारा एक दस्तावेज़ अपसर्ट करें। डिफ़ॉल्ट रूप से अक्षम जब CB_MCP_READ_ONLY_MODE=true। |
insert_document_by_id | ID द्वारा एक नया दस्तावेज़ इन्सर्ट करें (यदि दस्तावेज़ मौजूद है तो विफल होता है)। डिफ़ॉल्ट रूप से अक्षम जब CB_MCP_READ_ONLY_MODE=true। |
replace_document_by_id | ID द्वारा एक मौजूदा दस्तावेज़ बदलें (यदि दस्तावेज़ मौजूद नहीं है तो विफल होता है)। डिफ़ॉल्ट रूप से अक्षम जब CB_MCP_READ_ONLY_MODE=true। |
delete_document_by_id | निर्दिष्ट स्कोप और कलेक्शन से ID द्वारा एक दस्तावेज़ हटाएँ। डिफ़ॉल्ट रूप से अक्षम जब CB_MCP_READ_ONLY_MODE=true। |
mutate_subdocument | पूरे दस्तावेज़ को फिर से लिखे बिना पथ द्वारा मौजूदा दस्तावेज़ के भाग संशोधित करें (अपसर्ट, इन्सर्ट, रिप्लेस, रिमूव, सरणी संचालन, काउंटर)। डिफ़ॉल्ट रूप से अक्षम जब CB_MCP_READ_ONLY_MODE=true। |
क्वेरी और इंडेक्सिंग टूल
| टूल नाम | विवरण |
|---|---|
list_indexes | क्लस्टर में सभी इंडेक्स उनकी परिभाषाओं के साथ सूचीबद्ध करें, बकेट, स्कोप, कलेक्शन और इंडेक्स नाम द्वारा वैकल्पिक फ़िल्टरिंग के साथ। असंसाधित इंडेक्स जानकारी लौटाने के लिए return_raw_index_stats=true सेट करें। |
get_index_advisor_recommendations | किसी दिए गए SQL++ क्वेरी के लिए क्वेरी प्रदर्शन को अनुकूलित करने हेतु Couchbase इंडेक्स सलाहकार से इंडेक्स अनुशंसाएँ प्राप्त करें |
create_index | एक कलेक्शन पर स्केलर (गैर-वेक्टर) GSI द्वितीयक इंडेक्स बनाएँ। डिफ़ॉल्ट रूप से विलंबित — इसे बनाने के लिए बाद में build_index कॉल करें। डिफ़ॉल्ट रूप से अक्षम जब CB_MCP_READ_ONLY_MODE=true। |
build_index | एक कलेक्शन पर सभी विलंबित इंडेक्स का निर्माण ट्रिगर करें। डिफ़ॉल्ट रूप से अक्षम जब CB_MCP_READ_ONLY_MODE=true। |
drop_index | एक कलेक्शन से GSI इंडेक्स (स्केलर या वेक्टर) हटाएँ। डिफ़ॉल्ट रूप से अक्षम जब CB_MCP_READ_ONLY_MODE=true। |
run_sql_plus_plus_query | निर्दिष्ट स्कोप पर एक SQL++ क्वेरी चलाएँ। क्वेरी स्वचालित रूप से निर्दिष्ट बकेट और स्कोप तक सीमित होती हैं, इसलिए कलेक्शन नाम सीधे उपयोग करें (जैसे, SELECT * FROM users के बजाय SELECT * FROM bucket.scope.users)।CB_MCP_READ_ONLY_MODE डिफ़ॉल्ट रूप से true है, जिसका अर्थ है कि सभी लेखन संचालन (KV, क्वेरी, स्कोप/कलेक्शन प्रबंधन, और इंडेक्स प्रबंधन) अक्षम हैं। जब सक्षम होता है (यानी CB_MCP_READ_ONLY_MODE=true), लेखन टूल लोड नहीं होते हैं और डेटा संशोधित करने वाली SQL++ क्वेरी अवरुद्ध होती हैं। |
explain_sql_plus_plus_query | SQL++ क्वेरी के लिए EXPLAIN योजना उत्पन्न और मूल्यांकन करें। क्वेरी मेटाडेटा, निकाली गई योजना, और योजना मूल्यांकन निष्कर्ष लौटाता है। |
पूर्ण-पाठ खोज (FTS) टूल
Couchbase सर्वर 7.6+ और खोज सेवा की आवश्यकता है। वेक्टर खोज इन टूल द्वारा समर्थित नहीं है (अलग वेक्टर खोज टूलिंग देखें)।
| टूल नाम | विवरण |
|---|---|
list_fts_indexes | खोज (FTS) इंडेक्स सूचीबद्ध करें। बिना फ़िल्टर के, क्लस्टर-स्तरीय (लीगेसी) इंडेक्स सूचीबद्ध करता है; bucket_name के साथ, उस बकेट के हर स्कोप में स्कोप-स्तरीय (स्कोप्ड) इंडेक्स सूचीबद्ध करता है; bucket_name और scope_name के साथ, उस एक स्कोप में स्कोप-स्तरीय इंडेक्स सूचीबद्ध करता है। |
get_fts_index_definition | एकल खोज इंडेक्स की पूर्ण परिभाषा प्राप्त करें (मैपिंग, विश्लेषक, योजना पैरामीटर)। स्कोप-स्तरीय इंडेक्स के लिए bucket_name और scope_name एक साथ पास करें, या क्लस्टर-स्तरीय (लीगेसी) इंडेक्स के लिए दोनों को छोड़ दें। |
run_fts_query | एक खोज इंडेक्स के विरुद्ध FTS क्वेरी चलाएँ, या उसकी निष्पादन योजना प्राप्त करें। query कच्चा FTS क्वेरी JSON बॉडी है, जो किसी भी गैर-वेक्टर क्वेरी प्रकार (match, match_phrase, term, conjuncts, disjuncts, geo, date/numeric range, query_string, ...) का समर्थन करता है। परिणामों के बजाय निष्पादन योजना प्राप्त करने के लिए explain=true पास करें — यह अभी भी क्वेरी निष्पादित करता है (limit डिफ़ॉल्ट 1) क्योंकि खोज सेवा केवल प्रति मिलान हिट योजना उजागर करती है, अलग ड्राई-रन कॉल के रूप में नहीं। |
क्वेरी प्रदर्शन विश्लेषण टूल
| टूल नाम | विवरण |
|---|---|
get_longest_running_queries | औसत सेवा समय द्वारा सबसे लंबे समय तक चलने वाली क्वेरी प्राप्त करें |
get_most_frequent_queries | सबसे अधिक बार निष्पादित क्वेरी प्राप्त करें |
get_queries_with_largest_response_sizes | सबसे बड़े प्रतिक्रिया आकार वाली क्वेरी प्राप्त करें |
get_queries_with_large_result_count | सबसे बड़े परिणाम गणना वाली क्वेरी प्राप्त करें |
get_queries_using_primary_index | प्राथमिक इंडेक्स का उपयोग करने वाली क्वेरी प्राप्त करें (संभावित प्रदर्शन चिंता) |
get_queries_not_using_covering_index | कवरिंग इंडेक्स का उपयोग न करने वाली क्वेरी प्राप्त करें |
get_queries_not_selective | गैर-चयनात्मक क्वेरी प्राप्त करें (इंडेक्स स्कैन अंतिम परिणाम से कहीं अधिक दस्तावेज़ लौटाते हैं) |
ऑपरेशनल इनसाइट्स टूल
अलग operational-insights सर्वर द्वारा पंजीकृत (नीचे
ऑपरेशनल इनसाइट्स सर्वर देखें), डिफ़ॉल्ट
operational सर्वर द्वारा नहीं।
| टूल नाम | विवरण |
|---|---|
get_server_configuration_status | क्लस्टर से कनेक्ट किए बिना इस सर्वर की स्थिति और कॉन्फ़िगरेशन प्राप्त करें — केवल-पठन मोड, अक्षम/पुष्टि-आवश्यक टूल, OAuth सेटिंग्स, और हल किया गया लॉगिंग कॉन्फ़िगरेशन। ऑपरेशनल सर्वर के साथ साझा: वही टूल, दोनों द्वारा पंजीकृत। |
get_databases_in_cluster | Operational Insights क्लस्टर में सभी डेटाबेस सूचीबद्ध करें। |
get_scopes_in_database | डेटाबेस में सभी स्कोप सूचीबद्ध करें। |
get_collections_in_scope | स्कोप में सभी कलेक्शन (डेटासेट) सूचीबद्ध करें। इसका नाम ऑपरेशनल सर्वर के समान नाम वाले टूल के साथ साझा है — नीचे दिया गया नोट देखें। |
get_schema_for_collection | दस्तावेज़ों का नमूना लेकर कलेक्शन की JSON स्कीमा का अनुमान लगाएं। इसका नाम ऑपरेशनल सर्वर के समान नाम वाले टूल के साथ साझा है — नीचे दिया गया नोट देखें। |
list_indexes | System.Metadata.Index कैटलॉग के माध्यम से द्वितीयक इंडेक्स सूचीबद्ध करें (SDK में इंडेक्स मैनेजर नहीं है)। इसका नाम ऑपरेशनल सर्वर के समान नाम वाले टूल के साथ साझा है — नीचे दिया गया नोट देखें। |
run_query_sync | SQL++ स्टेटमेंट (SELECT, DML, या DDL) चलाएं और सभी परिणाम पंक्तियाँ लौटाएं। QueryOptions(readonly=True) के माध्यम से सर्वर-साइड पर केवल-पठन मोड लागू करता है — यहाँ कोई क्लाइंट-साइड SQL++ पार्सर नहीं है। |
explain_query | SQL++ स्टेटमेंट के लिए EXPLAIN के माध्यम से क्वेरी प्लान उत्पन्न करें, बिना इसे निष्पादित किए। |
create_index | CREATE INDEX के माध्यम से द्वितीयक इंडेक्स बनाएं (SDK में इंडेक्स मैनेजर नहीं है)। डिफ़ॉल्ट रूप से अक्षम जब CB_MCP_READ_ONLY_MODE=true। इसका नाम ऑपरेशनल सर्वर के समान नाम वाले टूल के साथ साझा है — नीचे दिया गया नोट देखें। |
run_query_async | SQL++ स्टेटमेंट शुरू करें बिना इसके समाप्त होने की प्रतीक्षा किए, query_handle टोकन लौटाते हुए। run_query_sync के समान केवल-पठन प्रवर्तन। |
get_async_query_results | जाँचें कि क्या एक एसिंक्रोनस क्वेरी समाप्त हो गई है और, यदि हाँ, तो इसकी पंक्तियाँ लौटाएं। स्थिति जाँच के रूप में भी कार्य करता है — यदि अभी तैयार नहीं है तो बाद में फिर से कॉल करें। |
discard_async_query_results | सर्वर पर समाप्त एसिंक्रोनस क्वेरी के परिणाम बफ़र मुक्त करें। get_async_query_results के बाद सामान्य सफाई चरण। |
cancel_async_query | एक एसिंक्रोनस क्वेरी रोकें जो अभी भी चल रही है। डिफ़ॉल्ट रूप से अक्षम जब CB_MCP_READ_ONLY_MODE=true। समाप्त क्वेरी को रद्द नहीं किया जा सकता — इसके बजाय इसके परिणाम त्याग दें। |
सर्वर एसिंक्रोनस अनुरोध API टूल लंबी चलने वाली क्वेरी के लिए एक प्रारंभ → पोल → त्याग-या-रद्द प्रवाह बनाते हैं: run_query_async एक query_handle लौटाता है, get_async_query_results को तब तक पोल किया जाता है जब तक यह तैयारी की रिपोर्ट नहीं करता (और पंक्तियाँ लौटाता है), फिर या तो discard_async_query_results परिणाम मुक्त करता है या, अभी भी चल रही क्वेरी के लिए, cancel_async_query इसे रोकता है।
नोट:
get_collections_in_scope,get_schema_for_collection,create_indexऔरlist_indexesदोनों सर्वरों पर मौजूद हैं, भिन्न व्यवहार के साथ। (get_server_configuration_statusभी दोनों पर दिखाई देता है, लेकिन यह जानबूझकर एक साझा टूल है — समान कार्यान्वयन, समान परिणाम आकार — इसलिए इसे अलग करने की आवश्यकता नहीं है।) प्रत्येक सर्वर एक अलग प्रक्रिया है, इसलिए यह केवल तभी चिंता का विषय है जब एक एकल MCP क्लाइंटoperationalऔरoperational-insightsदोनों को एक साथ पंजीकृत करता है — उस स्थिति में, क्लाइंट कॉन्फ़िगरेशन परत पर अलग करें (जैसे क्लाइंट के अपने कॉन्फ़िग में दो सर्वर प्रविष्टियों को अलग नाम देकर)।
पूर्वापेक्षाएँ
- Python 3.10 या उच्चतर।
- एक चालू Couchbase क्लस्टर। शुरू करने का सबसे आसान तरीका Capella निःशुल्क स्तर का उपयोग करना है, जो Couchbase सर्वर का पूरी तरह से प्रबंधित संस्करण है। आप निर्देशों का पालन करके नमूना डेटासेट में से एक आयात कर सकते हैं या अपना स्वयं का डेटा आयात कर सकते हैं।
- सर्वर चलाने के लिए uv स्थापित।
- सर्वर को Claude से जोड़ने के लिए Claude Desktop जैसा एक MCP क्लाइंट स्थापित। निर्देश Claude Desktop और Cursor के लिए प्रदान किए गए हैं। अन्य MCP क्लाइंट भी उपयोग किए जा सकते हैं।
कॉन्फ़िगरेशन
MCP सर्वर को पूर्व-निर्मित PyPI पैकेज या uv का उपयोग करके स्रोत से चलाया जा सकता है।
PyPI से चलाना
हम MCP सर्वर के लिए एक पूर्व-निर्मित PyPI पैकेज प्रकाशित करते हैं।
MCP क्लाइंट्स के लिए पूर्व-निर्मित पैकेज का उपयोग करके सर्वर कॉन्फ़िगरेशन
बेसिक प्रमाणीकरण
{
"mcpServers": {
"couchbase": {
"command": "uvx",
"args": ["couchbase-mcp-server"],
"env": {
"CB_CONNECTION_STRING": "couchbases://connection-string",
"CB_USERNAME": "username",
"CB_PASSWORD": "password"
}
}
}
}
या
mTLS
{
"mcpServers": {
"couchbase": {
"command": "uvx",
"args": ["couchbase-mcp-server"],
"env": {
"CB_CONNECTION_STRING": "couchbases://connection-string",
"CB_CLIENT_CERT_PATH": "/path/to/client-certificate.pem",
"CB_CLIENT_KEY_PATH": "/path/to/client.key"
}
}
}
}
नोट: यदि आपके क्लाइंट में अन्य MCP सर्वर उपयोग में हैं, तो आप इसे मौजूदा
mcpServersऑब्जेक्ट में जोड़ सकते हैं।
स्रोत से चलाना
MCP सर्वर को इस रिपॉजिटरी का उपयोग करके स्रोत से चलाया जा सकता है।
रिपॉजिटरी को अपनी स्थानीय मशीन पर क्लोन करें
git clone https://github.com/couchbase/mcp-server-couchbase.git
MCP क्लाइंट्स के लिए स्रोत का उपयोग करके सर्वर कॉन्फ़िगरेशन
यह Claude Desktop, Cursor, Windsurf Editor जैसे MCP क्लाइंट्स के लिए सामान्य कॉन्फ़िगरेशन है।
{
"mcpServers": {
"couchbase": {
"command": "uv",
"args": [
"--directory",
"path/to/cloned/repo/mcp-server-couchbase/",
"run",
"src/mcp_server.py"
],
"env": {
"CB_CONNECTION_STRING": "couchbases://connection-string",
"CB_USERNAME": "username",
"CB_PASSWORD": "password"
}
}
}
}
नोट:
path/to/cloned/repo/mcp-server-couchbase/आपकी स्थानीय मशीन पर क्लोन किए गए रिपॉजिटरी का पथ होना चाहिए। अंत में ट्रेलिंग स्लैश न भूलें!
नोट: यदि आपके क्लाइंट में अन्य MCP सर्वर उपयोग में हैं, तो आप इसे मौजूदा
mcpServersऑब्जेक्ट में जोड़ सकते हैं।
MCP सर्वर के लिए अतिरिक्त कॉन्फ़िगरेशन
सर्वर को पर्यावरण चर या कमांड लाइन तर्कों का उपयोग करके कॉन्फ़िगर किया जा सकता है:
| पर्यावरण चर | CLI तर्क | विवरण | डिफ़ॉल्ट |
|---|---|---|---|
CB_CONNECTION_STRING | --connection-string | Couchbase क्लस्टर के लिए कनेक्शन स्ट्रिंग | आवश्यक |
CB_USERNAME | --username | बेसिक प्रमाणीकरण के लिए आवश्यक बकेट तक पहुंच वाला उपयोगकर्ता नाम | आवश्यक (या mTLS के लिए क्लाइंट प्रमाणपत्र और कुंजी आवश्यक) |
CB_PASSWORD | --password | बेसिक प्रमाणीकरण के लिए पासवर्ड | आवश्यक (या mTLS के लिए क्लाइंट प्रमाणपत्र और कुंजी आवश्यक) |
CB_CLIENT_CERT_PATH | --client-cert-path | mTLS प्रमाणीकरण के लिए क्लाइंट प्रमाणपत्र फ़ाइल का पथ | यदि mTLS उपयोग कर रहे हैं तो आवश्यक (या उपयोगकर्ता नाम और पासवर्ड आवश्यक) |
CB_CLIENT_KEY_PATH | --client-key-path | mTLS प्रमाणीकरण के लिए क्लाइंट कुंजी फ़ाइल का पथ | यदि mTLS उपयोग कर रहे हैं तो आवश्यक (या उपयोगकर्ता नाम और पासवर्ड आवश्यक) |
CB_CA_CERT_PATH | --ca-cert-path | TLS के लिए सर्वर रूट प्रमाणपत्र का पथ यदि सर्वर स्व-हस्ताक्षरित/अविश्वसनीय प्रमाणपत्र के साथ कॉन्फ़िगर किया गया है। यदि आप Capella से कनेक्ट कर रहे हैं तो यह आवश्यक नहीं होगा | |
CB_MCP_READ_ONLY_MODE | --read-only-mode | सभी डेटा संशोधनों को रोकें (KV, क्वेरी, स्कोप/कलेक्शन प्रबंधन, और इंडेक्स प्रबंधन)। सक्षम होने पर, लेखन टूल लोड नहीं होते हैं। | true |
CB_MCP_TRANSPORT | --transport | परिवहन मोड: stdio, http, sse | stdio |
CB_MCP_HOST | --host | HTTP/SSE परिवहन मोड के लिए होस्ट | 127.0.0.1 |
CB_MCP_PORT | --port | HTTP/SSE परिवहन मोड के लिए पोर्ट | 8000 |
CB_MCP_DISABLED_TOOLS | --disabled-tools | अक्षम करने के लिए टूल (देखें टूल अक्षम करना) | कोई नहीं |
CB_MCP_CONFIRMATION_REQUIRED_TOOLS | --confirmation-required-tools | वे टूल जिन्हें MCP elicitation के माध्यम से निष्पादन से पहले स्पष्ट उपयोगकर्ता पुष्टि की आवश्यकता होती है (देखें Elicitation/पुष्टि-आवश्यक टूल) | कोई नहीं |
CB_MCP_LOG_LEVEL | --log-level | MCP सर्वर के लिए लॉगिंग स्तर: off, debug, info, warning, error (देखें लॉगिंग) | info |
CB_MCP_LOG_SINKS | --log-sinks | अल्पविराम-पृथक लॉग गंतव्य: stderr, file, या दोनों (देखें लॉगिंग) | stderr |
CB_MCP_LOG_FILE | --log-file | प्रति-स्तर लॉग फ़ाइलों के लिए आधार पथ (केवल तब उपयोग किया जाता है जब file सिंक सक्षम हो) | mcp_server.log |
CB_MCP_LOG_ROTATION_MAX_SIZE_MB | --log-rotation-max-size-mb | प्रति लॉग फ़ाइल घूमने से पहले वैश्विक अधिकतम आकार MB में, प्रत्येक स्तर द्वारा विरासत में मिला जब तक कि ओवरराइड न किया जाए। 0 अमान्य है और स्टार्टअप चेतावनी के साथ डिफ़ॉल्ट पर वापस आ जाता है | 1 (1 MB) |
CB_MCP_LOG_MAX_BYTES | --log-max-bytes | अप्रचलित — CB_MCP_LOG_ROTATION_MAX_SIZE_MB (MB) का उपयोग करें। वैश्विक घूर्णन आकार बाइट्स में, पिछड़ी संगतता के लिए अभी भी सम्मानित; जब CB_MCP_LOG_ROTATION_MAX_SIZE_MB भी सेट हो तो अनदेखा किया जाता है | अनसेट |
CB_MCP_LOG_ERROR_ROTATION_MAX_SIZE_MB | --log-error-rotation-max-size-mb | ERROR लॉग फ़ाइल के लिए घूर्णन आकार MB में; ERROR के लिए CB_MCP_LOG_ROTATION_MAX_SIZE_MB को ओवरराइड करता है | CB_MCP_LOG_ROTATION_MAX_SIZE_MB से विरासत में मिला |
CB_MCP_LOG_WARNING_ROTATION_MAX_SIZE_MB | --log-warning-rotation-max-size-mb | WARNING लॉग फ़ाइल के लिए घूर्णन आकार MB में; WARNING के लिए CB_MCP_LOG_ROTATION_MAX_SIZE_MB को ओवरराइड करता है | CB_MCP_LOG_ROTATION_MAX_SIZE_MB से विरासत में मिला |
CB_MCP_LOG_INFO_ROTATION_MAX_SIZE_MB | --log-info-rotation-max-size-mb | INFO लॉग फ़ाइल के लिए घूर्णन आकार MB में; INFO के लिए CB_MCP_LOG_ROTATION_MAX_SIZE_MB को ओवरराइड करता है | CB_MCP_LOG_ROTATION_MAX_SIZE_MB से विरासत में मिला |
CB_MCP_LOG_DEBUG_ROTATION_MAX_SIZE_MB | --log-debug-rotation-max-size-mb | DEBUG लॉग फ़ाइल के लिए घूर्णन आकार MB में; DEBUG के लिए CB_MCP_LOG_ROTATION_MAX_SIZE_MB को ओवरराइड करता है | CB_MCP_LOG_ROTATION_MAX_SIZE_MB से विरासत में मिला |
CB_MCP_LOG_RETENTION_BACKUP_COUNT | --log-retention-backup-count | प्रति-स्तर लॉग फ़ाइल के लिए रखी गई घूर्णित बैकअप फ़ाइलें (लाइव फ़ाइल को छोड़कर), प्रत्येक स्तर पर लागू जब तक कि ओवरराइड न किया जाए। 0 केवल लाइव फ़ाइल रखता है (देखें लॉगिंग) | 1 |
CB_MCP_LOG_ERROR_RETENTION_BACKUP_COUNT | --log-error-retention-backup-count | ERROR लॉग फ़ाइल के लिए रखे गए घूर्णित बैकअप; ERROR के लिए वैश्विक गणना को ओवरराइड करता है | CB_MCP_LOG_RETENTION_BACKUP_COUNT से विरासत में मिला |
CB_MCP_LOG_WARNING_RETENTION_BACKUP_COUNT | --log-warning-retention-backup-count | WARNING लॉग फ़ाइल के लिए रखे गए घूर्णित बैकअप; WARNING के लिए वैश्विक गणना को ओवरराइड करता है | CB_MCP_LOG_RETENTION_BACKUP_COUNT से विरासत में मिला |
CB_MCP_LOG_INFO_RETENTION_BACKUP_COUNT | --log-info-retention-backup-count | INFO लॉग फ़ाइल के लिए रखे गए घूर्णित बैकअप; INFO के लिए वैश्विक गणना को ओवरराइड करता है | CB_MCP_LOG_RETENTION_BACKUP_COUNT से विरासत में मिला |
CB_MCP_LOG_DEBUG_RETENTION_BACKUP_COUNT | --log-debug-retention-backup-count | DEBUG लॉग फ़ाइल के लिए रखे गए घूर्णित बैकअप; DEBUG के लिए वैश्विक गणना को ओवरराइड करता है | CB_MCP_LOG_RETENTION_BACKUP_COUNT से विरासत में मिला |
CB_MCP_OAUTH_JWT_JWKS_URI | --oauth-jwks-uri | बेयरर JWT सत्यापित करने के लिए उपयोग किए जाने वाले पहचान प्रदाता का JWKS एंडपॉइंट। जारीकर्ता और दर्शक के साथ सेट होने पर OAuth सक्षम करता है (देखें OAuth 2.1 प्राधिकरण) | कोई नहीं |
CB_MCP_OAUTH_JWT_ISSUER | --oauth-issuer | अपेक्षित JWT iss दावा। OAuth सक्षम करने के लिए आवश्यक | कोई नहीं |
CB_MCP_OAUTH_JWT_AUDIENCE | --oauth-audience | अपेक्षित JWT aud दावा। OAuth सक्षम करने के लिए आवश्यक | कोई नहीं |
CB_MCP_OAUTH_JWT_ALGORITHM | --oauth-algorithm | JWT हस्ताक्षर एल्गोरिदम: RS256/384/512, ES256/384/512, PS256/384/512 में से एक | RS256 |
CB_MCP_OAUTH_MCP_BASE_URL | --oauth-mcp-base-url | इस सर्वर का सार्वजनिक आधार URL। सेट होने पर, RFC 9728 संरक्षित संसाधन मेटाडेटा प्रकाशित करता है ताकि PRM-जागरूक क्लाइंट IdP खोज सकें | कोई नहीं |
CB_MCP_OAUTH_SCOPE_READ_LABEL | --oauth-scope-read-label | 'पढ़ें' पहुंच के रूप में माने जाने वाले OAuth स्कोप लेबल को ओवरराइड करें (PRM में विज्ञापित और टोकन के scope/scp दावे के विरुद्ध मिलान)। तब उपयोग करें जब आपका IdP विहित रूप उत्सर्जित नहीं कर सकता | couchbase-mcp:read |
CB_MCP_OAUTH_SCOPE_WRITE_LABEL | --oauth-scope-write-label | 'लिखें' पहुंच के रूप में माने जाने वाले OAuth स्कोप लेबल को ओवरराइड करें; पढ़ें लेबल के समान शब्दार्थ | couchbase-mcp:write |
केवल-पठन मोड कॉन्फ़िगरेशन
CB_MCP_READ_ONLY_MODE लेखन संचालन को नियंत्रित करने वाला एकमात्र स्विच है:
- जब
true(डिफ़ॉल्ट): सभी लेखन संचालन (KV, क्वेरी, स्कोप/कलेक्शन प्रबंधन, और इंडेक्स प्रबंधन) अक्षम हैं। सभी लेखन टूल (KV: upsert, insert, replace, delete, sub-document mutate; स्कोप/कलेक्शन प्रबंधन: create_scope, create_collection, delete_scope, delete_collection; इंडेक्स प्रबंधन: create_index, build_index, drop_index) लोड नहीं होते और LLM के लिए उपलब्ध नहीं होंगे, और डेटा या संरचना को संशोधित करने वाली SQL++ क्वेरी अवरुद्ध हैं। - जब
false: सभी लेखन टूल लोड होते हैं और SQL++ डेटा/संरचना संशोधन क्वेरी की अनुमति है।
यह LLM द्वारा अनजाने डेटा संशोधनों को रोकने के लिए अनुशंसित सुरक्षित डिफ़ॉल्ट है।
नोट: प्रमाणीकरण के लिए, आपको या तो उपयोगकर्ता नाम और पासवर्ड या क्लाइंट प्रमाणपत्र और कुंजी पथ की आवश्यकता होती है। वैकल्पिक रूप से, आप CA रूट प्रमाणपत्र पथ निर्दिष्ट कर सकते हैं जिसका उपयोग सर्वर प्रमाणपत्रों को मान्य करने के लिए किया जाएगा। यदि क्लाइंट प्रमाणपत्र और कुंजी पथ और उपयोगकर्ता नाम और पासवर्ड दोनों निर्दिष्ट हैं, तो प्रमाणीकरण के लिए क्लाइंट प्रमाणपत्रों का उपयोग किया जाएगा।
टूल अक्षम करना
आप विशिष्ट टूल्स को अक्षम कर सकते हैं ताकि उन्हें लोड होने और MCP क्लाइंट को उजागर होने से रोका जा सके। अक्षम किए गए टूल्स टूल डिस्कवरी में दिखाई नहीं देंगे और LLM द्वारा उन्हें आमंत्रित नहीं किया जा सकता।
समर्थित प्रारूप
अल्पविराम-पृथक सूची:
# Environment variable
CB_MCP_DISABLED_TOOLS="upsert_document_by_id, delete_document_by_id"
# Command line
uvx couchbase-mcp-server --disabled-tools upsert_document_by_id, delete_document_by_id
फ़ाइल पथ (प्रति पंक्ति एक टूल नाम):
# Environment variable
CB_MCP_DISABLED_TOOLS=disabled_tools.txt
# Command line
uvx couchbase-mcp-server --disabled-tools disabled_tools.txt
फ़ाइल प्रारूप (जैसे, disabled_tools.txt):
# Write operations
upsert_document_by_id
delete_document_by_id
# Index advisor
get_index_advisor_recommendations
# से शुरू होने वाली पंक्तियाँ टिप्पणियों के रूप में मानी जाती हैं और अनदेखी की जाती हैं।
MCP क्लाइंट कॉन्फ़िगरेशन उदाहरण
अल्पविराम-पृथक सूची का उपयोग करना:
{
"mcpServers": {
"couchbase": {
"command": "uvx",
"args": ["couchbase-mcp-server"],
"env": {
"CB_CONNECTION_STRING": "couchbases://connection-string",
"CB_USERNAME": "username",
"CB_PASSWORD": "password",
"CB_MCP_DISABLED_TOOLS": "upsert_document_by_id,delete_document_by_id"
}
}
}
}
फ़ाइल पथ का उपयोग करना (कई टूल्स के लिए अनुशंसित):
{
"mcpServers": {
"couchbase": {
"command": "uvx",
"args": ["couchbase-mcp-server"],
"env": {
"CB_CONNECTION_STRING": "couchbases://connection-string",
"CB_USERNAME": "username",
"CB_PASSWORD": "password",
"CB_MCP_DISABLED_TOOLS": "/path/to/disabled_tools.txt"
}
}
}
}
महत्वपूर्ण सुरक्षा नोट
चेतावनी: केवल टूल्स को अक्षम करना यह गारंटी नहीं देता कि कुछ ऑपरेशन नहीं किए जा सकते। अंतर्निहित डेटाबेस उपयोगकर्ता की RBAC (रोल-आधारित एक्सेस नियंत्रण) अनुमतियाँ प्राधिकृत सुरक्षा नियंत्रण हैं।
उदाहरण के लिए, भले ही आप
upsert_document_by_idऔरdelete_document_by_idको अक्षम कर दें, डेटा संशोधन अभी भीrun_sql_plus_plus_queryटूल के माध्यम से SQL++ DML स्टेटमेंट्स (INSERT, UPDATE, DELETE, MERGE) का उपयोग करके हो सकते हैं, जब तक कि:
CB_MCP_READ_ONLY_MODEकोtrue(डिफ़ॉल्ट) पर सेट किया गया है, या- डेटाबेस उपयोगकर्ता के पास डेटा संशोधन के लिए आवश्यक RBAC अनुमतियाँ नहीं हैं
सर्वोत्तम अभ्यास: हमेशा अपने Couchbase उपयोगकर्ता क्रेडेंशियल्स पर उचित RBAC अनुमतियाँ प्राथमिक सुरक्षा उपाय के रूप में कॉन्फ़िगर करें। टूल अक्षम करने का उपयोग LLM व्यवहार को मार्गदर्शित करने और हमले की सतह को कम करने के लिए एक अतिरिक्त परत के रूप में करें, न कि एकमात्र सुरक्षा नियंत्रण के रूप में।
टूल कॉल्स के लिए उद्बोधन/पुष्टि
आप निष्पादन से पहले विशिष्ट टूल्स के लिए स्पष्ट उपयोगकर्ता पुष्टि की आवश्यकता कर सकते हैं (जब MCP क्लाइंट उद्बोधन का समर्थन करता है)।
CB_MCP_CONFIRMATION_REQUIRED_TOOLS / --confirmation-required-tools इन प्रारूपों का समर्थन करता है:
- अल्पविराम-पृथक सूची
- फ़ाइल पथ (प्रति पंक्ति एक टूल नाम,
#टिप्पणियाँ समर्थित)
उदाहरण:
# Environment variable
CB_MCP_CONFIRMATION_REQUIRED_TOOLS="delete_document_by_id,replace_document_by_id"
# Command line
uvx couchbase-mcp-server --confirmation-required-tools delete_document_by_id,replace_document_by_id
जब एक सूचीबद्ध टूल आमंत्रित किया जाता है:
- यदि क्लाइंट उद्बोधन का समर्थन करता है, तो उपयोगकर्ता को पुष्टि करने के लिए संकेत दिया जाता है।
- यदि क्लाइंट उद्बोधन का समर्थन नहीं करता है, तो टूल पिछड़े संगतता के लिए बिना पुष्टि के निष्पादित होता है।
आप सर्वर का संस्करण भी जांच सकते हैं:
uvx couchbase-mcp-server --version
लॉगिंग
MCP सर्वर डिफ़ॉल्ट रूप से stderr पर लॉग करता है। लॉगिंग अतिरिक्त कॉन्फ़िगरेशन में सूचीबद्ध CB_MCP_LOG_* चरों के साथ कॉन्फ़िगर की जाती है:
CB_MCP_LOG_LEVEL— कितना लॉग किया जाता है:info(डिफ़ॉल्ट) जीवनचक्र घटनाओं और टूल आमंत्रणों को लॉग करता है,debugविस्तृत आंतरिक विवरण जोड़ता है, औरoffसभी लॉगिंग अक्षम करता है।CB_MCP_LOG_SINKS— लॉग कहाँ जाते हैं:stderr(डिफ़ॉल्ट), प्रति-स्तर घूर्णन फ़ाइलें (file), या दोनों।fileके साथ, प्रति स्तर एक फ़ाइल लिखी जाती है (उदाहरण के लिएmcp_server.info.logऔरmcp_server.error.log)CB_MCP_LOG_FILEद्वारा निर्धारित पथ पर।- घूर्णन आकार —
CB_MCP_LOG_ROTATION_MAX_SIZE_MBवैश्विक आकार है (MB में) जिस पर प्रत्येक प्रति-स्तर फ़ाइल घूमती है।CB_MCP_LOG_<LEVEL>_ROTATION_MAX_SIZE_MB(ERROR/WARNING/INFO/DEBUG) के साथ व्यक्तिगत स्तरों को ओवरराइड करें, MB में भी, जो अनसेट होने पर वैश्विक से विरासत में मिलते हैं।0(वैश्विक या प्रति-स्तर) का आकार अमान्य है और स्टार्टअप चेतावनी के साथ डिफ़ॉल्ट (1 MB) पर वापस आ जाता है।CB_MCP_LOG_MAX_BYTES(बाइट्स) अप्रचलित है लेकिन पिछड़े संगतता के लिए अभी भी सम्मानित है; इसे अनदेखा किया जाता है जबCB_MCP_LOG_ROTATION_MAX_SIZE_MBभी सेट होता है, और स्टार्टअप पर एक अप्रचलन चेतावनी प्रिंट करता है। - प्रतिधारण —
CB_MCP_LOG_RETENTION_BACKUP_COUNTसेट करता है कि प्रति स्तर कितने घूर्णित बैकअप रखे जाते हैं (लाइव फ़ाइल को छोड़कर);1का डिफ़ॉल्ट पिछले व्यवहार को संरक्षित करता है।CB_MCP_LOG_<LEVEL>_RETENTION_BACKUP_COUNT(ERROR/WARNING/INFO/DEBUG) के साथ व्यक्तिगत स्तरों को ओवरराइड करें, जो अनसेट होने पर वैश्विक मान से विरासत में मिलते हैं। उस स्तर के लिए केवल लाइव फ़ाइल रखने के लिए एक गिनती को0पर सेट करें — यह अभी भी घूर्णन आकार द्वारा सीमित है (बैकअप के बजाय रोलओवर पर रीसेट)। - सर्वर-कॉन्फ़िग स्नैपशॉट — जब
fileसिंक सक्रिय होता है, तो एक एक-शॉट रिकॉर्ड (OS, Python, निर्भरता संस्करण, परिवहन, हल किया गया लॉगिंग कॉन्फ़िग, और संपादित सर्वर कॉन्फ़िग) एक समर्पितmcp_server_config.log.jsonफ़ाइल में JSON के रूप में लिखा जाता है (CB_MCP_LOG_FILEआधार से व्युत्पन्न)। यह प्रत्येक प्रारंभ पर अधिलेखित होता है, इसलिए समर्थन के पास हमेशा वर्तमान कॉन्फ़िग होता है और यह कभी भी घूर्णन लॉग से बाहर नहीं जाता।
# Enable debug logging to both stderr and rotating per-level files
uvx couchbase-mcp-server --log-level=debug --log-sinks=stderr,file
# Keep 30 rotated ERROR backups but only the live DEBUG file
uvx couchbase-mcp-server --log-level=debug --log-sinks=file \
--log-error-retention-backup-count=30 --log-debug-retention-backup-count=0
अधिक विवरण के लिए, दस्तावेज़ीकरण देखें।
क्लाइंट विशिष्ट कॉन्फ़िगरेशन
Claude Desktop
Claude Desktop MCP क्लाइंट के साथ Couchbase MCP सर्वर का उपयोग करने के लिए नीचे दिए गए चरणों का पालन करें
-
MCP सर्वर को अब कॉन्फ़िगरेशन फ़ाइल संपादित करके Claude Desktop में जोड़ा जा सकता है। अधिक विस्तृत निर्देश MCP त्वरित प्रारंभ गाइड पर पाए जा सकते हैं।
- Mac पर, कॉन्फ़िगरेशन फ़ाइल
~/Library/Application Support/Claude/claude_desktop_config.jsonपर स्थित है - Windows पर, कॉन्फ़िगरेशन फ़ाइल
%APPDATA%\Claude\claude_desktop_config.jsonपर स्थित है
कॉन्फ़िगरेशन फ़ाइल खोलें और
mcpServersअनुभाग में कॉन्फ़िगरेशन जोड़ें। - Mac पर, कॉन्फ़िगरेशन फ़ाइल
-
परिवर्तन लागू करने के लिए Claude Desktop को पुनरारंभ करें।
-
अब आप Claude Desktop में सर्वर का उपयोग प्राकृतिक भाषा का उपयोग करके Couchbase क्लस्टर पर क्वेरी चलाने और दस्तावेज़ों पर CRUD ऑपरेशन करने के लिए कर सकते हैं।
लॉग्स
Claude Desktop के लॉग्स निम्नलिखित स्थानों पर पाए जा सकते हैं:
- MacOS: ~/Library/Logs/Claude
- Windows: %APPDATA%\Claude\Logs
लॉग्स का उपयोग आपके MCP सर्वर कॉन्फ़िगरेशन के साथ कनेक्शन समस्याओं या अन्य समस्याओं का निदान करने के लिए किया जा सकता है। अधिक विवरण के लिए, आधिकारिक दस्तावेज़ीकरण देखें।
Cursor
Cursor के साथ Couchbase MCP सर्वर का उपयोग करने के लिए नीचे दिए गए चरणों का पालन करें:
-
अपनी मशीन पर Cursor स्थापित करें।
-
Cursor में, Cursor > Cursor Settings > Tools & Integrations > MCP Tools पर जाएं। साथ ही, Cursor से MCP सर्वर कॉन्फ़िगरेशन सेट करने पर दस्तावेज़ देखें।
-
समान कॉन्फ़िगरेशन मैन्युअल रूप से निर्दिष्ट करें, या एक-क्लिक Cursor में स्थापित करें लिंक का उपयोग करें। आपको
mcpServersके मूल कुंजी के अंतर्गत सर्वर कॉन्फ़िगरेशन जोड़ने की आवश्यकता हो सकती है।नोट: इंस्टॉल लिंक उपरोक्त कॉन्फ़िगरेशन उदाहरणों से प्लेसहोल्डर मानों का उपयोग करता है। स्थापना के बाद कनेक्शन स्ट्रिंग और क्रेडेंशियल्स अपडेट करें।
-
कॉन्फ़िगरेशन सहेजें।
-
आप MCP सर्वर सूची में couchbase को एक जोड़े गए सर्वर के रूप में देखेंगे। सर्वर सक्षम है या नहीं यह देखने के लिए रीफ़्रेश करें।
-
अब आप Cursor में Couchbase MCP सर्वर का उपयोग प्राकृतिक भाषा का उपयोग करके अपने Couchbase क्लस्टर को क्वेरी करने और दस्तावेज़ों पर CRUD ऑपरेशन करने के लिए कर सकते हैं।
Cursor के साथ MCP एकीकरण के बारे में अधिक विवरण के लिए, आधिकारिक Cursor MCP दस्तावेज़ीकरण देखें।
लॉग्स
Cursor के निचले पैनल में, "Output" पर क्लिक करें और सर्वर लॉग्स देखने के लिए ड्रॉपडाउन मेनू से "Cursor MCP" चुनें। यह आपके MCP सर्वर कॉन्फ़िगरेशन के साथ कनेक्शन समस्याओं या अन्य समस्याओं का निदान करने में मदद कर सकता है।
Windsurf Editor
Windsurf Editor के साथ Couchbase MCP सर्वर का उपयोग करने के लिए नीचे दिए गए चरणों का पालन करें।
-
अपनी मशीन पर Windsurf Editor स्थापित करें।
-
Windsurf Editor में, Command Palette > Windsurf MCP Configuration Panel या Windsurf - Settings > Advanced > Cascade > Model Context Protocol (MCP) Servers पर नेविगेट करें। कॉन्फ़िगरेशन के बारे में अधिक विवरण के लिए, कृपया आधिकारिक दस्तावेज़ीकरण देखें।
-
Add Server पर क्लिक करें और फिर Add custom server पर क्लिक करें। संपादक में खुलने वाले कॉन्फ़िगरेशन पर, ऊपर से Couchbase MCP सर्वर कॉन्फ़िगरेशन जोड़ें।
-
कॉन्फ़िगरेशन सहेजें।
-
आप Advanced Settings के अंतर्गत MCP Servers सूची में couchbase को एक जोड़े गए सर्वर के रूप में देखेंगे। सर्वर सक्षम है या नहीं यह देखने के लिए रीफ़्रेश करें।
-
अब आप Windsurf Editor में Couchbase MCP सर्वर का उपयोग प्राकृतिक भाषा का उपयोग करके अपने Couchbase क्लस्टर को क्वेरी करने और दस्तावेज़ों पर CRUD ऑपरेशन करने के लिए कर सकते हैं।
Windsurf Editor के साथ MCP एकीकरण के बारे में अधिक विवरण के लिए, आधिकारिक Windsurf MCP दस्तावेज़ीकरण देखें।
VS Code
VS Code के साथ Couchbase MCP सर्वर का उपयोग करने के लिए नीचे दिए गए चरणों का पालन करें।
-
VS Code स्थापित करें
-
MCP सर्वर को कॉन्फ़िगर करने के कुछ तरीके निम्नलिखित हैं।
-
वर्कस्पेस सर्वर कॉन्फ़िगरेशन के लिए
- वर्कस्पेस में .vscode/mcp.json के रूप में एक नई फ़ाइल बनाएं।
- कॉन्फ़िगरेशन जोड़ें और फ़ाइल सहेजें।
-
वैश्विक सर्वर कॉन्फ़िगरेशन के लिए:
- Command Palette में MCP: Open User Configuration चलाएं (
Ctrl+Shift+PयाCmd+Shift+P) - कॉन्फ़िगरेशन जोड़ें और फ़ाइल सहेजें।
- Command Palette में MCP: Open User Configuration चलाएं (
-
नोट: VS Code mcp.json फ़ाइलों में MCP (Model Context Protocol) सर्वरों को परिभाषित करने के लिए शीर्ष-स्तरीय JSON गुण के रूप में
serversका उपयोग करता है, जबकि Cursor समकक्ष कॉन्फ़िगरेशन के लिएmcpServersका उपयोग करता है। किसी भी आगे के परिवर्तन या विवरण के लिए VS Code क्लाइंट कॉन्फ़िगरेशन देखें। एक उदाहरण VS Code कॉन्फ़िगरेशन नीचे प्रदान किया गया है।{ "servers": { "couchbase": { "command": "uvx", "args": ["couchbase-mcp-server"], "env": { "CB_CONNECTION_STRING": "couchbases://connection-string", "CB_USERNAME": "username", "CB_PASSWORD": "password" } } } }
-
-
एक बार जब आप फ़ाइल सहेजते हैं, तो सर्वर शुरू होता है और
Running|Stop|n Tools|More..के साथ एक छोटी क्रिया सूची दिखाई देती है। -
सर्वर को
Start/Stop/प्रबंधित करने के लिए विकल्प सूची से विकल्पों पर क्लिक करें। -
अब आप VS Code में Couchbase MCP सर्वर का उपयोग प्राकृतिक भाषा का उपयोग करके अपने Couchbase क्लस्टर को क्वेरी करने और दस्तावेज़ों पर CRUD ऑपरेशन करने के लिए कर सकते हैं।
लॉग्स:
Command Palette में (Ctrl+Shift+P या Cmd+Shift+P),
- MCP: List Servers कमांड चलाएं और couchbase सर्वर चुनें
- Output टैब में इसके लॉग्स देखने के लिए "Show Output" चुनें।
JetBrains IDEs
JetBrains IDEs के साथ Couchbase MCP सर्वर का उपयोग करने के लिए नीचे दिए गए चरणों का पालन करें
- कोई भी एक JetBrains IDEs स्थापित करें
- कोई भी एक JetBrains प्लगइन स्थापित करें - AI Assistant या Junie
- Settings > Tools > AI Assistant or Junie > MCP Server पर नेविगेट करें
- Couchbase MCP कॉन्फ़िगरेशन जोड़ने के लिए "+" पर क्लिक करें और Save पर क्लिक करें।
- आप सर्वरों की सूची में Couchbase MCP सर्वर को जोड़ा हुआ देखेंगे। एक बार जब आप Apply पर क्लिक करते हैं, तो Couchbase MCP सर्वर शुरू होता है और स्थिति पर होवर करने पर, यह उपलब्ध सभी टूल्स दिखाता है।
- अब आप JetBrains IDEs में Couchbase MCP सर्वर का उपयोग प्राकृतिक भाषा का उपयोग करके अपने Couchbase क्लस्टर को क्वेरी करने और दस्तावेज़ों पर CRUD ऑपरेशन करने के लिए कर सकते हैं।
लॉग्स: लॉग फ़ाइल को Help > Show Log in Finder (Explorer) > mcp > couchbase पर देखा जा सकता है
Operational Insights सर्वर
डिफ़ॉल्ट operational सर्वर (वह जो ऊपर हर अनुभाग
वर्णन करता है) के साथ, यह वितरण Operational Insights
क्लस्टरों के लिए एक दूसरा सर्वर भेजता है, जो अलग
couchbase-operational-insights
SDK का उपयोग करता है। यह एक नियमित Couchbase क्लस्टर से एक अलग उत्पाद है और
अपने स्वयं के पोर्ट पर एक स्वतंत्र प्रक्रिया के रूप में चलता है।
इसे CLI उपकमांड के रूप में operational-insights पास करके चलाएं (या इसे
कंटेनर के कमांड के रूप में जोड़ें):
uvx couchbase-mcp-server operational-insights
# or, from source:
uv run src/mcp_server.py operational-insights
# or, via Docker:
docker run --rm -i \
-e CB_OI_CONNECTION_STRING=http://localhost:8095 \
-e CB_OI_USERNAME=Administrator \
-e CB_OI_PASSWORD=password \
couchbase/mcp-server:<version> operational-insights
--connection-string एक HTTP(S) URL है, couchbase:// कनेक्शन
स्ट्रिंग नहीं — जैसे स्थानीय Operational Insights
सर्वर के लिए http://localhost:8095, या Capella के लिए https://<host>:18095। यह सबसे
सामान्य गलत कॉन्फ़िगरेशन है जब इस सर्वर को किसी क्लस्टर की ओर इंगित किया जाता है।
| CLI तर्क | पर्यावरण चर | विवरण | डिफ़ॉल्ट |
|---|---|---|---|
--connection-string | CB_OI_CONNECTION_STRING | Operational Insights एंडपॉइंट URL (HTTP/HTTPS, couchbase:// नहीं) | कोई नहीं |
--username | CB_OI_USERNAME | Operational Insights उपयोगकर्ता नाम | कोई नहीं |
--password | CB_OI_PASSWORD | Operational Insights पासवर्ड | कोई नहीं |
--ca-cert-path | CB_OI_CA_CERT_PATH | सर्वर रूट प्रमाणपत्र (PEM) का पथ, स्व-हस्ताक्षरित/अविश्वसनीय सर्वर प्रमाणपत्र सत्यापित करने के लिए | कोई नहीं |
--client-cert-path | CB_OI_CLIENT_CERT_PATH | mTLS प्रमाणीकरण के लिए क्लाइंट प्रमाणपत्र का पथ — एक PEM प्रमाणपत्र (--client-key-path के साथ युग्मित) या PKCS#12 बंडल (.p12/.pfx, --client-key-path अनसेट छोड़ें)। एक https:// --connection-string की आवश्यकता है; सेट होने पर --username/--password को ओवरराइड करता है | कोई नहीं |
--client-key-path | CB_OI_CLIENT_KEY_PATH | क्लाइंट प्रमाणपत्र की निजी कुंजी (PEM) का पथ। जब --client-cert-path PKCS#12 बंडल हो तो अनसेट छोड़ें | कोई नहीं |
--client-cert-password | CB_OI_CLIENT_CERT_PASSWORD | एन्क्रिप्टेड क्लाइंट कुंजी या PKCS#12 बंडल के लिए डिक्रिप्शन पासवर्ड | कोई नहीं |
हर अन्य फ़्लैग (--read-only-mode, --transport, --host, --port,
--disabled-tools, --confirmation-required-tools, --log-*,
--oauth-*) operational सर्वर के समान है — देखें
Additional Configuration for MCP Server —
पोर्ट (8001, 8000 नहीं) और लॉग फ़ाइल के डिफ़ॉल्ट को छोड़कर
(mcp_server_operational_insights.log, mcp_server.log नहीं), क्योंकि दो
सर्वर इनमें से कोई भी साझा नहीं कर सकते। OAuth समान स्कोप लेबल का उपयोग करता है
(couchbase-mcp:read / couchbase-mcp:write) operational सर्वर की तरह, इसलिए
एक मौजूदा IdP कॉन्फ़िगरेशन बिना बदलाव के दोनों के लिए काम करता है।
उदाहरण MCP क्लाइंट कॉन्फ़िगरेशन:
{
"mcpServers": {
"couchbase-operational-insights": {
"command": "uvx",
"args": ["couchbase-mcp-server", "operational-insights"],
"env": {
"CB_OI_CONNECTION_STRING": "http://localhost:8095",
"CB_OI_USERNAME": "Administrator",
"CB_OI_PASSWORD": "password"
}
}
}
}
टूल सूची के लिए ऊपर Operational Insights tools देखें, और operational सर्वर के साथ साझा किए गए तीन टूल नामों के बारे में वहाँ दिया गया नोट देखें।
दोनों सर्वर एक ही MCP Registry
सूची साझा करते हैं, io.github.couchbase/mcp-server-couchbase, से प्रकाशित
server.json। सूची में प्रत्येक सर्वर के लिए एक अलग पैकेज प्रविष्टि है (PyPI
और Docker)। प्रत्येक प्रविष्टि अपना सबकमांड (operational या
operational-insights) पास करती है और केवल उस सर्वर के तर्क और
पर्यावरण चर घोषित करती है।
Streamable HTTP Transport Mode
MCP सर्वर को Streamable HTTP ट्रांसपोर्ट मोड में चलाया जा सकता है जो कई क्लाइंट को HTTP के माध्यम से एक ही सर्वर इंस्टेंस से कनेक्ट करने की अनुमति देता है। इस मोड में MCP सर्वर से कनेक्ट करने का प्रयास करने से पहले जाँचें कि आपका MCP क्लाइंट स्ट्रीमेबल HTTP ट्रांसपोर्ट का समर्थन करता है या नहीं।
नोट: OAuth 2.1 प्राधिकरण इस ट्रांसपोर्ट पर समर्थित है। देखें OAuth 2.1 Authorization। OAuth कॉन्फ़िगर किए बिना, HTTP एंडपॉइंट अप्रमाणित है।
उपयोग
डिफ़ॉल्ट रूप से, MCP सर्वर पोर्ट 8000 पर चलेगा लेकिन इसे --port या CB_MCP_PORT पर्यावरण चर का उपयोग करके कॉन्फ़िगर किया जा सकता है।
uvx couchbase-mcp-server \
--connection-string='<couchbase_connection_string>' \
--username='<database_username>' \
--password='<database_password>' \
--read-only-mode=true \
--transport=http
सर्वर http://localhost:8000/mcp पर उपलब्ध होगा। इसका उपयोग स्ट्रीमेबल HTTP ट्रांसपोर्ट मोड का समर्थन करने वाले MCP क्लाइंट जैसे Cursor में किया जा सकता है।
MCP क्लाइंट कॉन्फ़िगरेशन
{
"mcpServers": {
"couchbase-http": {
"url": "http://localhost:8000/mcp"
}
}
}
SSE Transport Mode
MCP सर्वर को Server-Sent Events (SSE) ट्रांसपोर्ट मोड में चलाने का विकल्प है।
नोट: SSE मोड को MCP द्वारा अप्रचलित कर दिया गया है। हमारे पास Streamable HTTP के लिए समर्थन है।
SSE: उपयोग
डिफ़ॉल्ट रूप से, MCP सर्वर पोर्ट 8000 पर चलेगा लेकिन इसे --port या CB_MCP_PORT पर्यावरण चर का उपयोग करके कॉन्फ़िगर किया जा सकता है।
uvx couchbase-mcp-server \
--connection-string='<couchbase_connection_string>' \
--username='<database_username>' \
--password='<database_password>' \
--read-only-mode=true \
--transport=sse
सर्वर http://localhost:8000/sse पर उपलब्ध होगा। इसका उपयोग SSE ट्रांसपोर्ट मोड का समर्थन करने वाले MCP क्लाइंट जैसे Cursor में किया जा सकता है।
SSE: MCP क्लाइंट कॉन्फ़िगरेशन
{
"mcpServers": {
"couchbase-sse": {
"url": "http://localhost:8000/sse"
}
}
}
OAuth 2.1 प्राधिकरण
--transport=http के साथ चलने पर, MCP सर्वर एक OAuth 2.1 संसाधन सर्वर के रूप में कार्य कर सकता है: यह आपके पहचान प्रदाता के JWKS के विरुद्ध आने वाले बियरर JWT को मान्य करता है। यह प्रदाता-अज्ञेयवादी है (कोई भी OAuth 2.1 / OIDC प्रदाता जो JWKS प्रकाशित करता है — Auth0, Okta, Keycloak, AWS Cognito, Microsoft Entra, आदि) और टोकन जारी नहीं करता या उपयोगकर्ताओं का प्रबंधन नहीं करता। OAuth सेटिंग्स stdio पर अनदेखी की जाती हैं।
OAuth को Additional Configuration में सूचीबद्ध CB_MCP_OAUTH_* चर के साथ कॉन्फ़िगर किया गया है:
- OAuth केवल तब सक्रिय होता है जब
CB_MCP_OAUTH_JWT_JWKS_URI,CB_MCP_OAUTH_JWT_ISSUER, औरCB_MCP_OAUTH_JWT_AUDIENCEतीनों सेट हों; उनमें से केवल कुछ सेट करने पर स्टार्टअप पर विफलता होती है। CB_MCP_OAUTH_MCP_BASE_URLसेट करने से अतिरिक्त रूप से RFC 9728 Protected Resource Metadata प्रकाशित होता है ताकि PRM-जागरूक क्लाइंट प्राधिकरण सर्वर की खोज कर सकें।- एक्सेस टोकन के
scope/scpदावे से पढ़े गए दो स्कोपों द्वारा नियंत्रित है:couchbase-mcp:read(रीड टूल, SQL++ सहित) औरcouchbase-mcp:write(राइट टूल: KV म्यूटेशन, स्कोप/कलेक्शन प्रबंधन, और इंडेक्स प्रबंधन)। पूर्ण एक्सेस के लिए दोनों की आवश्यकता है। यदि आपका IdP उन विहित लेबलों को उत्सर्जित नहीं कर सकता है, तो उन्हेंCB_MCP_OAUTH_SCOPE_READ_LABEL/CB_MCP_OAUTH_SCOPE_WRITE_LABELके साथ ओवरराइड करें।
uvx couchbase-mcp-server \
--connection-string='<couchbase_connection_string>' \
--username='<database_username>' \
--password='<database_password>' \
--transport=http \
--oauth-jwks-uri='https://auth.example.com/.well-known/jwks.json' \
--oauth-issuer='https://auth.example.com/' \
--oauth-audience='couchbase-mcp-server' \
--oauth-mcp-base-url='<public_base_url_of_this_server>'
पूर्ण विवरण के लिए, दस्तावेज़ीकरण देखें।
Docker छवि
MCP सर्वर को Docker कंटेनर के रूप में भी बनाया और चलाया जा सकता है। पूर्व-निर्मित छवियाँ DockerHub पर पाई जा सकती हैं या docker pull docker.io/couchbase/mcp-server:latest के माध्यम से खींची जा सकती हैं।
वैकल्पिक रूप से, हम Docker MCP Catalog का हिस्सा हैं।
छवि बनाना
docker build -t mcp/couchbase-src .
तर्कों के साथ बनाना
यदि आप कमिट हैश और बिल्ड समय के लिए बिल्ड तर्कों के साथ बनाना चाहते हैं, तो आप इसका उपयोग करके बना सकते हैं:docker build --build-arg GIT_COMMIT_HASH=$(git rev-parse HEAD) \
--build-arg BUILD_DATE=$(date -u +'%Y-%m-%dT%H:%M:%SZ') \
-t mcp/couchbase-src .
वैकल्पिक रूप से, प्रदान की गई बिल्ड स्क्रिप्ट का उपयोग करें:
# Build with default image name (mcp/couchbase-src)
./build.sh
# Build with custom image name
./build.sh my-custom/image-name
यह स्क्रिप्ट स्वचालित रूप से:
- एक वैकल्पिक छवि नाम पैरामीटर स्वीकार करती है (डिफ़ॉल्ट
mcp/couchbase-srcहै) - Git कमिट हैश और बिल्ड टाइमस्टैम्प उत्पन्न करती है
- कई उपयोगी टैग बनाती है (
latest,<short-commit>) - बिल्ड जानकारी और परिणाम दिखाती है
- CI/CD बिल्ड के समान तर्कों का उपयोग करती है
छवि लेबल सत्यापित करें:
# View git commit hash in image
docker inspect --format='{{index .Config.Labels "org.opencontainers.image.revision"}}' mcp/couchbase-src:latest
# View all metadata labels
docker inspect --format='{{json .Config.Labels}}' mcp/couchbase-src:latest
चलाना
MCP सर्वर को पर्यावरण चर के साथ चलाया जा सकता है जिनका उपयोग Couchbase सेटिंग्स को कॉन्फ़िगर करने के लिए किया जाता है। पर्यावरण चर Additional Configuration section में वर्णित समान हैं।
स्वतंत्र Docker कंटेनर
docker run --rm -i \
-e CB_CONNECTION_STRING='<couchbase_connection_string>' \
-e CB_USERNAME='<database_user>' \
-e CB_PASSWORD='<database_password>' \
-e CB_MCP_TRANSPORT='<http|sse|stdio>' \
-e CB_MCP_READ_ONLY_MODE='<true|false>' \
-e CB_MCP_CONFIRMATION_REQUIRED_TOOLS='delete_document_by_id' \
-e CB_MCP_PORT=9001 \
-e CB_MCP_HOST=0.0.0.0 \
-p 9001:9001 \
mcp/couchbase-src
CB_MCP_PORT और CB_MCP_HOST पर्यावरण चर केवल HTTP ट्रांसपोर्ट मोड जैसे http और sse के मामले में लागू होते हैं।
Docker: MCP क्लाइंट कॉन्फ़िगरेशन
Docker छवि का उपयोग निम्नलिखित कॉन्फ़िगरेशन के साथ stdio ट्रांसपोर्ट मोड में किया जा सकता है।
{
"mcpServers": {
"couchbase-mcp-docker": {
"command": "docker",
"args": [
"run",
"--rm",
"-i",
"-e",
"CB_CONNECTION_STRING=<couchbase_connection_string>",
"-e",
"CB_USERNAME=<database_user>",
"-e",
"CB_PASSWORD=<database_password>",
"mcp/couchbase-src"
]
}
}
}
नोट्स
couchbase_connection_stringमान इस बात पर निर्भर करता है कि Couchbase सर्वर एक ही होस्ट मशीन पर, किसी अन्य Docker कंटेनर में, या दूरस्थ होस्ट पर चल रहा है या नहीं। यदि आपका Couchbase सर्वर आपकी होस्ट मशीन पर चल रहा है, तो आपका कनेक्शन स्ट्रिंग संभवतःcouchbase://host.docker.internalके रूप में होगा। विवरण के लिए docker दस्तावेज़ीकरण देखें।- आप
--network=<your_network>विकल्प का उपयोग करके कंटेनर की नेटवर्किंग निर्दिष्ट कर सकते हैं। आपके द्वारा चुना गया नेटवर्क आपके वातावरण पर निर्भर करता है; डिफ़ॉल्टbridgeहै। विवरण के लिए, docker में नेटवर्क ड्राइवर देखें।
LLM से जुड़े जोखिम
- बड़े भाषा मॉडल और समान तकनीक का उपयोग जोखिमों से जुड़ा है, जिसमें गलत या हानिकारक आउटपुट की संभावना शामिल है।
- Couchbase ऐसे आउटपुट की गुणवत्ता या सटीकता की समीक्षा या मूल्यांकन नहीं करता है, और ऐसे आउटपुट Couchbase के विचारों को प्रतिबिंबित नहीं कर सकते हैं।
- बड़े भाषा मॉडल और संबंधित तकनीक का उपयोग करने का निर्णय लेना, और किसी भी लाइसेंस शर्तों, उपयोग की शर्तों, और आपके संगठन की नीतियों का पालन करना पूरी तरह से आपकी जिम्मेदारी है।
उपयोग डेटा संग्रह
यह उत्पाद स्वचालित रूप से उपयोग और प्रदर्शन डेटा (जैसे उत्पाद नाम और संस्करण) और ब्राउज़र जानकारी (जैसे IP पता) एकत्र करता है (सामूहिक रूप से, "उपयोग डेटा")। Couchbase उपयोग डेटा का उपयोग, अन्य डेटा के साथ जो आप Couchbase को प्रदान कर सकते हैं (जैसे आपका उपयोगकर्ता नाम या ईमेल पता), हमारे उत्पादों को विकसित और बेहतर बनाने के साथ-साथ हमारे बिक्री और विपणन कार्यक्रमों को सूचित करने के लिए करता है। हम Couchbase उत्पादों में संग्रहीत किसी भी डेटा तक पहुँच या संग्रह नहीं करते हैं। हम उपयोग डेटा का उपयोग समग्र उपयोग पैटर्न को समझने और हमारे उत्पादों को आपके लिए अधिक उपयोगी बनाने के लिए करते हैं। Couchbase कैसे जानकारी एकत्र, सुरक्षा और संसाधित करता है, इसके बारे में अधिक जानकारी के लिए, कृपया https://www.couchbase.com/privacy-policy. पर देखे जाने वाली Couchbase गोपनीयता नीति देखें।
समस्या निवारण युक्तियाँ
- यदि स्रोत से चला रहे हैं तो सुनिश्चित करें कि आपके MCP सर्वर रिपॉजिटरी का पथ कॉन्फ़िगरेशन में सही है।
- सत्यापित करें कि आपका Couchbase कनेक्शन स्ट्रिंग, डेटाबेस उपयोगकर्ता नाम, पासवर्ड या प्रमाणपत्रों का पथ सही है।
- यदि Couchbase Capella का उपयोग कर रहे हैं, तो सुनिश्चित करें कि क्लस्टर उस मशीन से पहुंच योग्य है जहाँ MCP सर्वर चल रहा है।
- जाँचें कि डेटाबेस उपयोगकर्ता के पास कम से कम एक बकेट तक पहुँचने के लिए उचित अनुमतियाँ हैं।
- पुष्टि करें कि
uvपैकेज मैनेजर ठीक से स्थापित और पहुंच योग्य है। आपको कॉन्फ़िगरेशन मेंcommandफ़ील्ड मेंuv/uvxका पूर्ण पथ प्रदान करने की आवश्यकता हो सकती है। - MCP सर्वर के साथ समस्याओं का संकेत देने वाली किसी भी त्रुटि या चेतावनी के लिए लॉग जाँचें। लॉग का स्थान आपके MCP क्लाइंट पर निर्भर करता है।
- यदि आप अपने स्थानीय MCP सर्वर रिपॉजिटरी को अपडेट करने के बाद स्रोत से अपने MCP सर्वर को चलाने में समस्याएँ देख रहे हैं, तो निर्भरताओं को अपडेट करने के लिए
uv syncचलाने का प्रयास करें।
एकीकरण परीक्षण
हम उच्च-स्तरीय MCP एकीकरण परीक्षण प्रदान करते हैं ताकि यह सत्यापित किया जा सके कि सर्वर अपेक्षित टूल प्रदर्शित करता है और उन्हें डेमो Couchbase क्लस्टर के विरुद्ध लागू किया जा सकता है।
- डेमो क्लस्टर क्रेडेंशियल निर्यात करें:
CB_CONNECTION_STRINGCB_USERNAMECB_PASSWORD- वैकल्पिक:
CB_MCP_TEST_BUCKET(परीक्षणों के दौरान जाँचने के लिए एक बकेट) - वैकल्पिक, Operational Insights सर्वर के
अपने परीक्षणों के लिए:
CB_OI_CONNECTION_STRING/CB_OI_USERNAME/CB_OI_PASSWORD। वे परीक्षण अनसेट होने पर स्वचालित रूप से छोड़ दिए जाते हैं (विफल नहीं होते)।
- परीक्षण चलाएँ:
uv run --extra dev pytest tests/integration -v
FAQ
Couchbase MCP सर्वर क्या है? यह Model Context Protocol का एक स्व-होस्टेड कार्यान्वयन है जो AI सहायकों और एजेंटों (Claude, Cursor, Windsurf, VS Code Copilot, JetBrains AI Assistant/Junie, और किसी भी अन्य MCP क्लाइंट) को प्राकृतिक भाषा का उपयोग करके Couchbase क्लस्टर में डेटा क्वेरी करने और, वैकल्पिक रूप से, संशोधित करने की अनुमति देता है।
मैं Claude Desktop को Couchbase से कैसे कनेक्ट करूँ? सर्वर को uvx couchbase-mcp-server के साथ स्थापित करें (या इसे स्रोत या Docker से चलाएँ), फिर Configuration में दिखाए अनुसार Claude Desktop के claude_desktop_config.json में इसका कॉन्फ़िगरेशन जोड़ें। Claude Desktop को पुनः आरंभ करें और यह नए टूल उठा लेगा।
क्या मैं इसे Couchbase Capella के साथ उपयोग कर सकता हूँ? हाँ। वही CB_CONNECTION_STRING/CB_USERNAME/CB_PASSWORD (या mTLS प्रमाणपत्र) कॉन्फ़िगरेशन Couchbase Capella और स्व-प्रबंधित Couchbase सर्वर क्लस्टर दोनों के लिए काम करता है।
क्या AI एजेंट को मेरे डेटाबेस में लिखने देना सुरक्षित है? डिफ़ॉल्ट रूप से, CB_MCP_READ_ONLY_MODE सत्य है, इसलिए सभी लेखन ऑपरेशन — दस्तावेज़ अपसेर्ट/इन्सर्ट/रिप्लेस/डिलीट और डेटा-संशोधित SQL++ कथन — अक्षम हैं और लेखन टूल लोड भी नहीं होते। आप व्यक्तिगत टूल को भी अक्षम कर सकते हैं (देखें Disabling Tools) या विशिष्ट टूल चलाने से पहले स्पष्ट उपयोगकर्ता पुष्टि की आवश्यकता हो सकती है (देखें Elicitation/Confirmation)। टूल-स्तरीय नियंत्रण LLM व्यवहार का मार्गदर्शन करते हैं; आपके Couchbase उपयोगकर्ता की RBAC अनुमतियाँ वास्तविक सुरक्षा सीमा बनी रहती हैं।
क्या मैं स्वयं SQL++ लिखे बिना अपने डेटा के विरुद्ध प्राकृतिक-भाषा क्वेरी चला सकता हूँ? हाँ — अपने AI सहायक से सरल अंग्रेजी में एक प्रश्न पूछें (जैसे "मुझे $100 से अधिक के 10 सबसे हाल के ऑर्डर दिखाएँ") और यह run_sql_plus_plus_query टूल का उपयोग करके उसे SQL++ क्वेरी में अनुवाद कर सकता है। आप सहायक से किसी क्वेरी को explain_sql_plus_plus_query करने या इंडेक्स सलाहकार से सिफारिशें पूछने के लिए भी कह सकते हैं।
STDIO, Streamable HTTP और SSE ट्रांसपोर्ट में क्या अंतर है? STDIO एकल स्थानीय MCP क्लाइंट (जैसे Claude Desktop) के लिए है जो सर्वर को सबप्रोसेस के रूप में लॉन्च करता है। Streamable HTTP कई क्लाइंट्स को HTTP पर एक चल रहे सर्वर इंस्टेंस को साझा करने की अनुमति देता है, और OAuth 2.1 का समर्थन करता है। SSE पुराना HTTP ट्रांसपोर्ट है, जिसे अब MCP स्पेक द्वारा Streamable HTTP के पक्ष में हटा दिया गया है — देखें Streamable HTTP Transport Mode।
क्या यह आधिकारिक रूप से Couchbase द्वारा समर्थित है? यह प्रोजेक्ट Couchbase समुदाय-अनुरक्षित है — देखें Support Policy। एंटरप्राइज़ समर्थन Couchbase AI Data Plane के माध्यम से अलग से उपलब्ध है।
योगदान
हम समुदाय से योगदान का स्वागत करते हैं! चाहे आप बग ठीक करना चाहें, सुविधाएँ जोड़ना चाहें, या दस्तावेज़ीकरण में सुधार करना चाहें, आपकी मदद की सराहना की जाती है।
यदि आपको सहायता चाहिए, कोई बग मिला है, या सुधार में योगदान देना चाहते हैं, तो ऐसा करने का सबसे अच्छा स्थान यहीं है — GitHub issue खोलकर।
डेवलपर्स के लिए
यदि आप कोड में योगदान देने या विकास वातावरण स्थापित करने में रुचि रखते हैं:
📖 व्यापक डेवलपर सेटअप निर्देशों के लिए CONTRIBUTING.md देखें, जिसमें शामिल हैं:
uvके साथ विकास वातावरण सेटअप- Ruff के साथ कोड लिंटिंग और फ़ॉर्मेटिंग
- प्री-कमिट हुक स्थापना
- प्रोजेक्ट संरचना अवलोकन
- विकास कार्यप्रवाह और अभ्यास
योगदानकर्ताओं के लिए त्वरित प्रारंभ
# Clone and setup
git clone https://github.com/couchbase/mcp-server-couchbase.git
cd mcp-server-couchbase
# Install with development dependencies
uv sync --extra dev
# Install pre-commit hooks
uv run pre-commit install
# Run linting
./scripts/lint.sh
📢 समर्थन नीति
इस प्रोजेक्ट में आपकी रुचि की हम वास्तव में सराहना करते हैं! यह प्रोजेक्ट Couchbase समुदाय-अनुरक्षित है, जिसका अर्थ है कि यह हमारी समर्थन टीम द्वारा आधिकारिक रूप से समर्थित नहीं है। हालाँकि, हमारे इंजीनियर इस रेपो की सक्रिय रूप से निगरानी और रखरखाव कर रहे हैं और सर्वोत्तम प्रयास के आधार पर मुद्दों को हल करने का प्रयास करेंगे।
हमारा समर्थन पोर्टल इस प्रोजेक्ट से संबंधित अनुरोधों में सहायता करने में असमर्थ है, इसलिए हम विनम्रतापूर्वक अनुरोध करते हैं कि सभी पूछताछ GitHub के भीतर ही रहें।
आपका सहयोग हम सभी को एक साथ आगे बढ़ने में मदद करता है — धन्यवाद!