Couchbase

ทางการ

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

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

คุณทำอะไรได้บ้างด้วย Couchbase MCP?

ขอให้ผู้ช่วยของคุณตรวจสอบสุขภาพคลัสเตอร์ สำรวจสคีมา รันคิวรี SQL++ และจัดการเอกสารในคลัสเตอร์ Couchbase ของคุณ

  • รันคิวรี SQL++ — ขอให้ผู้ช่วยของคุณสอบถามข้อมูลด้วย run_sql_plus_plus_query โดยกำหนดขอบเขตไปยังบัคเก็ตและคอลเลกชันโดยอัตโนมัติ
  • สำรวจสคีมา — ค้นพบบัคเก็ต สโคป และคอลเลกชันผ่าน get_buckets_in_cluster และ get_schema_for_collection
  • จัดการเอกสาร — อ่าน อัปเซิร์ต หรือลบเอกสารตาม ID ด้วย get_document_by_id และ upsert_document_by_id
  • ตรวจสอบสุขภาพคลัสเตอร์ — ตรวจสอบการเชื่อมต่อและสถานะบริการด้วย test_cluster_connection และ get_cluster_health_and_services
  • ปรับแต่งดัชนี — แสดงรายการดัชนีและรับคำแนะนำผ่าน list_indexes และ get_index_advisor_recommendations
  • วิเคราะห์ประสิทธิภาพคิวรี — ค้นหาคิวรีที่ช้าหรือไม่เลือกใช้ดัชนีด้วย get_longest_running_queries และ get_queries_using_primary_index

เอกสาร

Couchbase MCP Server

Couchbase MCP Server เป็น MCP Server ที่โฮสต์ด้วยตนเอง ซึ่งช่วยให้ AI agents สามารถเชื่อมต่อและโต้ตอบกับข้อมูลในคลัสเตอร์ Couchbase ไม่ว่าจะโฮสต์บน Capella หรือจัดการด้วยตนเอง โดยมีเครื่องมือครอบคลุมหลายหมวดหมู่ เช่น สุขภาพคลัสเตอร์, โครงสร้างข้อมูล, Key-Value, การสืบค้น, และประสิทธิภาพ — พร้อมการควบคุมความปลอดภัยผ่านโหมดอ่านอย่างเดียวและการปิดใช้งานเครื่องมือแบบละเอียด รองรับทั้ง transport แบบ STDIO และ Streamable HTTP

Couchbase MCP server เผยแพร่เป็นแพ็คเกจ Python Package Index (PyPI) และผ่าน Docker การสนับสนุนระดับองค์กรสำหรับ Couchbase MCP Server มีให้โดยการอนุญาตสิทธิ์ Couchbase AI Data Plane ซึ่งยังให้สิทธิ์ใช้งานและการสนับสนุนระดับองค์กรของ Couchbase Agent Memory และ Couchbase Agent Catalog

Docs License Python 3.10+ PyPI version Install in Cursor Verified on MseeP Trust Score

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

Couchbase Server MCP server

คุณสมบัติ/เครื่องมือ

เครื่องมือการตั้งค่าและสุขภาพคลัสเตอร์

ชื่อเครื่องมือคำอธิบาย
get_server_configuration_statusรับสถานะและการกำหนดค่าเซิร์ฟเวอร์โดยไม่ต้องเชื่อมต่อกับคลัสเตอร์ — รายงานโหมดอ่านอย่างเดียว, เครื่องมือที่ถูกปิดใช้งาน/ต้องยืนยัน, การตั้งค่า OAuth, และการกำหนดค่าการบันทึกที่แก้ไขแล้ว
test_cluster_connectionตรวจสอบข้อมูลประจำตัวคลัสเตอร์โดยการเชื่อมต่อกับคลัสเตอร์
get_cluster_health_and_servicesรับสถานะสุขภาพคลัสเตอร์และรายการบริการที่กำลังทำงานทั้งหมด

เครื่องมือการค้นพบโมเดลข้อมูลและโครงสร้าง

ชื่อเครื่องมือคำอธิบาย
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รับโครงสร้างของ 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อัปเดตหรือแทรกเอกสารตาม 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, array ops, 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 ทุติยภูมิแบบสเกลาร์ (ไม่ใช่เวกเตอร์) บน collection โดยดีเลย์เป็นค่าเริ่มต้น — เรียกใช้ build_index หลังจากนั้นเพื่อสร้าง ปิดใช้งานโดยค่าเริ่มต้นเมื่อ CB_MCP_READ_ONLY_MODE=true
build_indexทริกเกอร์การสร้างดัชนีที่ถูกดีเลย์ทั้งหมดบน collection ปิดใช้งานโดยค่าเริ่มต้นเมื่อ CB_MCP_READ_ONLY_MODE=true
drop_indexลบดัชนี GSI (สเกลาร์หรือเวกเตอร์) ออกจาก collection ปิดใช้งานโดยค่าเริ่มต้นเมื่อ CB_MCP_READ_ONLY_MODE=true
run_sql_plus_plus_queryเรียกใช้ คำสั่ง SQL++ บน scope ที่ระบุ

คำสั่งจะถูกจำกัดขอบเขตอัตโนมัติไปยัง bucket และ scope ที่ระบุ ดังนั้นให้ใช้ชื่อ collection โดยตรง (เช่น SELECT * FROM users แทน SELECT * FROM bucket.scope.users)

CB_MCP_READ_ONLY_MODE เป็น true โดยค่าเริ่มต้น ซึ่งหมายความว่า การดำเนินการเขียนทั้งหมด (KV, Query, การจัดการ scope/collection, และการจัดการดัชนี) จะถูกปิดใช้งาน เมื่อเปิดใช้งาน เครื่องมือเขียน KV, การจัดการ collection, และการจัดการดัชนีจะไม่ถูกโหลด และคำสั่ง SQL++ ที่แก้ไขข้อมูลจะถูกบล็อก
explain_sql_plus_plus_queryสร้างและประเมินแผน EXPLAIN สำหรับคำสั่ง SQL++ ส่งคืน metadata ของคำสั่ง, แผนที่สกัดได้, และผลการประเมินแผน

เครื่องมือวิเคราะห์ประสิทธิภาพการสืบค้น

ชื่อเครื่องมือคำอธิบาย
get_longest_running_queriesรับคำสั่งที่ทำงานนานที่สุดโดยเวลาให้บริการเฉลี่ย
get_most_frequent_queriesรับคำสั่งที่ถูกดำเนินการบ่อยที่สุด
get_queries_with_largest_response_sizesรับคำสั่งที่มีขนาดการตอบสนองใหญ่ที่สุด
get_queries_with_large_result_countรับคำสั่งที่มีจำนวนผลลัพธ์มากที่สุด
get_queries_using_primary_indexรับคำสั่งที่ใช้ดัชนีหลัก (ปัญหาด้านประสิทธิภาพที่อาจเกิดขึ้น)
get_queries_not_using_covering_indexรับคำสั่งที่ไม่ใช้ดัชนีครอบคลุม
get_queries_not_selectiveรับคำสั่งที่ไม่ได้เลือกสรร (การสแกนดัชนีส่งคืนเอกสารมากกว่าผลลัพธ์สุดท้ายมาก)

ข้อกำหนดเบื้องต้น

  • Python 3.10 หรือสูงกว่า
  • คลัสเตอร์ Couchbase ที่กำลังทำงาน วิธีที่ง่ายที่สุดในการเริ่มต้นคือการใช้ ระดับฟรีของ Capella ซึ่งเป็นเวอร์ชันที่จัดการเต็มรูปแบบของเซิร์ฟเวอร์ Couchbase คุณสามารถทำตาม คำแนะนำ เพื่อนำเข้าชุดข้อมูลตัวอย่างหรือนำเข้าข้อมูลของคุณเอง
  • ติดตั้ง uv เพื่อรันเซิร์ฟเวอร์
  • ติดตั้ง MCP client เช่น Claude Desktop เพื่อเชื่อมต่อเซิร์ฟเวอร์กับ Claude คำแนะนำมีให้สำหรับ Claude Desktop และ Cursor สามารถใช้ MCP clients อื่นได้เช่นกัน

การกำหนดค่า

MCP server สามารถรันได้จากแพ็คเกจ PyPI ที่สร้างไว้ล่วงหน้าหรือจากซอร์สโค้ดโดยใช้ uv

การรันจาก PyPI

เราเผยแพร่ แพ็คเกจ PyPI ที่สร้างไว้ล่วงหน้าสำหรับ MCP server

การกำหนดค่าเซิร์ฟเวอร์โดยใช้แพ็คเกจที่สร้างไว้ล่วงหน้าสำหรับ MCP Clients

การรับรองความถูกต้องพื้นฐาน

{
  "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 servers อื่นที่ใช้งานอยู่ใน client คุณสามารถเพิ่มลงใน mcpServers object ที่มีอยู่ได้

การรันจากซอร์สโค้ด

MCP server สามารถรันจากซอร์สโค้ดโดยใช้ repository นี้

โคลน repository ไปยังเครื่องของคุณ

git clone https://github.com/couchbase/mcp-server-couchbase.git

การกำหนดค่าเซิร์ฟเวอร์โดยใช้ซอร์สโค้ดสำหรับ MCP Clients

นี่คือการกำหนดค่าทั่วไปสำหรับ MCP clients เช่น 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/ ควรเป็นเส้นทางไปยัง repository ที่โคลนบนเครื่องของคุณ อย่าลืมเครื่องหมายทับท้าย!

หมายเหตุ: หากคุณมี MCP servers อื่นที่ใช้งานอยู่ใน client คุณสามารถเพิ่มลงใน mcpServers object ที่มีอยู่ได้

การกำหนดค่าเพิ่มเติมสำหรับ MCP Server

เซิร์ฟเวอร์สามารถกำหนดค่าได้โดยใช้ตัวแปรสภาพแวดล้อมหรืออาร์กิวเมนต์บรรทัดคำสั่ง:

ตัวแปรสภาพแวดล้อมอาร์กิวเมนต์ CLIคำอธิบายค่าเริ่มต้น
CB_CONNECTION_STRING--connection-stringสตริงการเชื่อมต่อไปยังคลัสเตอร์ Couchbaseจำเป็น
CB_USERNAME--usernameชื่อผู้ใช้ที่มีสิทธิ์เข้าถึงบัคเก็ตที่จำเป็นสำหรับการตรวจสอบสิทธิ์พื้นฐานจำเป็น (หรือต้องใช้ใบรับรองไคลเอ็นต์และคีย์สำหรับ mTLS)
CB_PASSWORD--passwordรหัสผ่านสำหรับการตรวจสอบสิทธิ์พื้นฐานจำเป็น (หรือต้องใช้ใบรับรองไคลเอ็นต์และคีย์สำหรับ mTLS)
CB_CLIENT_CERT_PATH--client-cert-pathเส้นทางไปยังไฟล์ใบรับรองไคลเอ็นต์สำหรับการตรวจสอบสิทธิ์ mTLSจำเป็นหากใช้ mTLS (หรือต้องใช้ชื่อผู้ใช้และรหัสผ่าน)
CB_CLIENT_KEY_PATH--client-key-pathเส้นทางไปยังไฟล์คีย์ไคลเอ็นต์สำหรับการตรวจสอบสิทธิ์ mTLSจำเป็นหากใช้ mTLS (หรือต้องใช้ชื่อผู้ใช้และรหัสผ่าน)
CB_CA_CERT_PATH--ca-cert-pathเส้นทางไปยังใบรับรองรากของเซิร์ฟเวอร์สำหรับ TLS หากเซิร์ฟเวอร์ถูกกำหนดค่าด้วยใบรับรองที่ลงนามด้วยตนเอง/ไม่น่าเชื่อถือ ซึ่งไม่จำเป็นหากคุณเชื่อมต่อกับ Capella
CB_MCP_READ_ONLY_MODE--read-only-modeป้องกันการแก้ไขข้อมูลทั้งหมด (KV, Query, การจัดการสโคป/คอลเลกชัน และการจัดการดัชนี) เมื่อเปิดใช้งาน เครื่องมือเขียน KV, การจัดการคอลเลกชัน และดัชนีจะไม่ถูกโหลด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 ของผู้ให้บริการระบุตัวตนที่ใช้ตรวจสอบ JWT แบบ bearer เปิดใช้งาน OAuth เมื่อตั้งค่าพร้อมกับ issuer และ audience (ดู การอนุญาต OAuth 2.1)ไม่มี
CB_MCP_OAUTH_JWT_ISSUER--oauth-issuerการอ้างสิทธิ์ iss ของ JWT ที่คาดหวัง จำเป็นเพื่อเปิดใช้งาน OAuthไม่มี
CB_MCP_OAUTH_JWT_AUDIENCE--oauth-audienceการอ้างสิทธิ์ aud ของ JWT ที่คาดหวัง จำเป็นเพื่อเปิดใช้งาน 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 ที่ถือว่าเป็นการเข้าถึง 'read' (โฆษณาใน PRM และจับคู่กับการอ้างสิทธิ์ scope/scp ของโทเค็น) ใช้เมื่อ IdP ของคุณไม่สามารถส่งรูปแบบมาตรฐานได้couchbase-mcp:read
CB_MCP_OAUTH_SCOPE_WRITE_LABEL--oauth-scope-write-labelแทนที่ป้ายกำกับขอบเขต OAuth ที่ถือว่าเป็นการเข้าถึง 'write'; ความหมายเดียวกันกับป้ายกำกับ readcouchbase-mcp:write

การกำหนดค่าโหมดอ่านอย่างเดียว

CB_MCP_READ_ONLY_MODE คือสวิตช์เดียวที่ควบคุมการดำเนินการเขียน:

  • เมื่อ true (ค่าเริ่มต้น): การดำเนินการเขียนทั้งหมด (KV, Query, การจัดการสโคป/คอลเลกชัน และการจัดการดัชนี) ถูกปิดใช้งาน เครื่องมือเขียน KV (upsert, insert, replace, delete, sub-document mutate), เครื่องมือเขียนการจัดการสโคป/คอลเลกชัน (create_scope, create_collection, delete_scope, delete_collection) และเครื่องมือเขียนดัชนี (create_index, build_index, drop_index) ไม่ถูกโหลด และจะไม่พร้อมใช้งานสำหรับ LLM และคิวรี SQL++ ที่แก้ไขข้อมูลหรือโครงสร้างจะถูกบล็อก
  • เมื่อ false: เครื่องมือเขียน KV, การจัดการสโคป/คอลเลกชัน และดัชนีถูกโหลด และคิวรี SQL++ ที่แก้ไขข้อมูล/โครงสร้างได้รับอนุญาต

นี่คือค่าเริ่มต้นที่ปลอดภัยที่แนะนำเพื่อป้องกันการแก้ไขข้อมูลโดยไม่ตั้งใจจาก LLM

หมายเหตุ: สำหรับการตรวจสอบสิทธิ์ คุณต้องมีชื่อผู้ใช้และรหัสผ่าน หรือเส้นทางใบรับรองไคลเอ็นต์และคีย์ คุณสามารถระบุเส้นทางใบรับรองราก CA ที่จะใช้ตรวจสอบใบรับรองเซิร์ฟเวอร์ได้ หากระบุทั้งเส้นทางใบรับรองไคลเอ็นต์และคีย์ และชื่อผู้ใช้และรหัสผ่าน ใบรับรองไคลเอ็นต์จะถูกใช้สำหรับการตรวจสอบสิทธิ์

การปิดใช้งานเครื่องมือ

คุณสามารถปิดใช้งานเครื่องมือเฉพาะเพื่อป้องกันไม่ให้ถูกโหลดและเปิดเผยต่อไคลเอ็นต์ MCP เครื่องมือที่ปิดใช้งานจะไม่ปรากฏในการค้นพบเครื่องมือและไม่สามารถถูกเรียกใช้โดย LLM

รูปแบบที่รองรับ

รายการที่คั่นด้วยเครื่องหมายจุลภาค:

# Environment variable
CB_MCP_DISABLED_TOOLS="upsert_document_by_id, delete_document_by_id"

# Command line
uvx couchbase-mcp-server --disabled-tools upsert_document_by_id, delete_document_by_id

เส้นทางไฟล์ (หนึ่งชื่อเครื่องมือต่อบรรทัด):

# Environment variable
CB_MCP_DISABLED_TOOLS=disabled_tools.txt

# Command line
uvx couchbase-mcp-server --disabled-tools disabled_tools.txt

รูปแบบไฟล์ (เช่น disabled_tools.txt):

# Write operations
upsert_document_by_id
delete_document_by_id

# Index advisor
get_index_advisor_recommendations

บรรทัดที่ขึ้นต้นด้วย # ถือเป็นความคิดเห็นและจะถูกละเว้น

ตัวอย่างการกำหนดค่าไคลเอ็นต์ MCP

ใช้รายการที่คั่นด้วยเครื่องหมายจุลภาค:

{
  "mcpServers": {
    "couchbase": {
      "command": "uvx",
      "args": ["couchbase-mcp-server"],
      "env": {
        "CB_CONNECTION_STRING": "couchbases://connection-string",
        "CB_USERNAME": "username",
        "CB_PASSWORD": "password",
        "CB_MCP_DISABLED_TOOLS": "upsert_document_by_id,delete_document_by_id"
      }
    }
  }
}

ใช้เส้นทางไฟล์ (แนะนำสำหรับเครื่องมือจำนวนมาก):

{
  "mcpServers": {
    "couchbase": {
      "command": "uvx",
      "args": ["couchbase-mcp-server"],
      "env": {
        "CB_CONNECTION_STRING": "couchbases://connection-string",
        "CB_USERNAME": "username",
        "CB_PASSWORD": "password",
        "CB_MCP_DISABLED_TOOLS": "/path/to/disabled_tools.txt"
      }
    }
  }
}

หมายเหตุด้านความปลอดภัยที่สำคัญ

คำเตือน: การปิดใช้งานเครื่องมือเพียงอย่างเดียวไม่รับประกันว่าการดำเนินการบางอย่างไม่สามารถดำเนินการได้ สิทธิ์ RBAC (Role-Based Access Control) ของผู้ใช้ฐานข้อมูลเป็นตัวควบคุมความปลอดภัยที่เชื่อถือได้

ตัวอย่างเช่น แม้ว่าคุณจะปิดใช้งาน upsert_document_by_id และ delete_document_by_id การแก้ไขข้อมูลยังคงเกิดขึ้นได้ผ่านเครื่องมือ run_sql_plus_plus_query โดยใช้คำสั่ง SQL++ DML (INSERT, UPDATE, DELETE, MERGE) เว้นแต่:

  • CB_MCP_READ_ONLY_MODE ถูกตั้งค่าเป็น true (ค่าเริ่มต้น) หรือ
  • ผู้ใช้ฐานข้อมูลขาดสิทธิ์ RBAC ที่จำเป็นสำหรับการแก้ไขข้อมูล

แนวทางปฏิบัติที่ดีที่สุด: กำหนดค่าสิทธิ์ RBAC ที่เหมาะสมบนข้อมูลรับรองผู้ใช้ Couchbase ของคุณเสมอเป็นมาตรการรักษาความปลอดภัยหลัก ใช้การปิดใช้งานเครื่องมือเป็นชั้นเพิ่มเติมเพื่อแนะนำพฤติกรรมของ LLM และลดพื้นผิวการโจมตี ไม่ใช่เป็นตัวควบคุมความปลอดภัยเพียงอย่างเดียว

การขอ/ยืนยันสำหรับการเรียกใช้เครื่องมือ

คุณสามารถกำหนดให้มีการยืนยันจากผู้ใช้อย่างชัดเจนสำหรับเครื่องมือเฉพาะก่อนดำเนินการ (เมื่อไคลเอ็นต์ MCP รองรับ elicitation)

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

เมื่อเครื่องมือที่อยู่ในรายการถูกเรียกใช้:

  • หากไคลเอ็นต์รองรับ elicitation ผู้ใช้จะได้รับแจ้งให้ยืนยัน
  • หากไคลเอ็นต์ไม่รองรับ elicitation เครื่องมือจะทำงานโดยไม่มีการยืนยันเพื่อความเข้ากันได้ย้อนหลัง

คุณยังสามารถตรวจสอบเวอร์ชันของเซิร์ฟเวอร์ได้โดยใช้:

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

สำหรับรายละเอียดเพิ่มเติม ดู เอกสารประกอบ

การกำหนดค่าเฉพาะไคลเอ็นต์

Claude Desktop

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

  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 โดยใช้ภาษาธรรมชาติ และดำเนินการ CRUD บนเอกสารได้

บันทึก

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

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

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

Cursor

ทำตามขั้นตอนด้านล่างเพื่อใช้ Couchbase MCP server กับ Cursor:

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

  2. ใน Cursor ไปที่ Cursor > Cursor Settings > Tools & Integrations > MCP Tools และดูเอกสารเกี่ยวกับ การตั้งค่าการกำหนดค่า MCP server จาก Cursor

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

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

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

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

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

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

บันทึก

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

Windsurf Editor

ทำตามขั้นตอนด้านล่างเพื่อใช้ Couchbase MCP server กับ 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 Server จากด้านบน

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

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

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

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

VS Code

ทำตามขั้นตอนด้านล่างเพื่อใช้ Couchbase MCP server กับ VS Code

  1. ติดตั้ง VS Code

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

    • สำหรับการกำหนดค่าเซิร์ฟเวอร์แบบ 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) servers ในขณะที่ Cursor ใช้ mcpServers สำหรับการกำหนดค่าที่เทียบเท่า ตรวจสอบ การกำหนดค่าไคลเอนต์ VS Code สำหรับการเปลี่ยนแปลงหรือรายละเอียดเพิ่มเติม ตัวอย่างการกำหนดค่า VS Code แสดงไว้ด้านล่าง

        {
          "servers": {
            "couchbase": {
              "command": "uvx",
              "args": ["couchbase-mcp-server"],
              "env": {
                "CB_CONNECTION_STRING": "couchbases://connection-string",
                "CB_USERNAME": "username",
                "CB_PASSWORD": "password"
              }
            }
          }
        }
      
  3. เมื่อคุณบันทึกไฟล์ เซิร์ฟเวอร์จะเริ่มทำงานและรายการการดำเนินการเล็ก ๆ จะปรากฏพร้อมกับ Running|Stop|n Tools|More..

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

  5. ตอนนี้คุณสามารถใช้ Couchbase MCP server ใน VS Code เพื่อค้นหาคลัสเตอร์ Couchbase ของคุณโดยใช้ภาษาธรรมชาติ และดำเนินการ CRUD บนเอกสารได้

บันทึก: ใน Command Palette (Ctrl+Shift+P หรือ Cmd+Shift+P),

  • รันคำสั่ง MCP: List Servers และเลือกเซิร์ฟเวอร์ couchbase
  • เลือก “Show Output” เพื่อดูบันทึกในแท็บ Output
JetBrains IDEs

ทำตามขั้นตอนด้านล่างเพื่อใช้ Couchbase MCP server กับ 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 server ถูกเพิ่มในรายการเซิร์ฟเวอร์ เมื่อคุณคลิก Apply เซิร์ฟเวอร์ Couchbase MCP จะเริ่มทำงาน และเมื่อวางเมาส์บนสถานะ จะแสดงเครื่องมือทั้งหมดที่มี
  6. ตอนนี้คุณสามารถใช้ Couchbase MCP server ใน JetBrains IDEs เพื่อค้นหาคลัสเตอร์ Couchbase ของคุณโดยใช้ภาษาธรรมชาติ และดำเนินการ CRUD บนเอกสารได้

บันทึก: ไฟล์บันทึกสามารถสำรวจได้ที่ Help > Show Log in Finder (Explorer) > mcp > couchbase

โหมดการขนส่ง Streamable HTTP

MCP Server สามารถรันในโหมดการขนส่ง Streamable HTTP ซึ่งอนุญาตให้ไคลเอนต์หลายตัวเชื่อมต่อกับอินสแตนซ์เซิร์ฟเวอร์เดียวกันผ่าน HTTP ตรวจสอบว่า MCP client ของคุณรองรับการขนส่งแบบ streamable http หรือไม่ก่อนพยายามเชื่อมต่อกับ MCP server ในโหมดนี้

หมายเหตุ: การอนุญาต OAuth 2.1 รองรับบนการขนส่งนี้ ดู OAuth 2.1 Authorization หากไม่ได้กำหนดค่า 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 clients ที่รองรับโหมดการขนส่งแบบ streamable http เช่น Cursor

การกำหนดค่า MCP Client

{
  "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 clients ที่รองรับโหมดการขนส่ง SSE เช่น Cursor

SSE: การกำหนดค่า MCP Client

{
  "mcpServers": {
    "couchbase-sse": {
      "url": "http://localhost:8000/sse"
    }
  }
}

การอนุญาต OAuth 2.1

เมื่อรันด้วย --transport=http MCP server สามารถทำหน้าที่เป็น OAuth 2.1 resource server: มันตรวจสอบความถูกต้องของ bearer JWT ที่เข้ามากับ 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 Protected Resource Metadata เพื่อให้ไคลเอนต์ที่รองรับ PRM สามารถค้นหาเซิร์ฟเวอร์การอนุญาตได้
  • การเข้าถึงถูกควบคุมโดยสองขอบเขตที่อ่านจากคำสั่ง scope/scp ของโทเค็น: couchbase-mcp:read (เครื่องมืออ่าน รวมถึง SQL++) และ couchbase-mcp:write (เครื่องมือเขียน: การกลายพันธุ์ KV, การจัดการขอบเขต/คอลเลกชัน และการจัดการดัชนี) การเข้าถึงเต็มรูปแบบต้องใช้ทั้งสอง หาก IdP ของคุณไม่สามารถส่งฉลากมาตรฐานเหล่านั้นได้ ให้แทนที่ด้วย CB_MCP_OAUTH_SCOPE_READ_LABEL / CB_MCP_OAUTH_SCOPE_WRITE_LABEL
uvx couchbase-mcp-server \
  --connection-string='<couchbase_connection_string>' \
  --username='<database_username>' \
  --password='<database_password>' \
  --transport=http \
  --oauth-jwks-uri='https://auth.example.com/.well-known/jwks.json' \
  --oauth-issuer='https://auth.example.com/' \
  --oauth-audience='couchbase-mcp-server' \
  --oauth-mcp-base-url='<public_base_url_of_this_server>'

สำหรับรายละเอียดทั้งหมด ดู เอกสาร

อิมเมจ Docker

MCP server ยังสามารถสร้างและรันเป็นคอนเทนเนอร์ Docker ได้ อิมเมจที่สร้างไว้ล่วงหน้าสามารถพบได้บน DockerHub หรือดึงผ่าน docker pull docker.io/couchbase/mcp-server:latest

หรือเราอยู่ใน Docker MCP Catalog

การสร้างอิมเมจ

docker build -t mcp/couchbase-src .
Building with Arguments หากคุณต้องการสร้างด้วยอาร์กิวเมนต์การสร้างสำหรับ commit hash และเวลาสร้าง คุณสามารถสร้างโดยใช้:
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 commit hash และ timestamp การสร้าง
  • สร้างแท็กที่มีประโยชน์หลายแท็ก (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 Client

อิมเมจ 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 package manager ได้รับการติดตั้งอย่างถูกต้องและสามารถเข้าถึงได้ คุณอาจต้องระบุเส้นทางแบบสัมบูรณ์ไปยัง uv/uvx ในฟิลด์ command ในการกำหนดค่า
  • ตรวจสอบบันทึก (logs) สำหรับข้อผิดพลาดหรือคำเตือนที่อาจบ่งบอกถึงปัญหากับ MCP server ตำแหน่งของบันทึกขึ้นอยู่กับ MCP client ของคุณ
  • หากคุณพบปัญหาการรัน MCP server จากซอร์สหลังจากการอัปเดตที่เก็บ MCP server ในเครื่องของคุณ ให้ลองรัน uv sync เพื่ออัปเดต dependencies

การทดสอบการรวมระบบ

เรามีการทดสอบการรวมระบบ MCP ระดับสูงเพื่อตรวจสอบว่าเซิร์ฟเวอร์เปิดเผยเครื่องมือที่คาดหวังและสามารถเรียกใช้กับคลัสเตอร์ Couchbase สาธิตได้

  1. ส่งออกข้อมูลประจำตัวของคลัสเตอร์สาธิต:
    • CB_CONNECTION_STRING
    • CB_USERNAME
    • CB_PASSWORD
    • ไม่บังคับ: CB_MCP_TEST_BUCKET (บัคเก็ตที่จะใช้ตรวจสอบระหว่างการทดสอบ)
  2. รันการทดสอบ:
uv run pytest tests/ -v

👩‍💻 การมีส่วนร่วม

เรายินดีต้อนรับการมีส่วนร่วมจากชุมชน! ไม่ว่าคุณต้องการแก้ไขบั๊ก เพิ่มฟีเจอร์ หรือปรับปรุงเอกสาร ความช่วยเหลือของคุณเป็นที่ชื่นชม

หากคุณต้องการความช่วยเหลือ พบข้อบกพร่อง หรือต้องการมีส่วนร่วมในการปรับปรุง สถานที่ที่ดีที่สุดคือที่นี่ — โดย การเปิด issue บน GitHub

สำหรับนักพัฒนา

หากคุณสนใจที่จะมีส่วนร่วมในโค้ดหรือตั้งค่าสภาพแวดล้อมการพัฒนา:

📖 ดู 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

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