Couchbase
ทางการโต้ตอบกับข้อมูลที่เก็บอยู่ในคลัสเตอร์ Couchbase โดยใช้ภาษาธรรมชาติ
คุณทำอะไรได้บ้างด้วย Couchbase MCP?
- สำรวจโครงสร้างคลัสเตอร์ — ขอรายการ buckets, scopes และ collections และตรวจสอบ schema ผ่าน
get_buckets_in_cluster,get_scopes_in_bucketและget_schema_for_collection - รันคำสั่ง SQL++ — ดำเนินการ query แบบอ่านอย่างเดียวกับ scope ด้วย
run_sql_plus_plus_queryหรือรับแผนการดำเนินการผ่านexplain_sql_plus_plus_query - ตรวจสอบสุขภาพคลัสเตอร์ — ยืนยันการเชื่อมต่อและสถานะบริการด้วย
test_cluster_connectionและget_cluster_health_and_servicesหรือดึงข้อมูลการวินิจฉัยผ่านget_cluster_diagnostics_report - วิเคราะห์ประสิทธิภาพ query — ระบุ query ที่ช้าหรือไม่มีประสิทธิภาพโดยใช้
get_longest_running_queriesและget_queries_using_primary_index - จัดการเอกสาร — ดึงหรือแก้ไขเอกสารตาม ID ด้วย
get_document_by_idและupsert_document_by_id(เครื่องมือเขียนต้องตั้งค่าCB_MCP_READ_ONLY_MODE=false) - ปรับแต่ง indexes — รับคำแนะนำ index ด้วย
get_index_advisor_recommendationsหรือแสดงรายการ index ที่มีอยู่ผ่านlist_indexes
เอกสาร
Couchbase MCP Server
Couchbase MCP Server คือเซิร์ฟเวอร์ Model Context Protocol (MCP) แบบโฮสต์เองที่เชื่อมต่อเอเจนต์ AI และผู้ช่วยที่ขับเคลื่อนด้วย LLM — Claude, Cursor, Windsurf, VS Code Copilot และ MCP clients อื่นๆ — เข้ากับข้อมูลในคลัสเตอร์ Couchbase ไม่ว่าจะโฮสต์บน Capella หรือจัดการเองก็ตาม MCP เป็นมาตรฐานเปิดที่ให้ผู้ช่วย AI เรียกใช้เครื่องมือและสอบถามแหล่งข้อมูลภายนอก เซิร์ฟเวอร์นี้ใช้มาตรฐานดังกล่าวสำหรับ Couchbase เพื่อให้เอเจนต์ AI สามารถตรวจสอบคลัสเตอร์ของคุณ รันคิวรี SQL++ อ่านและเขียนเอกสาร และวิเคราะห์ประสิทธิภาพคิวรีโดยใช้ภาษาธรรมชาติแทนการเขียนโค้ดด้วยมือ
เครื่องมือที่ให้บริการครอบคลุมหลายหมวดหมู่ ได้แก่ สุขภาพคลัสเตอร์ โครงสร้างข้อมูล Key-Value คิวรี และประสิทธิภาพ — พร้อมการควบคุมความปลอดภัยผ่านโหมดอ่านอย่างเดียว (เปิดใช้งานโดยค่าเริ่มต้น) และการปิดใช้งานเครื่องมือแบบละเอียด เพื่อให้คุณ可以让เอเจนต์ AI สำรวจและสอบถามข้อมูลได้โดยไม่เสี่ยงต่อการเขียนโดยไม่ตั้งใจ รองรับทั้งการขนส่งแบบ STDIO และ Streamable HTTP
Couchbase MCP server เผยแพร่เป็นแพ็กเกจ Python Package Index (PyPI) และผ่าน Docker การสนับสนุนระดับองค์กรสำหรับ Couchbase MCP Server มีให้โดยการออกใบอนุญาต Couchbase AI Data Plane ซึ่งรวมสิทธิ์การใช้งานและการสนับสนุนระดับองค์กรสำหรับ Couchbase Agent Memory และ Couchbase Agent Catalog
สำหรับเอกสารฉบับเต็ม โปรดเยี่ยมชม mcp-server.couchbase.com
สำหรับเอกสารฉบับเต็ม โปรดเยี่ยมชม docs.couchbase.com/mcp-server
สารบัญ
- ทำไมต้อง Couchbase MCP Server
- ตัวอย่างพรอมต์
- คุณสมบัติ/เครื่องมือ
- ข้อกำหนดเบื้องต้น
- การกำหนดค่า
- เซิร์ฟเวอร์ Operational Insights
- โหมดการขนส่ง Streamable HTTP
- โหมดการขนส่ง SSE
- การอนุญาต OAuth 2.1
- อิมเมจ Docker
- การเก็บข้อมูลการใช้งาน
- เคล็ดลับการแก้ไขปัญหา
- การทดสอบการผสานรวม
- คำถามที่พบบ่อย
- การมีส่วนร่วม
- นโยบายการสนับสนุน
ทำไมต้อง Couchbase MCP Server
- ปลอดภัยโดยค่าเริ่มต้น — การดำเนินการเขียน (การ upsert/insert/delete เอกสารและคิวรี SQL++ ที่แก้ไขข้อมูล) จะถูกบล็อกเว้นแต่คุณจะตั้งค่า
CB_MCP_READ_ONLY_MODE=falseอย่างชัดเจน และสามารถปิดใช้งานเครื่องมือแต่ละรายการหรือกำหนดให้ต้องยืนยันจากผู้ใช้ - ทำงานกับคลัสเตอร์ Capella และที่จัดการเอง — การกำหนดค่าเดียวกันเชื่อมต่อกับ Couchbase Capella (จัดการเต็มรูปแบบ) หรือคลัสเตอร์ Couchbase Server ที่โฮสต์เอง
- รองรับ RBAC — การปิดใช้งานเครื่องมือเป็นชั้นความสะดวกสำหรับการแนะนำพฤติกรรมของ LLM การควบคุมการเข้าถึงตามบทบาทของผู้ใช้ Couchbase ยังคงเป็นขอบเขตความปลอดภัยที่เชื่อถือได้
- การขนส่งระดับโปรดักชัน — รันผ่าน STDIO สำหรับไคลเอ็นต์เดสก์ท็อปในเครื่อง หรือ Streamable HTTP พร้อม OAuth 2.1 (JWT/JWKS, ไม่ผูกกับผู้ให้บริการ — Auth0, Okta, Keycloak, Entra, Cognito ฯลฯ) สำหรับการปรับใช้แบบแชร์/ระยะไกล
- ไคลเอ็นต์ MCP ใดก็ได้ — ทดสอบกับ Claude Desktop, Cursor, Windsurf, VS Code และ JetBrains AI Assistant/Junie ทำงานกับไคลเอ็นต์ใดก็ได้ที่ใช้ ข้อกำหนด MCP
ตัวอย่างพรอมต์
เมื่อเชื่อมต่อเซิร์ฟเวอร์แล้ว คุณสามารถพูดคุยกับคลัสเตอร์ Couchbase ของคุณด้วยภาษาธรรมชาติผ่านผู้ช่วย AI ของคุณ ตัวอย่างเช่น:
- "ฉันมี buckets, scopes และ collections อะไรบ้างในคลัสเตอร์นี้ และ schema ของคอลเลกชัน
ordersคืออะไร" - "รันคิวรี SQL++ เพื่อค้นหาเอกสาร 10 รายการล่าสุดในคอลเลกชัน
userswhere status = 'active'" - "คิวรีที่ช้าที่สุด 5 รายการบนคลัสเตอร์นี้ในชั่วโมงที่ผ่านมาคืออะไร และมีรายการใดขาด covering index หรือไม่"
- "ตรวจสอบว่าคลัสเตอร์นี้มีสุขภาพดีหรือไม่ และบอกฉันว่าบริการใดกำลังทำงานอยู่"
- "แทรกเอกสารใหม่ลงในคอลเลกชัน
productsด้วยฟิลด์เหล่านี้: ..." (ต้องใช้CB_MCP_READ_ONLY_MODE=false)
คุณสมบัติ/เครื่องมือ
การเผยแพร่นี้มาพร้อมเซิร์ฟเวอร์สองตัว: เซิร์ฟเวอร์ ปฏิบัติการ (ค่าเริ่มต้น —
ตารางด้านล่างทันที) พูดคุยกับคลัสเตอร์ Couchbase ทั่วไปผ่าน
couchbase SDK และเซิร์ฟเวอร์ Operational Insights
(ตารางของตัวเองด้านล่าง) พูดคุยกับคลัสเตอร์ Operational Insights ผ่าน
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 | รับสถิติคลัสเตอร์หนึ่งรายการขึ้นไปในช่วงเวลาประวัติผ่านจุดสิ้นสุด stats-range ของ Management REST API เฉพาะ Couchbase Server 7.6+ ที่จัดการเอง — ไม่มีบน Capella |
discover_tool_input_values | ค้นหาค่าอินพุตที่แน่นอนที่เครื่องมืออื่นต้องการ จากข้อมูลอ้างอิงที่มาพร้อมเซิร์ฟเวอร์ — ปัจจุบันคือชื่อเมตริก Couchbase Server ทั้งหมด (ประเภท หน่วย เวอร์ชันที่เพิ่ม คำอธิบาย) สำหรับ get_cluster_metrics เรียกดูตามหมวดหมู่หรือค้นหาแบบคลุมเครือตามคำสำคัญ ทำงานออฟไลน์โดยไม่ต้องเชื่อมต่อคลัสเตอร์ |
เครื่องมือค้นพบโมเดลข้อมูลและ schema
| ชื่อเครื่องมือ | คำอธิบาย |
|---|---|
get_buckets_in_cluster | รับรายการ buckets ทั้งหมดในคลัสเตอร์ |
get_scopes_in_bucket | รับรายการ scopes ทั้งหมดใน bucket ที่ระบุ |
get_collections_in_scope | รับรายการ collections ทั้งหมดใน scope และ bucket ที่ระบุ โปรดทราบว่าเครื่องมือนี้ต้องให้คลัสเตอร์มีบริการ Query |
get_scopes_and_collections_in_bucket | รับรายการ scopes และ collections ทั้งหมดใน bucket ที่ระบุ |
get_schema_for_collection | รับโครงสร้างสำหรับคอลเลกชัน |
create_scope | สร้าง scope ใหม่ใน bucket (Couchbase Server 7.6+ และ Capella) ปิดใช้งานโดยค่าเริ่มต้นเมื่อ CB_MCP_READ_ONLY_MODE=true |
create_collection | สร้าง collection ใหม่ใน scope ที่มีอยู่ (Couchbase Server 7.6+ และ Capella) ปิดใช้งานโดยค่าเริ่มต้นเมื่อ CB_MCP_READ_ONLY_MODE=true |
delete_scope | ลบ scope และ collections ทั้งหมดออกจาก bucket — ถาวร ปิดใช้งานโดยค่าเริ่มต้นเมื่อ CB_MCP_READ_ONLY_MODE=true |
delete_collection | ลบ collection และเอกสารทั้งหมดออกจาก scope — ถาวร ปิดใช้งานโดยค่าเริ่มต้นเมื่อ CB_MCP_READ_ONLY_MODE=true |
เครื่องมือดำเนินการเอกสาร KV
| ชื่อเครื่องมือ | คำอธิบาย |
|---|---|
get_document_by_id | รับเอกสารตาม ID จาก scope และ collection ที่ระบุ |
lookup_subdocument | ค้นหาส่วนของเอกสาร (ฟิลด์เฉพาะ การตรวจสอบการมีอยู่ หรือการนับอาร์เรย์/ออบเจกต์) ตามเส้นทางโดยไม่ต้องดึงเอกสารทั้งหมด |
upsert_document_by_id | Upsert เอกสารตาม ID ไปยัง scope และ collection ที่ระบุ ปิดใช้งานโดยค่าเริ่มต้นเมื่อ 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 จาก scope และ collection ที่ระบุ ปิดใช้งานโดยค่าเริ่มต้นเมื่อ CB_MCP_READ_ONLY_MODE=true |
mutate_subdocument | แก้ไขส่วนของเอกสารที่มีอยู่ (upsert, insert, replace, remove, การดำเนินการอาร์เรย์, counters) ตามเส้นทางโดยไม่ต้องเขียนเอกสารทั้งหมดใหม่ ปิดใช้งานโดยค่าเริ่มต้นเมื่อ CB_MCP_READ_ONLY_MODE=true |
เครื่องมือคิวรีและการจัดทำดัชนี
| ชื่อเครื่องมือ | คำอธิบาย |
|---|---|
list_indexes | แสดงรายการดัชนีทั้งหมดในคลัสเตอร์พร้อมคำจำกัดความ กรองตาม bucket, scope, collection และชื่อดัชนีได้ ตั้งค่า return_raw_index_stats=true เพื่อส่งคืนข้อมูลดัชนีที่ไม่ผ่านการประมวลผล |
get_index_advisor_recommendations | รับคำแนะนำดัชนีจาก Couchbase Index Advisor สำหรับคิวรี SQL++ ที่กำหนดเพื่อเพิ่มประสิทธิภาพคิวรี |
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++ บน scope ที่ระบุ คิวรีจะถูกจำกัดขอบเขตไปยัง bucket และ scope ที่ระบุโดยอัตโนมัติ ดังนั้นใช้ชื่อคอลเลกชันโดยตรง (เช่น SELECT * FROM users แทน SELECT * FROM bucket.scope.users)CB_MCP_READ_ONLY_MODE คือ true โดยค่าเริ่มต้น ซึ่งหมายความว่า การดำเนินการเขียนทั้งหมด (KV, Query, การจัดการ scope/collection และการจัดการดัชนี) ถูกปิดใช้งาน เมื่อเปิดใช้งาน (เช่น CB_MCP_READ_ONLY_MODE=true) เครื่องมือเขียนจะไม่ถูกโหลดและคิวรี SQL++ ที่แก้ไขข้อมูลจะถูกบล็อก |
explain_sql_plus_plus_query | สร้างและประเมินแผน EXPLAIN สำหรับคิวรี SQL++ ส่งคืนเมตาดาต้าคิวรี แผนที่แยกออกมา และผลการประเมินแผน |
เครื่องมือค้นหาข้อความเต็ม (FTS)
ต้องใช้ Couchbase Server 7.6+ และบริการ Search การค้นหาเวกเตอร์ไม่รองรับโดยเครื่องมือเหล่านี้ (ดูเครื่องมือค้นหาเวกเตอร์แยกต่างหาก)
| ชื่อเครื่องมือ | คำอธิบาย |
|---|---|
list_fts_indexes | แสดงรายการดัชนี Search (FTS) โดยไม่มีตัวกรอง จะแสดงดัชนีระดับคลัสเตอร์ (legacy) ด้วย bucket_name จะแสดงดัชนีระดับ scope (scoped) ทุก scope ใน bucket นั้น ด้วย bucket_name และ scope_name จะแสดงดัชนีระดับ scope ใน scope เดียวนั้น |
get_fts_index_definition | รับคำจำกัดความเต็มของดัชนี Search เดียว (mappings, analyzers, plan params) ส่ง bucket_name และ scope_name พร้อมกันสำหรับดัชนีระดับ scope หรือละเว้นทั้งสองสำหรับดัชนีระดับคลัสเตอร์ (legacy) |
run_fts_query | รันคิวรี FTS กับดัชนี Search หรือดึงแผนการดำเนินการ query คือเนื้อหา JSON คิวรี FTS ดิบ รองรับประเภทคิวรีที่ไม่ใช่เวกเตอร์ใดๆ (match, match_phrase, term, conjuncts, disjuncts, geo, date/numeric range, query_string, ...) ส่ง explain=true เพื่อดึงแผนการดำเนินการแทนผลลัพธ์ — ยังคงดำเนินการคิวรี (limit ค่าเริ่มต้นเป็น 1) เนื่องจากบริการ Search เปิดเผยแผนต่อ hit ที่ตรงกันเท่านั้น ไม่ใช่การเรียกแบบ dry-run แยกต่างหาก |
เครื่องมือวิเคราะห์ประสิทธิภาพคิวรี
| ชื่อเครื่องมือ | คำอธิบาย |
|---|---|
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 | รับคิวรีที่ใช้ primary index (ปัญหาประสิทธิภาพที่อาจเกิดขึ้น) |
get_queries_not_using_covering_index | รับคิวรีที่ไม่ใช้ covering index |
get_queries_not_selective | รับคิวรีที่ไม่ selective (การสแกนดัชนีส่งคืนเอกสารมากกว่าผลลัพธ์สุดท้ายมาก) |
เครื่องมือ Operational Insights
ลงทะเบียนโดยเซิร์ฟเวอร์ operational-insights แยกต่างหาก (ดู
เซิร์ฟเวอร์ Operational Insights ด้านล่าง) ไม่ใช่
เซิร์ฟเวอร์ operational ค่าเริ่มต้น
| ชื่อเครื่องมือ | คำอธิบาย |
|---|---|
get_server_configuration_status | รับสถานะและการกำหนดค่าของเซิร์ฟเวอร์นี้โดยไม่ต้องเชื่อมต่อกับคลัสเตอร์ — โหมดอ่านอย่างเดียว, เครื่องมือที่ถูกปิดใช้งาน/ต้องยืนยัน, การตั้งค่า OAuth และการกำหนดค่าการบันทึกที่แก้ไขแล้ว แชร์กับเซิร์ฟเวอร์ปฏิบัติการ: เครื่องมือเดียวกัน ลงทะเบียนโดยทั้งสองฝ่าย |
get_databases_in_cluster | แสดงรายการฐานข้อมูลทั้งหมดในคลัสเตอร์ Operational Insights |
get_scopes_in_database | แสดงรายการ scopes ทั้งหมดในฐานข้อมูล |
get_collections_in_scope | แสดงรายการ collections (ชุดข้อมูล) ทั้งหมดใน scope ใช้ชื่อเดียวกันกับเครื่องมือของเซิร์ฟเวอร์ปฏิบัติการ — ดูหมายเหตุด้านล่าง |
get_schema_for_collection | อนุมาน JSON schema ของ collection โดยการสุ่มตัวอย่างเอกสาร ใช้ชื่อเดียวกันกับเครื่องมือของเซิร์ฟเวอร์ปฏิบัติการ — ดูหมายเหตุด้านล่าง |
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 | ตรวจสอบว่าการสอบถามแบบ async เสร็จสิ้นหรือไม่ และหากเสร็จสิ้น ให้ส่งคืนแถวของมัน ทำหน้าที่เป็นการตรวจสอบสถานะด้วย — เรียกอีกครั้งในภายหลังหากยังไม่พร้อม |
discard_async_query_results | ปลดปล่อยบัฟเฟอร์ผลลัพธ์ของการสอบถามแบบ async ที่เสร็จสิ้นบนเซิร์ฟเวอร์ ขั้นตอนการทำความสะอาดปกติหลังจาก get_async_query_results |
cancel_async_query | หยุดการสอบถามแบบ async ที่ยังทำงานอยู่ ถูกปิดใช้งานโดยค่าเริ่มต้นเมื่อ CB_MCP_READ_ONLY_MODE=true การสอบถามที่เสร็จสิ้นแล้วไม่สามารถยกเลิกได้ — ให้ทิ้งผลลัพธ์แทน |
เครื่องมือ Server Async Request 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 เพื่อรันเซิร์ฟเวอร์
- ติดตั้ง MCP client เช่น Claude Desktop เพื่อเชื่อมต่อเซิร์ฟเวอร์กับ Claude คำแนะนำมีไว้สำหรับ Claude Desktop และ Cursor ไคลเอ็นต์ MCP อื่นๆ ก็สามารถใช้ได้เช่นกัน
การกำหนดค่า
เซิร์ฟเวอร์ MCP สามารถรันได้จากแพ็คเกจ PyPI ที่สร้างไว้ล่วงหน้าหรือจากซอร์สโดยใช้ uv
รันจาก PyPI
เราเผยแพร่ แพ็คเกจ PyPI ที่สร้างไว้ล่วงหน้าสำหรับเซิร์ฟเวอร์ MCP
การกำหนดค่าเซิร์ฟเวอร์โดยใช้แพ็คเกจที่สร้างไว้ล่วงหน้าสำหรับไคลเอ็นต์ 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
นี่คือการกำหนดค่าทั่วไปสำหรับไคลเอ็นต์ MCP เช่น Claude Desktop, Cursor, Windsurf Editor
{
"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 | ชื่อผู้ใช้ที่มีสิทธิ์เข้าถึง buckets ที่จำเป็นสำหรับการรับรองความถูกต้องพื้นฐาน | จำเป็น (หรือต้องมีใบรับรองไคลเอ็นต์และคีย์สำหรับ 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, Query, การจัดการ scope/collection และการจัดการดัชนี) เมื่อเปิดใช้งาน เครื่องมือเขียนจะไม่ถูกโหลด | 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 | เส้นทางฐานสำหรับไฟล์บันทึกแยกระดับ (ใช้เฉพาะเมื่อเปิดใช้งาน sink 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 | ขนาดการหมุนเวียน เป็น MB สำหรับไฟล์บันทึก ERROR แทนที่ CB_MCP_LOG_ROTATION_MAX_SIZE_MB สำหรับ ERROR | สืบทอด CB_MCP_LOG_ROTATION_MAX_SIZE_MB |
CB_MCP_LOG_WARNING_ROTATION_MAX_SIZE_MB | --log-warning-rotation-max-size-mb | ขนาดการหมุนเวียน เป็น MB สำหรับไฟล์บันทึก WARNING แทนที่ CB_MCP_LOG_ROTATION_MAX_SIZE_MB สำหรับ WARNING | สืบทอด CB_MCP_LOG_ROTATION_MAX_SIZE_MB |
CB_MCP_LOG_INFO_ROTATION_MAX_SIZE_MB | --log-info-rotation-max-size-mb | ขนาดการหมุนเวียน เป็น MB สำหรับไฟล์บันทึก INFO แทนที่ CB_MCP_LOG_ROTATION_MAX_SIZE_MB สำหรับ INFO | สืบทอด CB_MCP_LOG_ROTATION_MAX_SIZE_MB |
CB_MCP_LOG_DEBUG_ROTATION_MAX_SIZE_MB | --log-debug-rotation-max-size-mb | ขนาดการหมุนเวียน เป็น MB สำหรับไฟล์บันทึก DEBUG แทนที่ CB_MCP_LOG_ROTATION_MAX_SIZE_MB สำหรับ DEBUG | สืบทอด 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 | ปลายทาง JWKS ของผู้ให้บริการข้อมูลประจำตัวที่ใช้ตรวจสอบ bearer JWTs เปิดใช้งาน OAuth เมื่อตั้งค่าพร้อม issuer และ audience (ดู การอนุญาต OAuth 2.1) | ไม่มี |
CB_MCP_OAUTH_JWT_ISSUER | --oauth-issuer | ค่าที่คาดหวังของ JWT iss claim จำเป็นเพื่อเปิดใช้งาน OAuth | ไม่มี |
CB_MCP_OAUTH_JWT_AUDIENCE | --oauth-audience | ค่าที่คาดหวังของ JWT aud claim จำเป็นเพื่อเปิดใช้งาน 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 Protected Resource Metadata เพื่อให้ไคลเอ็นต์ที่รองรับ PRM ค้นพบ IdP ได้ | ไม่มี |
CB_MCP_OAUTH_SCOPE_READ_LABEL | --oauth-scope-read-label | แทนที่ป้ายกำกับขอบเขต OAuth ที่ถือว่าเป็นการเข้าถึง 'อ่าน' (โฆษณาใน PRM และจับคู่กับ scope/scp claim ของโทเค็น) ใช้เมื่อ 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, Query, การจัดการ scope/collection และการจัดการดัชนี) ถูกปิดใช้งาน เครื่องมือเขียนทั้งหมด (KV: upsert, insert, replace, delete, sub-document mutate; การจัดการ scope/collection: create_scope, create_collection, delete_scope, delete_collection; การจัดการดัชนี: create_index, build_index, drop_index) ไม่ถูกโหลด และจะไม่พร้อมใช้งานสำหรับ LLM และคำสั่ง SQL++ ที่แก้ไขข้อมูลหรือโครงสร้างจะถูกบล็อก - เมื่อ
false: เครื่องมือเขียนทั้งหมดถูกโหลดและคำสั่ง SQL++ ที่แก้ไขข้อมูล/โครงสร้างได้รับอนุญาต
นี่คือค่าเริ่มต้นที่ปลอดภัยที่แนะนำเพื่อป้องกันการแก้ไขข้อมูลโดยไม่ตั้งใจโดย LLM
หมายเหตุ: สำหรับการรับรองความถูกต้อง คุณต้องมีชื่อผู้ใช้และรหัสผ่าน หรือเส้นทางใบรับรองไคลเอ็นต์และคีย์ คุณสามารถระบุเส้นทางใบรับรองราก CA ที่จะใช้ตรวจสอบใบรับรองเซิร์ฟเวอร์ได้ตามตัวเลือก หากระบุทั้งเส้นทางใบรับรองไคลเอ็นต์และคีย์ และชื่อผู้ใช้และรหัสผ่าน ใบรับรองไคลเอ็นต์จะถูกใช้สำหรับการรับรองความถูกต้อง
การปิดใช้งานเครื่องมือ
คุณสามารถปิดใช้งานเครื่องมือเฉพาะเพื่อป้องกันไม่ให้เครื่องมือเหล่านั้นถูกโหลดและเปิดเผยต่อ MCP client ได้ เครื่องมือที่ถูกปิดใช้งานจะไม่ปรากฏในการค้นพบเครื่องมือและไม่สามารถถูกเรียกใช้โดย 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 Client
การใช้รายการคั่นด้วยเครื่องหมายจุลภาค:
{
"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 (Role-Based Access Control) ของผู้ใช้ฐานข้อมูลพื้นฐานคือการควบคุมความปลอดภัยที่มีอำนาจสูงสุด
ตัวอย่างเช่น แม้ว่าคุณจะปิดใช้งาน
upsert_document_by_idและdelete_document_by_idการแก้ไขข้อมูลยังคงเกิดขึ้นได้ผ่านเครื่องมือrun_sql_plus_plus_queryโดยใช้คำสั่ง DML ของ SQL++ (INSERT, UPDATE, DELETE, MERGE) เว้นแต่:
CB_MCP_READ_ONLY_MODEถูกตั้งค่าเป็นtrue(ค่าเริ่มต้น) หรือ- ผู้ใช้ฐานข้อมูลขาดสิทธิ์ RBAC ที่จำเป็นสำหรับการแก้ไขข้อมูล
แนวทางปฏิบัติที่ดีที่สุด: กำหนดค่าสิทธิ์ RBAC ที่เหมาะสมบนข้อมูลประจำตัวผู้ใช้ Couchbase ของคุณเสมอเป็นมาตรการรักษาความปลอดภัยหลัก ใช้การปิดใช้งานเครื่องมือเป็นชั้นเพิ่มเติมเพื่อแนะนำพฤติกรรมของ LLM และลดพื้นที่การโจมตี ไม่ใช่เป็นการควบคุมความปลอดภัยเพียงอย่างเดียว
การขอ/ยืนยันสำหรับการเรียกใช้เครื่องมือ
คุณสามารถกำหนดให้ผู้ใช้ยืนยันอย่างชัดเจนสำหรับเครื่องมือเฉพาะก่อนการดำเนินการ (เมื่อ MCP client รองรับการขอ)
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
เมื่อเครื่องมือในรายการถูกเรียกใช้:
- หาก client รองรับการขอ ผู้ใช้จะได้รับพร้อมท์ให้ยืนยัน
- หาก client ไม่รองรับการขอ เครื่องมือจะทำงานโดยไม่มีการยืนยันเพื่อความเข้ากันได้ย้อนหลัง
คุณยังสามารถตรวจสอบเวอร์ชันของเซิร์ฟเวอร์ได้โดยใช้:
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เพื่อเก็บเฉพาะไฟล์ที่ใช้งานอยู่สำหรับระดับนั้น — ยังคงถูกจำกัดด้วยขนาดการหมุน (รีเซ็ตเมื่อหมุนแทนการสำรอง) - สแนปช็อตการกำหนดค่าเซิร์ฟเวอร์ — เมื่อ sink
fileทำงาน บันทึกแบบครั้งเดียว (OS, Python, เวอร์ชัน dependencies, transport, การกำหนดค่าการบันทึกที่แก้ไขแล้ว และการกำหนดค่าเซิร์ฟเวอร์ที่ปกปิด) จะถูกเขียนเป็น JSON ไปยังไฟล์mcp_server_config.log.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
สำหรับรายละเอียดเพิ่มเติม ดู เอกสารประกอบ
การกำหนดค่าเฉพาะ Client
Claude Desktop
ทำตามขั้นตอนด้านล่างเพื่อใช้ Couchbase MCP เซิร์ฟเวอร์กับ Claude Desktop MCP client
-
ขณะนี้สามารถเพิ่ม 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 cluster โดยใช้ภาษาธรรมชาติและดำเนินการ CRUD บนเอกสารได้
บันทึก
บันทึกสำหรับ Claude Desktop สามารถพบได้ในตำแหน่งต่อไปนี้:
- MacOS: ~/Library/Logs/Claude
- Windows: %APPDATA%\Claude\Logs
บันทึกสามารถใช้เพื่อวินิจฉัยปัญหาการเชื่อมต่อหรือปัญหาอื่น ๆ กับการกำหนดค่า MCP เซิร์ฟเวอร์ของคุณ สำหรับรายละเอียดเพิ่มเติม อ้างอิง เอกสารประกอบอย่างเป็นทางการ
Cursor
ทำตามขั้นตอนด้านล่างเพื่อใช้ Couchbase MCP เซิร์ฟเวอร์กับ Cursor:
-
ติดตั้ง Cursor บนเครื่องของคุณ
-
ใน Cursor ไปที่ Cursor > Cursor Settings > Tools & Integrations > MCP Tools นอกจากนี้ ตรวจสอบเอกสารเกี่ยวกับ การตั้งค่าการกำหนดค่า MCP เซิร์ฟเวอร์ จาก Cursor
-
ระบุ การกำหนดค่า เดียวกันด้วยตนเอง หรือใช้ลิงก์ ติดตั้งใน Cursor แบบคลิกเดียว คุณอาจต้องเพิ่มการกำหนดค่าเซิร์ฟเวอร์ภายใต้คีย์หลักของ
mcpServersหมายเหตุ: ลิงก์ติดตั้งใช้ค่าตัวแทนจากตัวอย่างการกำหนดค่าด้านบน อัปเดตสตริงการเชื่อมต่อและข้อมูลประจำตัวหลังการติดตั้ง
-
บันทึกการกำหนดค่า
-
คุณจะเห็น couchbase เป็นเซิร์ฟเวอร์ที่เพิ่มในรายการ MCP เซิร์ฟเวอร์ รีเฟรชเพื่อดูว่าเซิร์ฟเวอร์ถูกเปิดใช้งานหรือไม่
-
ตอนนี้คุณสามารถใช้ Couchbase MCP เซิร์ฟเวอร์ใน Cursor เพื่อสอบถาม Couchbase cluster ของคุณโดยใช้ภาษาธรรมชาติและดำเนินการ CRUD บนเอกสารได้
สำหรับรายละเอียดเพิ่มเติมเกี่ยวกับการรวม MCP กับ Cursor อ้างอิง เอกสารประกอบ MCP อย่างเป็นทางการของ Cursor
บันทึก
ในแผงด้านล่างของ Cursor คลิกที่ "Output" และเลือก "Cursor MCP" จากเมนูแบบเลื่อนลงเพื่อดูบันทึกของเซิร์ฟเวอร์ ซึ่งสามารถช่วยวินิจฉัยปัญหาการเชื่อมต่อหรือปัญหาอื่น ๆ กับการกำหนดค่า MCP เซิร์ฟเวอร์ของคุณ
Windsurf Editor
ทำตามขั้นตอนด้านล่างเพื่อใช้ Couchbase MCP เซิร์ฟเวอร์กับ Windsurf Editor
-
ติดตั้ง 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 เซิร์ฟเวอร์จากด้านบน
-
บันทึกการกำหนดค่า
-
คุณจะเห็น couchbase เป็นเซิร์ฟเวอร์ที่เพิ่มในรายการ MCP Servers ภายใต้ Advanced Settings รีเฟรชเพื่อดูว่าเซิร์ฟเวอร์ถูกเปิดใช้งานหรือไม่
-
ตอนนี้คุณสามารถใช้ Couchbase MCP เซิร์ฟเวอร์ใน Windsurf Editor เพื่อสอบถาม Couchbase cluster ของคุณโดยใช้ภาษาธรรมชาติและดำเนินการ CRUD บนเอกสารได้
สำหรับรายละเอียดเพิ่มเติมเกี่ยวกับการรวม MCP กับ Windsurf Editor อ้างอิง เอกสารประกอบ MCP ของ Windsurf อย่างเป็นทางการ
VS Code
ทำตามขั้นตอนด้านล่างเพื่อใช้ Couchbase MCP เซิร์ฟเวอร์กับ VS Code
-
ติดตั้ง VS Code
-
ต่อไปนี้เป็นสองสามวิธีในการกำหนดค่า MCP เซิร์ฟเวอร์
-
สำหรับการกำหนดค่าเซิร์ฟเวอร์ระดับ Workspace
- สร้างไฟล์ใหม่ใน workspace เป็น .vscode/mcp.json
- เพิ่ม การกำหนดค่า และบันทึกไฟล์
-
สำหรับการกำหนดค่าเซิร์ฟเวอร์ระดับ Global:
- รัน MCP: Open User Configuration ใน Command Palette (
Ctrl+Shift+PหรือCmd+Shift+P) - เพิ่ม การกำหนดค่า และบันทึกไฟล์
- รัน MCP: Open User Configuration ใน Command Palette (
-
หมายเหตุ: VS Code ใช้
serversเป็นคุณสมบัติ JSON ระดับบนสุดในไฟล์ mcp.json เพื่อกำหนดเซิร์ฟเวอร์ MCP (Model Context Protocol) ในขณะที่ Cursor ใช้mcpServersสำหรับการกำหนดค่าที่เทียบเท่า ตรวจสอบ การกำหนดค่า client ของ 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/จัดการเซิร์ฟเวอร์ -
ตอนนี้คุณสามารถใช้ Couchbase MCP เซิร์ฟเวอร์ใน VS Code เพื่อสอบถาม Couchbase cluster ของคุณโดยใช้ภาษาธรรมชาติและดำเนินการ CRUD บนเอกสารได้
บันทึก:
ใน Command Palette (Ctrl+Shift+P หรือ Cmd+Shift+P)
- รันคำสั่ง MCP: List Servers และเลือกเซิร์ฟเวอร์ couchbase
- เลือก "Show Output" เพื่อดูบันทึกในแท็บ Output
JetBrains IDEs
ทำตามขั้นตอนด้านล่างเพื่อใช้ Couchbase MCP เซิร์ฟเวอร์กับ JetBrains IDEs
- ติดตั้ง JetBrains IDEs ใดก็ได้หนึ่งตัว
- ติดตั้งปลั๊กอิน JetBrains ใดก็ได้หนึ่งตัว - AI Assistant หรือ Junie
- นำทางไปที่ Settings > Tools > AI Assistant or Junie > MCP Server
- คลิก "+" เพื่อเพิ่ม การกำหนดค่า Couchbase MCP และคลิก Save
- คุณจะเห็น Couchbase MCP เซิร์ฟเวอร์ถูกเพิ่มในรายการเซิร์ฟเวอร์ เมื่อคุณคลิก Apply Couchbase MCP เซิร์ฟเวอร์จะเริ่มทำงาน และเมื่อวางเมาส์บนสถานะ จะแสดงเครื่องมือทั้งหมดที่มี
- ตอนนี้คุณสามารถใช้ Couchbase MCP เซิร์ฟเวอร์ใน JetBrains IDEs เพื่อสอบถาม Couchbase cluster ของคุณโดยใช้ภาษาธรรมชาติและดำเนินการ CRUD บนเอกสารได้
บันทึก: ไฟล์บันทึกสามารถสำรวจได้ที่ Help > Show Log in Finder (Explorer) > mcp > couchbase
เซิร์ฟเวอร์ Operational Insights
ควบคู่ไปกับเซิร์ฟเวอร์ operational เริ่มต้น (เซิร์ฟเวอร์ที่ทุกส่วนด้านบนอธิบาย) การแจกจ่ายนี้มาพร้อมกับเซิร์ฟเวอร์ที่สองสำหรับคลัสเตอร์ Operational Insights โดยใช้ couchbase-operational-insights SDK แยกต่างหาก มันเป็นผลิตภัณฑ์ที่แตกต่างจาก Couchbase cluster ทั่วไปและทำงานเป็นกระบวนการอิสระบนพอร์ตของตัวเอง
รันโดยส่ง operational-insights เป็นคำสั่งย่อย CLI (หรือต่อท้ายเป็นคำสั่งของคอนเทนเนอร์):
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 คือ URL HTTP(S) ไม่ใช่สตริงการเชื่อมต่อ couchbase:// — เช่น http://localhost:8095 สำหรับเซิร์ฟเวอร์ Operational Insights ในเครื่อง หรือ https://<host>:18095 สำหรับ Capella นี่คือการกำหนดค่าผิดที่พบบ่อยที่สุดเมื่อชี้เซิร์ฟเวอร์นี้ไปที่คลัสเตอร์
| อาร์กิวเมนต์ CLI | ตัวแปรสภาพแวดล้อม | คำอธิบาย | ค่าเริ่มต้น |
|---|---|---|---|
--connection-string | CB_OI_CONNECTION_STRING | URL ปลายทางของ Operational Insights (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-*) เหมือนกับของเซิร์ฟเวอร์ปฏิบัติการ — ดู
การกำหนดค่าเพิ่มเติมสำหรับ MCP Server —
ยกเว้นค่าเริ่มต้นสำหรับ พอร์ต (8001, ไม่ใช่ 8000) และ ไฟล์บันทึก
(mcp_server_operational_insights.log, ไม่ใช่ mcp_server.log) เนื่องจากเซิร์ฟเวอร์สองตัว
ไม่สามารถใช้ร่วมกันได้ OAuth ใช้ป้ายกำกับขอบเขตเดียวกัน
(couchbase-mcp:read / couchbase-mcp:write) เช่นเดียวกับเซิร์ฟเวอร์ปฏิบัติการ ดังนั้น
การกำหนดค่า 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 ด้านบนสำหรับ รายการเครื่องมือ และหมายเหตุเกี่ยวกับชื่อเครื่องมือสามชื่อที่ใช้ร่วมกับ เซิร์ฟเวอร์ปฏิบัติการ
เซิร์ฟเวอร์ทั้งสองใช้รายการ MCP Registry
เดียวกัน io.github.couchbase/mcp-server-couchbase ซึ่งเผยแพร่จาก
server.json รายการมีรายการแพ็กเกจแยกต่างหากสำหรับแต่ละเซิร์ฟเวอร์ (PyPI
และ Docker) แต่ละรายการส่งผ่านซับคอมมานด์ของตน (operational หรือ
operational-insights) และประกาศเฉพาะอาร์กิวเมนต์และ
ตัวแปรสภาพแวดล้อมของเซิร์ฟเวอร์นั้นเท่านั้น
โหมดการขนส่ง Streamable HTTP
MCP Server สามารถรันในโหมดการขนส่ง Streamable HTTP ซึ่งอนุญาตให้ไคลเอ็นต์หลายตัวเชื่อมต่อกับอินสแตนซ์เซิร์ฟเวอร์เดียวกันผ่าน HTTP ตรวจสอบว่า MCP client ของคุณรองรับการขนส่ง streamable http ก่อนพยายามเชื่อมต่อกับ MCP server ในโหมดนี้
หมายเหตุ: การอนุญาต OAuth 2.1 รองรับในการขนส่งนี้ ดู การอนุญาต OAuth 2.1 หากไม่ได้กำหนดค่า OAuth ปลายทาง HTTP จะไม่มีการตรวจสอบสิทธิ์
การใช้งาน
โดยค่าเริ่มต้น MCP server จะรันบนพอร์ต 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 ซึ่งสามารถใช้ในไคลเอ็นต์ MCP ที่รองรับโหมดการขนส่ง streamable http เช่น Cursor
การกำหนดค่าไคลเอ็นต์ MCP
{
"mcpServers": {
"couchbase-http": {
"url": "http://localhost:8000/mcp"
}
}
}
โหมดการขนส่ง SSE
มีตัวเลือกในการรัน MCP server ในโหมดการขนส่ง Server-Sent Events (SSE)
หมายเหตุ: โหมด SSE ถูก เลิกใช้งาน โดย MCP เรารองรับ Streamable HTTP
SSE: การใช้งาน
โดยค่าเริ่มต้น MCP server จะรันบนพอร์ต 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 ซึ่งสามารถใช้ในไคลเอ็นต์ MCP ที่รองรับโหมดการขนส่ง SSE เช่น Cursor
SSE: การกำหนดค่าไคลเอ็นต์ MCP
{
"mcpServers": {
"couchbase-sse": {
"url": "http://localhost:8000/sse"
}
}
}
การอนุญาต OAuth 2.1
เมื่อรันด้วย --transport=http MCP server สามารถทำหน้าที่เป็น เซิร์ฟเวอร์ทรัพยากร OAuth 2.1: มันตรวจสอบ JWT bearer ที่เข้ามากับ JWKS ของผู้ให้บริการข้อมูลประจำตัวของคุณ มันไม่ขึ้นกับผู้ให้บริการ (ผู้ให้บริการ OAuth 2.1 / OIDC ใดๆ ที่เผยแพร่ JWKS — Auth0, Okta, Keycloak, AWS Cognito, Microsoft Entra ฯลฯ) และ ไม่ ออกโทเค็นหรือจัดการผู้ใช้ การตั้งค่า OAuth จะถูกละเว้นบน stdio
OAuth ถูกกำหนดค่าด้วยตัวแปร 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 เพื่อให้ไคลเอ็นต์ที่รองรับ 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 server ยังสามารถสร้างและรันเป็นคอนเทนเนอร์ 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 server สามารถรันได้โดยใช้ตัวแปรสภาพแวดล้อมเพื่อกำหนดค่าการตั้งค่า Couchbase ตัวแปรสภาพแวดล้อมเหมือนกับที่อธิบายไว้ใน ส่วนการกำหนดค่าเพิ่มเติม
คอนเทนเนอร์ 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 เก็บรวบรวม ปกป้อง และประมวลผลข้อมูล โปรดดูนโยบายความเป็นส่วนตัวของ Couchbase ที่ https://www.couchbase.com/privacy-policy.
เคล็ดลับการแก้ไขปัญหา
- ตรวจสอบว่าเส้นทางไปยังที่เก็บ MCP server ของคุณถูกต้องในการกำหนดค่าหากรันจากซอร์ส
- ตรวจสอบว่าสตริงการเชื่อมต่อ Couchbase ชื่อผู้ใช้ฐานข้อมูล รหัสผ่าน หรือเส้นทางไปยังใบรับรองของคุณถูกต้อง
- หากใช้ Couchbase Capella ตรวจสอบว่าคลัสเตอร์ เข้าถึงได้ จากเครื่องที่รัน MCP server
- ตรวจสอบว่าผู้ใช้ฐานข้อมูลมีสิทธิ์ที่เหมาะสมในการเข้าถึงอย่างน้อยหนึ่งบัคเก็ต
- ยืนยันว่าตัวจัดการแพ็กเกจ
uvติดตั้งและเข้าถึงได้อย่างถูกต้อง คุณอาจต้องระบุเส้นทางสัมบูรณ์ไปยังuv/uvxในฟิลด์commandในการกำหนดค่า - ตรวจสอบบันทึกสำหรับข้อผิดพลาดหรือคำเตือนที่อาจบ่งบอกถึงปัญหากับ MCP server ตำแหน่งของบันทึกขึ้นอยู่กับไคลเอ็นต์ MCP ของคุณ
- หากคุณพบปัญหาการรัน MCP server จากซอร์สหลังจากการอัปเดตที่เก็บ MCP server ในเครื่องของคุณ ลองรัน
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
คำถามที่พบบ่อย
Couchbase MCP Server คืออะไร? เป็นการใช้งาน Model Context Protocol ที่โฮสต์เอง ซึ่งช่วยให้ผู้ช่วย AI และเอเจนต์ (Claude, Cursor, Windsurf, VS Code Copilot, JetBrains AI Assistant/Junie และไคลเอ็นต์ MCP อื่นๆ) สามารถสอบถามและแก้ไขข้อมูลในคลัสเตอร์ Couchbase โดยใช้ภาษาธรรมชาติได้
ฉันจะเชื่อมต่อ Claude Desktop กับ Couchbase ได้อย่างไร? ติดตั้งเซิร์ฟเวอร์ด้วย uvx couchbase-mcp-server (หรือรันจากซอร์สหรือ Docker) จากนั้นเพิ่มการกำหนดค่าลงใน claude_desktop_config.json ของ Claude Desktop ตามที่แสดงใน การกำหนดค่า รีสตาร์ท Claude Desktop แล้วมันจะรับเครื่องมือใหม่
ฉันสามารถใช้สิ่งนี้กับ Couchbase Capella ได้หรือไม่? ได้ การกำหนดค่า CB_CONNECTION_STRING/CB_USERNAME/CB_PASSWORD (หรือใบรับรอง mTLS) เดียวกันทำงานกับทั้ง Couchbase Capella และคลัสเตอร์ Couchbase Server ที่จัดการเอง
ปลอดภัยไหมที่จะให้เอเจนต์ AI เขียนลงในฐานข้อมูลของฉัน? โดยค่าเริ่มต้น CB_MCP_READ_ONLY_MODE เป็นจริง ดังนั้นการดำเนินการเขียนทั้งหมด — การอัปเดต/แทรก/แทนที่/ลบเอกสาร และคำสั่ง SQL++ ที่แก้ไขข้อมูล — ถูกปิดใช้งาน และเครื่องมือเขียนไม่ถูกโหลดด้วยซ้ำ คุณยังสามารถปิดใช้งานเครื่องมือแต่ละรายการได้ (ดู การปิดใช้งานเครื่องมือ) หรือกำหนดให้ผู้ใช้ยืนยันอย่างชัดเจนก่อนที่เครื่องมือเฉพาะจะรัน (ดู การสอบถาม/การยืนยัน) การควบคุมระดับเครื่องมือแนะนำพฤติกรรมของ LLM; สิทธิ์ RBAC ของผู้ใช้ Couchbase ของคุณยังคงเป็นขอบเขตความปลอดภัยที่แท้จริง
ฉันสามารถรันคำสั่งภาษาธรรมชาติกับข้อมูลของฉันโดยไม่ต้องเขียน SQL++ ด้วยตัวเองได้หรือไม่? ได้ — ถามคำถามผู้ช่วย AI ของคุณเป็นภาษาอังกฤษธรรมดา (เช่น "แสดงคำสั่งซื้อล่าสุด 10 รายการที่มีมูลค่ามากกว่า $100") และมันสามารถแปลเป็นคำสั่ง SQL++ โดยใช้เครื่องมือ run_sql_plus_plus_query คุณยังสามารถขอให้ผู้ช่วย explain_sql_plus_plus_query คำสั่งหรือขอคำแนะนำจากที่ปรึกษาดัชนีได้
ความแตกต่างระหว่าง STDIO, Streamable HTTP และ SSE transport คืออะไร? STDIO ใช้สำหรับ MCP client ในเครื่องเดียว (เช่น Claude Desktop) ที่เรียกใช้เซิร์ฟเวอร์เป็น subprocess ส่วน Streamable HTTP ให้ client หลายตัวแชร์อินสแตนซ์เซิร์ฟเวอร์ที่รันอยู่ตัวเดียวผ่าน HTTP และรองรับ OAuth 2.1 ส่วน SSE เป็น HTTP transport รุ่นเก่า ซึ่งตอนนี้ MCP spec เลิกใช้แล้วและแนะนำให้ใช้ Streamable HTTP แทน — ดู Streamable HTTP Transport Mode
โปรเจกต์นี้ได้รับการสนับสนุนอย่างเป็นทางการจาก Couchbase หรือไม่? โปรเจกต์นี้เป็นโปรเจกต์ที่ดูแลโดยชุมชน Couchbase — ดู Support Policy การสนับสนุนระดับองค์กรมีให้แยกต่างหากผ่าน Couchbase AI Data Plane
การมีส่วนร่วม
เรายินดีต้อนรับการมีส่วนร่วมจากชุมชน! ไม่ว่าคุณต้องการแก้ไขบั๊ก เพิ่มฟีเจอร์ หรือปรับปรุงเอกสาร ความช่วยเหลือของคุณเป็นสิ่งที่มีค่า
หากคุณต้องการความช่วยเหลือ พบบั๊ก หรือต้องการเสนอการปรับปรุง สถานที่ที่ดีที่สุดคือที่นี่ — โดยการ เปิด GitHub issue
สำหรับนักพัฒนา
หากคุณสนใจที่จะมีส่วนร่วมในโค้ดหรือตั้งค่าสภาพแวดล้อมสำหรับการพัฒนา:
📖 ดู CONTRIBUTING.md สำหรับคำแนะนำการตั้งค่าสำหรับนักพัฒนาแบบครบถ้วน รวมถึง:
- การตั้งค่าสภาพแวดล้อมการพัฒนาด้วย
uv - การตรวจสอบและจัดรูปแบบโค้ดด้วย Ruff
- การติดตั้ง pre-commit hooks
- ภาพรวมโครงสร้างโปรเจกต์
- ขั้นตอนการทำงานและแนวปฏิบัติสำหรับการพัฒนา
เริ่มต้นอย่างรวดเร็วสำหรับผู้มีส่วนร่วม
# 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 ซึ่งหมายความว่า ไม่ได้รับการสนับสนุนอย่างเป็นทางการ จากทีมสนับสนุนของเรา อย่างไรก็ตาม วิศวกรของเรากำลังติดตามและดูแล repo นี้อย่างแข็งขัน และจะพยายามแก้ไขปัญหาต่างๆ ตามความสามารถที่ดีที่สุด
พอร์ทัลสนับสนุนของเราไม่สามารถช่วยเหลือเกี่ยวกับคำขอที่เกี่ยวข้องกับโปรเจกต์นี้ได้ ดังนั้นเราจึงขอความกรุณาให้สอบถามทั้งหมดอยู่ภายใน GitHub
ความร่วมมือของคุณช่วยให้เราก้าวไปข้างหน้าด้วยกัน — ขอบคุณ!