Couchbase

ทางการ

โต้ตอบกับข้อมูลที่เก็บอยู่ในคลัสเตอร์ Couchbase โดยใช้ภาษาธรรมชาติ

GitHub
35
ลองใช้ MCP นี้ผู้สนับสนุน

คุณทำอะไรได้บ้างด้วย 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 License Python 3.10+ PyPI version Install in Cursor Verified on MseeP Trust Score

สำหรับเอกสารฉบับเต็ม โปรดเยี่ยมชม docs.couchbase.com/mcp-server

Couchbase Server MCP server

สารบัญ

ทำไมต้อง 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 รายการล่าสุดในคอลเลกชัน users where 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_idUpsert เอกสารตาม 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, ssestdio
CB_MCP_HOST--hostโฮสต์สำหรับโหมดการขนส่ง HTTP/SSE127.0.0.1
CB_MCP_PORT--portพอร์ตสำหรับโหมดการขนส่ง HTTP/SSE8000
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/512RS256
CB_MCP_OAUTH_MCP_BASE_URL--oauth-mcp-base-urlURL ฐานสาธารณะของเซิร์ฟเวอร์นี้ เมื่อตั้งค่า จะเผยแพร่ 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

  1. ขณะนี้สามารถเพิ่ม MCP เซิร์ฟเวอร์ไปยัง Claude Desktop ได้โดยการแก้ไขไฟล์การกำหนดค่า คำแนะนำโดยละเอียดเพิ่มเติมสามารถพบได้ใน คู่มือเริ่มต้นอย่างรวดเร็วของ MCP

    • บน Mac ไฟล์การกำหนดค่าอยู่ที่ ~/Library/Application Support/Claude/claude_desktop_config.json
    • บน Windows ไฟล์การกำหนดค่าอยู่ที่ %APPDATA%\Claude\claude_desktop_config.json

    เปิดไฟล์การกำหนดค่าและเพิ่ม การกำหนดค่า ไปยังส่วน mcpServers

  2. รีสตาร์ท Claude Desktop เพื่อใช้การเปลี่ยนแปลง

  3. ตอนนี้คุณสามารถใช้เซิร์ฟเวอร์ใน Claude Desktop เพื่อรันคำสั่งบน Couchbase cluster โดยใช้ภาษาธรรมชาติและดำเนินการ CRUD บนเอกสารได้

บันทึก

บันทึกสำหรับ Claude Desktop สามารถพบได้ในตำแหน่งต่อไปนี้:

  • MacOS: ~/Library/Logs/Claude
  • Windows: %APPDATA%\Claude\Logs

บันทึกสามารถใช้เพื่อวินิจฉัยปัญหาการเชื่อมต่อหรือปัญหาอื่น ๆ กับการกำหนดค่า MCP เซิร์ฟเวอร์ของคุณ สำหรับรายละเอียดเพิ่มเติม อ้างอิง เอกสารประกอบอย่างเป็นทางการ

Cursor

ทำตามขั้นตอนด้านล่างเพื่อใช้ Couchbase MCP เซิร์ฟเวอร์กับ Cursor:

  1. ติดตั้ง Cursor บนเครื่องของคุณ

  2. ใน Cursor ไปที่ Cursor > Cursor Settings > Tools & Integrations > MCP Tools นอกจากนี้ ตรวจสอบเอกสารเกี่ยวกับ การตั้งค่าการกำหนดค่า MCP เซิร์ฟเวอร์ จาก Cursor

  3. ระบุ การกำหนดค่า เดียวกันด้วยตนเอง หรือใช้ลิงก์ ติดตั้งใน Cursor แบบคลิกเดียว คุณอาจต้องเพิ่มการกำหนดค่าเซิร์ฟเวอร์ภายใต้คีย์หลักของ mcpServers

    หมายเหตุ: ลิงก์ติดตั้งใช้ค่าตัวแทนจากตัวอย่างการกำหนดค่าด้านบน อัปเดตสตริงการเชื่อมต่อและข้อมูลประจำตัวหลังการติดตั้ง

  4. บันทึกการกำหนดค่า

  5. คุณจะเห็น couchbase เป็นเซิร์ฟเวอร์ที่เพิ่มในรายการ MCP เซิร์ฟเวอร์ รีเฟรชเพื่อดูว่าเซิร์ฟเวอร์ถูกเปิดใช้งานหรือไม่

  6. ตอนนี้คุณสามารถใช้ Couchbase MCP เซิร์ฟเวอร์ใน Cursor เพื่อสอบถาม Couchbase cluster ของคุณโดยใช้ภาษาธรรมชาติและดำเนินการ CRUD บนเอกสารได้

สำหรับรายละเอียดเพิ่มเติมเกี่ยวกับการรวม MCP กับ Cursor อ้างอิง เอกสารประกอบ MCP อย่างเป็นทางการของ Cursor

บันทึก

ในแผงด้านล่างของ Cursor คลิกที่ "Output" และเลือก "Cursor MCP" จากเมนูแบบเลื่อนลงเพื่อดูบันทึกของเซิร์ฟเวอร์ ซึ่งสามารถช่วยวินิจฉัยปัญหาการเชื่อมต่อหรือปัญหาอื่น ๆ กับการกำหนดค่า MCP เซิร์ฟเวอร์ของคุณ

Windsurf Editor

ทำตามขั้นตอนด้านล่างเพื่อใช้ Couchbase MCP เซิร์ฟเวอร์กับ Windsurf Editor

  1. ติดตั้ง Windsurf Editor บนเครื่องของคุณ

  2. ใน Windsurf Editor นำทางไปที่ Command Palette > Windsurf MCP Configuration Panel หรือ Windsurf - Settings > Advanced > Cascade > Model Context Protocol (MCP) Servers สำหรับรายละเอียดเพิ่มเติมเกี่ยวกับการกำหนดค่า โปรดอ้างอิง เอกสารประกอบอย่างเป็นทางการ

  3. คลิกที่ Add Server จากนั้น Add custom server ในการกำหนดค่าที่เปิดในตัวแก้ไข ให้เพิ่ม การกำหนดค่า Couchbase MCP เซิร์ฟเวอร์จากด้านบน

  4. บันทึกการกำหนดค่า

  5. คุณจะเห็น couchbase เป็นเซิร์ฟเวอร์ที่เพิ่มในรายการ MCP Servers ภายใต้ Advanced Settings รีเฟรชเพื่อดูว่าเซิร์ฟเวอร์ถูกเปิดใช้งานหรือไม่

  6. ตอนนี้คุณสามารถใช้ Couchbase MCP เซิร์ฟเวอร์ใน Windsurf Editor เพื่อสอบถาม Couchbase cluster ของคุณโดยใช้ภาษาธรรมชาติและดำเนินการ CRUD บนเอกสารได้

สำหรับรายละเอียดเพิ่มเติมเกี่ยวกับการรวม MCP กับ Windsurf Editor อ้างอิง เอกสารประกอบ MCP ของ Windsurf อย่างเป็นทางการ

VS Code

ทำตามขั้นตอนด้านล่างเพื่อใช้ Couchbase MCP เซิร์ฟเวอร์กับ VS Code

  1. ติดตั้ง VS Code

  2. ต่อไปนี้เป็นสองสามวิธีในการกำหนดค่า MCP เซิร์ฟเวอร์

    • สำหรับการกำหนดค่าเซิร์ฟเวอร์ระดับ Workspace

      • สร้างไฟล์ใหม่ใน workspace เป็น .vscode/mcp.json
      • เพิ่ม การกำหนดค่า และบันทึกไฟล์
    • สำหรับการกำหนดค่าเซิร์ฟเวอร์ระดับ Global:

      • รัน MCP: Open User Configuration ใน Command Palette (Ctrl+Shift+P หรือ Cmd+Shift+P)
      • เพิ่ม การกำหนดค่า และบันทึกไฟล์
    • หมายเหตุ: 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"
              }
            }
          }
        }
      
  3. เมื่อคุณบันทึกไฟล์ เซิร์ฟเวอร์จะเริ่มทำงานและรายการการดำเนินการเล็ก ๆ จะปรากฏขึ้นพร้อมกับ Running|Stop|n Tools|More..

  4. คลิกที่ตัวเลือกจากรายการตัวเลือกเพื่อ Start/Stop/จัดการเซิร์ฟเวอร์

  5. ตอนนี้คุณสามารถใช้ 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

  1. ติดตั้ง JetBrains IDEs ใดก็ได้หนึ่งตัว
  2. ติดตั้งปลั๊กอิน JetBrains ใดก็ได้หนึ่งตัว - AI Assistant หรือ Junie
  3. นำทางไปที่ Settings > Tools > AI Assistant or Junie > MCP Server
  4. คลิก "+" เพื่อเพิ่ม การกำหนดค่า Couchbase MCP และคลิก Save
  5. คุณจะเห็น Couchbase MCP เซิร์ฟเวอร์ถูกเพิ่มในรายการเซิร์ฟเวอร์ เมื่อคุณคลิก Apply Couchbase MCP เซิร์ฟเวอร์จะเริ่มทำงาน และเมื่อวางเมาส์บนสถานะ จะแสดงเครื่องมือทั้งหมดที่มี
  6. ตอนนี้คุณสามารถใช้ 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-stringCB_OI_CONNECTION_STRINGURL ปลายทางของ Operational Insights (HTTP/HTTPS, ไม่ใช่ couchbase://)ไม่มี
--usernameCB_OI_USERNAMEชื่อผู้ใช้ของ Operational Insightsไม่มี
--passwordCB_OI_PASSWORDรหัสผ่านของ Operational Insightsไม่มี
--ca-cert-pathCB_OI_CA_CERT_PATHเส้นทางไปยังใบรับรองรากของเซิร์ฟเวอร์ (PEM) สำหรับตรวจสอบใบรับรองเซิร์ฟเวอร์ที่เซ็นชื่อเอง/ไม่น่าเชื่อถือไม่มี
--client-cert-pathCB_OI_CLIENT_CERT_PATHเส้นทางไปยังใบรับรองไคลเอ็นต์สำหรับการตรวจสอบสิทธิ์ mTLS — ใบรับรอง PEM (จับคู่กับ --client-key-path) หรือชุด PKCS#12 (.p12/.pfx, ปล่อย --client-key-path ว่างไว้) ต้องใช้ https:// --connection-string; แทนที่ --username/--password เมื่อตั้งค่าไม่มี
--client-key-pathCB_OI_CLIENT_KEY_PATHเส้นทางไปยังคีย์ส่วนตัวของใบรับรองไคลเอ็นต์ (PEM) ปล่อยว่างไว้เมื่อ --client-cert-path เป็นชุด PKCS#12ไม่มี
--client-cert-passwordCB_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 สาธิตได้

  1. ส่งออกข้อมูลประจำตัวคลัสเตอร์สาธิต:
    • CB_CONNECTION_STRING
    • CB_USERNAME
    • CB_PASSWORD
    • ไม่บังคับ: CB_MCP_TEST_BUCKET (บัคเก็ตที่จะตรวจสอบระหว่างการทดสอบ)
    • ไม่บังคับ สำหรับการทดสอบของ เซิร์ฟเวอร์ Operational Insights เอง: CB_OI_CONNECTION_STRING / CB_OI_USERNAME / CB_OI_PASSWORD การทดสอบเหล่านั้นจะข้ามโดยอัตโนมัติ (ไม่ล้มเหลว) เมื่อไม่ได้ตั้งค่า
  2. รันการทดสอบ:
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

ความร่วมมือของคุณช่วยให้เราก้าวไปข้างหน้าด้วยกัน — ขอบคุณ!