Couchbase

chính thức

Tương tác với dữ liệu được lưu trữ trong các cụm Couchbase bằng ngôn ngữ tự nhiên.

GitHub
35
Dùng thử MCP nàyĐược tài trợ

Bạn có thể làm gì với Couchbase MCP?

  • Khám phá cấu trúc cụm — Yêu cầu liệt kê các bucket, scope và collection, đồng thời kiểm tra schema qua get_buckets_in_cluster, get_scopes_in_bucket và get_schema_for_collection.
  • Chạy truy vấn SQL++ — Thực thi các truy vấn chỉ đọc trên một scope bằng run_sql_plus_plus_query, hoặc lấy kế hoạch thực thi qua explain_sql_plus_plus_query.
  • Kiểm tra tình trạng cụm — Xác minh kết nối và trạng thái dịch vụ bằng test_cluster_connection và get_cluster_health_and_services, hoặc lấy thông tin chẩn đoán qua get_cluster_diagnostics_report.
  • Phân tích hiệu suất truy vấn — Xác định các truy vấn chậm hoặc kém hiệu quả bằng get_longest_running_queries và get_queries_using_primary_index.
  • Quản lý tài liệu — Truy xuất hoặc sửa đổi tài liệu theo ID bằng get_document_by_id và upsert_document_by_id (các công cụ ghi yêu cầu CB_MCP_READ_ONLY_MODE=false).
  • Tối ưu hóa chỉ mục — Nhận đề xuất chỉ mục bằng get_index_advisor_recommendations hoặc liệt kê các chỉ mục hiện có qua list_indexes.

Tài liệu

Máy chủ Couchbase MCP

Máy chủ Couchbase MCP là một máy chủ Giao thức Ngữ cảnh Mô hình (MCP) tự lưu trữ, kết nối các tác nhân AI và trợ lý hỗ trợ LLM — Claude, Cursor, Windsurf, VS Code Copilot và các máy khách MCP khác — với dữ liệu trong các cụm Couchbase, dù được lưu trữ trên Capella hay tự quản lý. MCP là một tiêu chuẩn mở cho phép trợ lý AI gọi các công cụ và truy vấn các nguồn dữ liệu bên ngoài; máy chủ này triển khai tiêu chuẩn đó cho Couchbase, để tác nhân AI có thể kiểm tra cụm của bạn, chạy truy vấn SQL++, đọc và ghi tài liệu, cũng như phân tích hiệu suất truy vấn bằng ngôn ngữ tự nhiên thay vì mã viết tay.

Máy chủ cung cấp các công cụ thuộc nhiều danh mục bao gồm Sức khỏe Cụm, Lược đồ Dữ liệu, Khóa-Giá trị, Truy vấn và Hiệu suất — với các kiểm soát an toàn thông qua chế độ chỉ đọc (bật theo mặc định) và tinh chỉnh vô hiệu hóa công cụ, để bạn có thể cho phép tác nhân AI khám phá và truy vấn dữ liệu của mình mà không gây rủi ro ghi không mong muốn. Máy chủ hỗ trợ cả hai phương thức truyền tải STDIO và HTTP có thể truyền phát.

Máy chủ Couchbase MCP được phân phối dưới dạng gói Chỉ mục Gói Python (PyPI) và qua Docker. Hỗ trợ doanh nghiệp cho Máy chủ Couchbase MCP có sẵn thông qua cấp phép Couchbase AI Data Plane, cũng bao gồm quyền sử dụng và hỗ trợ doanh nghiệp cho Couchbase Agent Memory và Couchbase Agent Catalog.

Để có tài liệu đầy đủ, hãy truy cập mcp-server.couchbase.com.

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

Để có tài liệu đầy đủ, hãy truy cập docs.couchbase.com/mcp-server.

Couchbase Server MCP server

Mục lục

Tại sao nên dùng Máy chủ Couchbase MCP

  • An toàn theo mặc định — các thao tác ghi (upsert/chèn/xóa tài liệu và truy vấn SQL++ sửa đổi dữ liệu) bị chặn trừ khi bạn đặt rõ ràng CB_MCP_READ_ONLY_MODE=false, và các công cụ riêng lẻ có thể bị vô hiệu hóa hoặc chặn sau xác nhận của người dùng.
  • Hoạt động với Capella và cụm tự quản lý — cùng một cấu hình kết nối với Couchbase Capella (được quản lý đầy đủ) hoặc cụm Máy chủ Couchbase tự lưu trữ.
  • Nhận biết RBAC — vô hiệu hóa công cụ là một lớp tiện lợi để hướng dẫn hành vi LLM; kiểm soát truy cập dựa trên vai trò của người dùng Couchbase cơ bản vẫn là ranh giới bảo mật có thẩm quyền.
  • Truyền tải sản xuất — chạy qua STDIO cho máy khách máy tính để bàn cục bộ, hoặc HTTP có thể truyền phát với OAuth 2.1 tùy chọn (JWT/JWKS, không phụ thuộc nhà cung cấp — Auth0, Okta, Keycloak, Entra, Cognito, v.v.) cho triển khai dùng chung/từ xa.
  • Bất kỳ máy khách MCP nào — đã kiểm thử với Claude Desktop, Cursor, Windsurf, VS Code và JetBrains AI Assistant/Junie; hoạt động với bất kỳ máy khách nào triển khai đặc tả MCP.

Ví dụ về Lời nhắc

Khi máy chủ đã được kết nối, bạn có thể trò chuyện với cụm Couchbase của mình bằng ngôn ngữ tự nhiên thông qua trợ lý AI. Ví dụ:

  • "Tôi có những bucket, scope và collection nào trong cụm này, và lược đồ của collection orders là gì?"
  • "Chạy truy vấn SQL++ để tìm 10 tài liệu gần đây nhất trong collection users where status = 'active'."
  • "5 truy vấn chậm nhất trên cụm này trong giờ qua là gì, và có truy vấn nào thiếu chỉ mục bao phủ không?"
  • "Kiểm tra xem cụm này có khỏe mạnh không và cho tôi biết dịch vụ nào đang chạy."
  • "Chèn một tài liệu mới vào collection products với các trường sau: ..." (yêu cầu CB_MCP_READ_ONLY_MODE=false)

Tính năng/Công cụ

Bản phân phối này cung cấp hai máy chủ: máy chủ vận hành (mặc định — các bảng ngay dưới đây) kết nối với cụm Couchbase thông thường qua SDK couchbase, và máy chủ Thông tin Chi tiết Vận hành (bảng riêng ở phần dưới) kết nối với cụm Thông tin Chi tiết Vận hành qua SDK couchbase-operational-insights.

Công cụ thiết lập và sức khỏe cụm

Tên Công cụMô tả
get_server_configuration_statusLấy trạng thái và cấu hình máy chủ mà không cần kết nối với cụm — báo cáo chế độ chỉ đọc, các công cụ bị vô hiệu hóa/yêu cầu xác nhận, cài đặt OAuth và cấu hình ghi nhật ký đã giải quyết
test_cluster_connectionKiểm tra thông tin xác thực cụm bằng cách kết nối với cụm
get_cluster_health_and_servicesLấy trạng thái sức khỏe cụm và danh sách tất cả dịch vụ đang chạy, tùy chọn lọc theo dịch vụ cụ thể qua service_types
get_cluster_diagnostics_reportLấy chẩn đoán kết nối được lưu trong bộ nhớ đệm của SDK — liệu các kết nối đã bị hỏng trước đó và trong bao lâu, mà không cần thăm dò mạng chủ động
get_cluster_metricsLấy một hoặc nhiều số liệu thống kê cụm trong một khoảng thời gian lịch sử qua điểm cuối stats-range của REST API Quản lý. Chỉ dành cho Máy chủ Couchbase tự quản lý 7.6+ — không khả dụng trên Capella.
discover_tool_input_valuesTra cứu chính xác các giá trị đầu vào mà công cụ khác cần, từ dữ liệu tham chiếu đi kèm với máy chủ — hiện tại mọi tên số liệu Máy chủ Couchbase (loại, đơn vị, phiên bản thêm, mô tả) cho get_cluster_metrics. Duyệt theo danh mục hoặc tìm kiếm mờ theo từ khóa. Hoạt động ngoại tuyến, không cần kết nối cụm.

Công cụ khám phá mô hình dữ liệu và lược đồ

Tên Công cụMô tả
get_buckets_in_clusterLấy danh sách tất cả các bucket trong cụm
get_scopes_in_bucketLấy danh sách tất cả các scope trong bucket được chỉ định
get_collections_in_scopeLấy danh sách tất cả các collection trong một scope và bucket được chỉ định. Lưu ý rằng công cụ này yêu cầu cụm phải có dịch vụ Query.
get_scopes_and_collections_in_bucketLấy danh sách tất cả các scope và collection trong bucket được chỉ định
get_schema_for_collectionLấy cấu trúc cho một collection
create_scopeTạo một scope mới trong một bucket (Máy chủ Couchbase 7.6+ và Capella). Bị vô hiệu hóa theo mặc định khi CB_MCP_READ_ONLY_MODE=true.
create_collectionTạo một collection mới trong một scope hiện có (Máy chủ Couchbase 7.6+ và Capella). Bị vô hiệu hóa theo mặc định khi CB_MCP_READ_ONLY_MODE=true.
delete_scopeXóa một scope và tất cả các collection của nó khỏi một bucket — vĩnh viễn. Bị vô hiệu hóa theo mặc định khi CB_MCP_READ_ONLY_MODE=true.
delete_collectionXóa một collection và tất cả các tài liệu của nó khỏi một scope — vĩnh viễn. Bị vô hiệu hóa theo mặc định khi CB_MCP_READ_ONLY_MODE=true.

Công cụ thao tác KV tài liệu

Tên Công cụMô tả
get_document_by_idLấy một tài liệu theo ID từ một scope và collection được chỉ định
lookup_subdocumentTra cứu các phần của một tài liệu (các trường cụ thể, kiểm tra tồn tại hoặc số lượng mảng/đối tượng) theo đường dẫn mà không cần tải toàn bộ tài liệu
upsert_document_by_idUpsert một tài liệu theo ID vào một scope và collection được chỉ định. Bị vô hiệu hóa theo mặc định khi CB_MCP_READ_ONLY_MODE=true.
insert_document_by_idChèn một tài liệu mới theo ID (thất bại nếu tài liệu đã tồn tại). Bị vô hiệu hóa theo mặc định khi CB_MCP_READ_ONLY_MODE=true.
replace_document_by_idThay thế một tài liệu hiện có theo ID (thất bại nếu tài liệu không tồn tại). Bị vô hiệu hóa theo mặc định khi CB_MCP_READ_ONLY_MODE=true.
delete_document_by_idXóa một tài liệu theo ID khỏi một scope và collection được chỉ định. Bị vô hiệu hóa theo mặc định khi CB_MCP_READ_ONLY_MODE=true.
mutate_subdocumentSửa đổi các phần của một tài liệu hiện có (upsert, chèn, thay thế, xóa, thao tác mảng, bộ đếm) theo đường dẫn mà không cần viết lại toàn bộ tài liệu. Bị vô hiệu hóa theo mặc định khi CB_MCP_READ_ONLY_MODE=true.

Công cụ truy vấn và lập chỉ mục

Tên Công cụMô tả
list_indexesLiệt kê tất cả các chỉ mục trong cụm kèm định nghĩa của chúng, với bộ lọc tùy chọn theo bucket, scope, collection và tên chỉ mục. Đặt return_raw_index_stats=true để trả về thông tin chỉ mục chưa xử lý.
get_index_advisor_recommendationsLấy đề xuất chỉ mục từ Cố vấn Chỉ mục Couchbase cho một truy vấn SQL++ nhất định để tối ưu hóa hiệu suất truy vấn
create_indexTạo một chỉ mục phụ GSI vô hướng (không phải vector) trên một collection. Hoãn theo mặc định — gọi build_index sau đó để xây dựng nó. Bị vô hiệu hóa theo mặc định khi CB_MCP_READ_ONLY_MODE=true.
build_indexKích hoạt việc xây dựng tất cả các chỉ mục bị hoãn trên một collection. Bị vô hiệu hóa theo mặc định khi CB_MCP_READ_ONLY_MODE=true.
drop_indexXóa một chỉ mục GSI (vô hướng hoặc vector) khỏi một collection. Bị vô hiệu hóa theo mặc định khi CB_MCP_READ_ONLY_MODE=true.
run_sql_plus_plus_queryChạy một truy vấn SQL++ trên một scope được chỉ định.

Các truy vấn tự động được giới hạn trong bucket và scope được chỉ định, vì vậy hãy sử dụng trực tiếp tên collection (ví dụ: SELECT * FROM users thay vì SELECT * FROM bucket.scope.users).

CB_MCP_READ_ONLY_MODE là true theo mặc định, nghĩa là tất cả các thao tác ghi (KV, Query, quản lý scope/collection và quản lý chỉ mục) đều bị vô hiệu hóa. Khi được bật (tức là CB_MCP_READ_ONLY_MODE=true), các công cụ ghi không được tải và các truy vấn SQL++ sửa đổi dữ liệu bị chặn.
explain_sql_plus_plus_queryTạo và đánh giá một kế hoạch EXPLAIN cho một truy vấn SQL++. Trả về siêu dữ liệu truy vấn, kế hoạch được trích xuất và các phát hiện đánh giá kế hoạch.

Công cụ tìm kiếm toàn văn (FTS)

Yêu cầu Máy chủ Couchbase 7.6+ và dịch vụ Search. Tìm kiếm vector không được hỗ trợ bởi các công cụ này (xem bộ công cụ tìm kiếm vector riêng).

Tên Công cụMô tả
list_fts_indexesLiệt kê các chỉ mục Search (FTS). Không có bộ lọc, liệt kê các chỉ mục cấp cụm (kế thừa); với bucket_name, liệt kê các chỉ mục cấp scope (có phạm vi) trên mọi scope trong bucket đó; với bucket_name và scope_name, liệt kê các chỉ mục cấp scope trong một scope đó.
get_fts_index_definitionLấy định nghĩa đầy đủ của một chỉ mục Search duy nhất (ánh xạ, bộ phân tích, tham số kế hoạch). Truyền bucket_name và scope_name cùng nhau cho chỉ mục cấp scope, hoặc bỏ qua cả hai cho chỉ mục cấp cụm (kế thừa).
run_fts_queryChạy một truy vấn FTS trên một chỉ mục Search, hoặc tìm nạp kế hoạch thực thi của nó. query là phần thân JSON truy vấn FTS thô, hỗ trợ bất kỳ loại truy vấn không phải vector nào (match, match_phrase, term, conjuncts, disjuncts, geo, phạm vi ngày/số, query_string, ...). Truyền explain=true để tìm nạp kế hoạch thực thi thay vì kết quả — thao tác này vẫn thực thi truy vấn (limit mặc định là 1) vì dịch vụ Search chỉ hiển thị kế hoạch theo từng kết quả khớp, không phải dưới dạng lệnh gọi thử khô riêng.

Công cụ phân tích hiệu suất truy vấn

Tên Công cụMô tả
get_longest_running_queriesLấy các truy vấn chạy lâu nhất theo thời gian dịch vụ trung bình
get_most_frequent_queriesLấy các truy vấn được thực thi thường xuyên nhất
get_queries_with_largest_response_sizesLấy các truy vấn có kích thước phản hồi lớn nhất
get_queries_with_large_result_countLấy các truy vấn có số lượng kết quả lớn nhất
get_queries_using_primary_indexLấy các truy vấn sử dụng chỉ mục chính (mối quan tâm tiềm ẩn về hiệu suất)
get_queries_not_using_covering_indexLấy các truy vấn không sử dụng chỉ mục bao phủ
get_queries_not_selectiveLấy các truy vấn không chọn lọc (quét chỉ mục trả về nhiều tài liệu hơn nhiều so với kết quả cuối cùng)

Công cụ Thông tin Chi tiết Vận hành

Được đăng ký bởi máy chủ operational-insights riêng (xem Máy chủ Thông tin Chi tiết Vận hành bên dưới), không phải máy chủ operational mặc định.

Tên công cụMô tả
get_server_configuration_statusLấy trạng thái và cấu hình của máy chủ này mà không cần kết nối đến cụm — chế độ chỉ đọc, các công cụ bị vô hiệu hóa/yêu cầu xác nhận, cài đặt OAuth và cấu hình ghi log đã được phân giải. Được dùng chung với máy chủ vận hành: cùng một công cụ, được đăng ký bởi cả hai.
get_databases_in_clusterLiệt kê tất cả các database trong cụm Operational Insights.
get_scopes_in_databaseLiệt kê tất cả các scope trong một database.
get_collections_in_scopeLiệt kê tất cả các collection (dataset) trong một scope. Cùng tên với công cụ cùng tên của máy chủ vận hành — xem ghi chú bên dưới.
get_schema_for_collectionSuy luận schema JSON của một collection bằng cách lấy mẫu tài liệu. Cùng tên với công cụ cùng tên của máy chủ vận hành — xem ghi chú bên dưới.
list_indexesLiệt kê các index phụ thông qua danh mục System.Metadata.Index (SDK không có trình quản lý index). Cùng tên với công cụ cùng tên của máy chủ vận hành — xem ghi chú bên dưới.
run_query_syncChạy một câu lệnh SQL++ (SELECT, DML hoặc DDL) và trả về tất cả các hàng kết quả. Thực thi chế độ chỉ đọc ở phía máy chủ thông qua QueryOptions(readonly=True) — không có trình phân tích cú pháp SQL++ phía máy khách ở đây.
explain_queryTạo kế hoạch truy vấn cho một câu lệnh SQL++ thông qua EXPLAIN mà không thực thi nó.
create_indexTạo một index phụ thông qua CREATE INDEX (SDK không có trình quản lý index). Bị vô hiệu hóa theo mặc định khi CB_MCP_READ_ONLY_MODE=true. Cùng tên với công cụ cùng tên của máy chủ vận hành — xem ghi chú bên dưới.
run_query_asyncBắt đầu một câu lệnh SQL++ mà không chờ nó hoàn thành, trả về một token query_handle. Cùng cơ chế thực thi chỉ đọc như run_query_sync.
get_async_query_resultsKiểm tra xem một truy vấn bất đồng bộ đã hoàn thành chưa và nếu có, trả về các hàng của nó. Đồng thời đóng vai trò kiểm tra trạng thái — gọi lại sau nếu chưa sẵn sàng.
discard_async_query_resultsGiải phóng các bộ đệm kết quả của một truy vấn bất đồng bộ đã hoàn thành trên máy chủ. Bước dọn dẹp bình thường sau get_async_query_results.
cancel_async_queryDừng một truy vấn bất đồng bộ vẫn đang chạy. Bị vô hiệu hóa theo mặc định khi CB_MCP_READ_ONLY_MODE=true. Một truy vấn đã hoàn thành không thể bị hủy — hãy loại bỏ kết quả của nó thay vào đó.

Các công cụ Server Async Request API tạo thành một luồng bắt đầu → thăm dò → loại bỏ hoặc hủy cho các truy vấn chạy lâu: run_query_async trả về một query_handle, get_async_query_results được thăm dò cho đến khi báo cáo sẵn sàng (và trả về các hàng), sau đó discard_async_query_results giải phóng kết quả hoặc, đối với một truy vấn vẫn đang chạy, cancel_async_query dừng nó.

Lưu ý: get_collections_in_scope, get_schema_for_collection, create_index và list_indexes tồn tại, với hành vi khác nhau, trên cả hai máy chủ. (get_server_configuration_status cũng xuất hiện trên cả hai, nhưng nó được cố ý là một công cụ dùng chung — cùng triển khai, cùng định dạng kết quả — vì vậy không cần phân biệt.) Mỗi máy chủ là một tiến trình riêng biệt, vì vậy điều này chỉ là mối quan tâm nếu một máy khách MCP duy nhất đăng ký cả operational và operational-insights đồng thời — trong trường hợp đó, hãy phân biệt ở lớp cấu hình máy khách (ví dụ: bằng cách đặt tên khác nhau cho hai mục máy chủ trong cấu hình của chính máy khách).

Điều kiện tiên quyết

  • Python 3.10 trở lên.
  • Một cụm Couchbase đang chạy. Cách dễ nhất để bắt đầu là sử dụng bậc miễn phí Capella, phiên bản được quản lý đầy đủ của máy chủ Couchbase. Bạn có thể làm theo hướng dẫn để nhập một trong các tập dữ liệu mẫu hoặc nhập dữ liệu của riêng bạn.
  • uv được cài đặt để chạy máy chủ.
  • Một máy khách MCP như Claude Desktop được cài đặt để kết nối máy chủ với Claude. Hướng dẫn được cung cấp cho Claude Desktop và Cursor. Các máy khách MCP khác cũng có thể được sử dụng.

Cấu hình

Máy chủ MCP có thể được chạy từ gói PyPI được xây dựng sẵn hoặc từ mã nguồn bằng uv.

Chạy từ PyPI

Chúng tôi xuất bản một gói PyPI được xây dựng sẵn cho máy chủ MCP.

Cấu hình máy chủ bằng gói được xây dựng sẵn cho máy khách MCP

Xác thực cơ bản

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

hoặc

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"
      }
    }
  }
}

Lưu ý: Nếu bạn có các máy chủ MCP khác đang sử dụng trong máy khách, bạn có thể thêm nó vào đối tượng mcpServers hiện có.

Chạy từ mã nguồn

Máy chủ MCP có thể được chạy từ mã nguồn bằng kho lưu trữ này.

Sao chép kho lưu trữ vào máy cục bộ của bạn

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

Cấu hình máy chủ bằng mã nguồn cho máy khách MCP

Đây là cấu hình phổ biến cho các máy khách MCP như 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"
      }
    }
  }
}

Lưu ý: path/to/cloned/repo/mcp-server-couchbase/ phải là đường dẫn đến kho lưu trữ đã sao chép trên máy cục bộ của bạn. Đừng quên dấu gạch chéo ở cuối!

Lưu ý: Nếu bạn có các máy chủ MCP khác đang sử dụng trong máy khách, bạn có thể thêm nó vào đối tượng mcpServers hiện có.

Cấu hình bổ sung cho máy chủ MCP

Máy chủ có thể được cấu hình bằng các biến môi trường hoặc đối số dòng lệnh:

Biến môi trườngĐối số CLIMô tảMặc định
CB_CONNECTION_STRING--connection-stringChuỗi kết nối đến cụm CouchbaseBắt buộc
CB_USERNAME--usernameTên người dùng có quyền truy cập vào các bucket cần thiết cho xác thực cơ bảnBắt buộc (hoặc cần Chứng chỉ máy khách và Khóa cho mTLS)
CB_PASSWORD--passwordMật khẩu cho xác thực cơ bảnBắt buộc (hoặc cần Chứng chỉ máy khách và Khóa cho mTLS)
CB_CLIENT_CERT_PATH--client-cert-pathĐường dẫn đến tệp chứng chỉ máy khách cho xác thực mTLSBắt buộc nếu sử dụng mTLS (hoặc cần Tên người dùng và Mật khẩu)
CB_CLIENT_KEY_PATH--client-key-pathĐường dẫn đến tệp khóa máy khách cho xác thực mTLSBắt buộc nếu sử dụng mTLS (hoặc cần Tên người dùng và Mật khẩu)
CB_CA_CERT_PATH--ca-cert-pathĐường dẫn đến chứng chỉ gốc máy chủ cho TLS nếu máy chủ được cấu hình với chứng chỉ tự ký/không đáng tin cậy. Điều này sẽ không bắt buộc nếu bạn kết nối với Capella
CB_MCP_READ_ONLY_MODE--read-only-modeNgăn chặn mọi sửa đổi dữ liệu (KV, Query, quản lý scope/collection và quản lý index). Khi được bật, các công cụ ghi không được tải.true
CB_MCP_TRANSPORT--transportChế độ truyền tải: stdio, http, ssestdio
CB_MCP_HOST--hostMáy chủ cho các chế độ truyền tải HTTP/SSE127.0.0.1
CB_MCP_PORT--portCổng cho các chế độ truyền tải HTTP/SSE8000
CB_MCP_DISABLED_TOOLS--disabled-toolsCác công cụ cần vô hiệu hóa (xem Vô hiệu hóa công cụ)Không có
CB_MCP_CONFIRMATION_REQUIRED_TOOLS--confirmation-required-toolsCác công cụ yêu cầu xác nhận rõ ràng từ người dùng trước khi thực thi thông qua sự khơi gợi của MCP (xem Các công cụ yêu cầu khơi gợi/Xác nhận)Không có
CB_MCP_LOG_LEVEL--log-levelMức ghi log cho máy chủ MCP: off, debug, info, warning, error (xem Ghi log)info
CB_MCP_LOG_SINKS--log-sinksCác đích ghi log được phân tách bằng dấu phẩy: stderr, file hoặc cả hai (xem Ghi log)stderr
CB_MCP_LOG_FILE--log-fileĐường dẫn cơ sở cho các tệp log theo cấp độ (chỉ được sử dụng khi bộ thu file được bật)mcp_server.log
CB_MCP_LOG_ROTATION_MAX_SIZE_MB--log-rotation-max-size-mbKích thước tối đa toàn cầu tính bằng MB cho mỗi tệp log trước khi nó được luân chuyển, được kế thừa bởi mọi cấp độ trừ khi được ghi đè. 0 không hợp lệ và quay lại mặc định với cảnh báo khi khởi động1 (1 MB)
CB_MCP_LOG_MAX_BYTES--log-max-bytesKhông dùng nữa — sử dụng CB_MCP_LOG_ROTATION_MAX_SIZE_MB (MB). Kích thước luân chuyển toàn cầu tính bằng byte, vẫn được tôn trọng để tương thích ngược; bị bỏ qua khi CB_MCP_LOG_ROTATION_MAX_SIZE_MB cũng được đặtKhông đặt
CB_MCP_LOG_ERROR_ROTATION_MAX_SIZE_MB--log-error-rotation-max-size-mbKích thước luân chuyển tính bằng MB cho tệp log ERROR; ghi đè CB_MCP_LOG_ROTATION_MAX_SIZE_MB cho ERRORKế thừa CB_MCP_LOG_ROTATION_MAX_SIZE_MB
CB_MCP_LOG_WARNING_ROTATION_MAX_SIZE_MB--log-warning-rotation-max-size-mbKích thước luân chuyển tính bằng MB cho tệp log WARNING; ghi đè CB_MCP_LOG_ROTATION_MAX_SIZE_MB cho WARNINGKế thừa CB_MCP_LOG_ROTATION_MAX_SIZE_MB
CB_MCP_LOG_INFO_ROTATION_MAX_SIZE_MB--log-info-rotation-max-size-mbKích thước luân chuyển tính bằng MB cho tệp log INFO; ghi đè CB_MCP_LOG_ROTATION_MAX_SIZE_MB cho INFOKế thừa CB_MCP_LOG_ROTATION_MAX_SIZE_MB
CB_MCP_LOG_DEBUG_ROTATION_MAX_SIZE_MB--log-debug-rotation-max-size-mbKích thước luân chuyển tính bằng MB cho tệp log DEBUG; ghi đè CB_MCP_LOG_ROTATION_MAX_SIZE_MB cho DEBUGKế thừa CB_MCP_LOG_ROTATION_MAX_SIZE_MB
CB_MCP_LOG_RETENTION_BACKUP_COUNT--log-retention-backup-countCác tệp sao lưu đã luân chuyển được giữ cho mỗi tệp log theo cấp độ (không bao gồm tệp trực tiếp), áp dụng cho mọi cấp độ trừ khi được ghi đè. 0 chỉ giữ tệp trực tiếp (xem Ghi log)1
CB_MCP_LOG_ERROR_RETENTION_BACKUP_COUNT--log-error-retention-backup-countCác bản sao lưu đã luân chuyển được giữ cho tệp log ERROR; ghi đè số lượng toàn cầu cho ERRORKế thừa CB_MCP_LOG_RETENTION_BACKUP_COUNT
CB_MCP_LOG_WARNING_RETENTION_BACKUP_COUNT--log-warning-retention-backup-countCác bản sao lưu đã luân chuyển được giữ cho tệp log WARNING; ghi đè số lượng toàn cầu cho WARNINGKế thừa CB_MCP_LOG_RETENTION_BACKUP_COUNT
CB_MCP_LOG_INFO_RETENTION_BACKUP_COUNT--log-info-retention-backup-countCác bản sao lưu đã luân chuyển được giữ cho tệp log INFO; ghi đè số lượng toàn cầu cho INFOKế thừa CB_MCP_LOG_RETENTION_BACKUP_COUNT
CB_MCP_LOG_DEBUG_RETENTION_BACKUP_COUNT--log-debug-retention-backup-countCác bản sao lưu đã luân chuyển được giữ cho tệp log DEBUG; ghi đè số lượng toàn cầu cho DEBUGKế thừa CB_MCP_LOG_RETENTION_BACKUP_COUNT
CB_MCP_OAUTH_JWT_JWKS_URI--oauth-jwks-uriĐiểm cuối JWKS của nhà cung cấp danh tính được sử dụng để xác minh JWT bearer. Bật OAuth khi được đặt cùng với issuer và audience (xem Ủy quyền OAuth 2.1)Không có
CB_MCP_OAUTH_JWT_ISSUER--oauth-issuerClaim iss JWT dự kiến. Bắt buộc để bật OAuthKhông có
CB_MCP_OAUTH_JWT_AUDIENCE--oauth-audienceClaim aud JWT dự kiến. Bắt buộc để bật OAuthKhông có
CB_MCP_OAUTH_JWT_ALGORITHM--oauth-algorithmThuật toán ký JWT: một trong RS256/384/512, ES256/384/512, PS256/384/512RS256
CB_MCP_OAUTH_MCP_BASE_URL--oauth-mcp-base-urlURL cơ sở công khai của máy chủ này. Khi được đặt, xuất bản Siêu dữ liệu tài nguyên được bảo vệ RFC 9728 để các máy khách nhận biết PRM có thể khám phá IdPKhông có
CB_MCP_OAUTH_SCOPE_READ_LABEL--oauth-scope-read-labelGhi đè nhãn phạm vi OAuth được coi là quyền truy cập 'đọc' (được quảng cáo trong PRM và khớp với claim scope/scp của token). Sử dụng khi IdP của bạn không thể phát ra dạng chuẩncouchbase-mcp:read
CB_MCP_OAUTH_SCOPE_WRITE_LABEL--oauth-scope-write-labelGhi đè nhãn phạm vi OAuth được coi là quyền truy cập 'ghi'; cùng ngữ nghĩa với nhãn đọccouchbase-mcp:write

Cấu hình chế độ chỉ đọc

CB_MCP_READ_ONLY_MODE là công tắc duy nhất kiểm soát các thao tác ghi:

  • Khi true (mặc định): Tất cả các thao tác ghi (KV, Query, quản lý scope/collection và quản lý index) bị vô hiệu hóa. Tất cả các công cụ ghi (KV: upsert, insert, replace, delete, sub-document mutate; quản lý scope/collection: create_scope, create_collection, delete_scope, delete_collection; quản lý index: create_index, build_index, drop_index) không được tải và sẽ không khả dụng cho LLM, và các truy vấn SQL++ sửa đổi dữ liệu hoặc cấu trúc bị chặn.
  • Khi false: Tất cả các công cụ ghi được tải và các truy vấn sửa đổi dữ liệu/cấu trúc SQL++ được phép.

Đây là mặc định an toàn được khuyến nghị để ngăn chặn việc sửa đổi dữ liệu ngoài ý muốn bởi LLM.

Lưu ý: Để xác thực, bạn cần Tên người dùng và Mật khẩu hoặc đường dẫn Chứng chỉ máy khách và Khóa. Tùy chọn, bạn có thể chỉ định đường dẫn chứng chỉ gốc CA sẽ được sử dụng để xác thực chứng chỉ máy chủ. Nếu cả đường dẫn Chứng chỉ máy khách & Khóa và tên người dùng và mật khẩu được chỉ định, chứng chỉ máy khách sẽ được sử dụng để xác thực.

Vô hiệu hóa công cụ

Bạn có thể vô hiệu hóa các công cụ cụ thể để ngăn chúng được tải và hiển thị cho MCP client. Các công cụ bị vô hiệu hóa sẽ không xuất hiện trong quá trình khám phá công cụ và không thể được LLM gọi.

Các định dạng được hỗ trợ

Danh sách phân tách bằng dấu phẩy:

# 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

Đường dẫn tệp (một tên công cụ trên mỗi dòng):

# Environment variable
CB_MCP_DISABLED_TOOLS=disabled_tools.txt

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

Định dạng tệp (ví dụ: disabled_tools.txt):

# Write operations
upsert_document_by_id
delete_document_by_id

# Index advisor
get_index_advisor_recommendations

Các dòng bắt đầu bằng # được coi là chú thích và bị bỏ qua.

Ví dụ cấu hình MCP client

Sử dụng danh sách phân tách bằng dấu phẩy:

{
  "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"
      }
    }
  }
}

Sử dụng đường dẫn tệp (khuyến nghị cho nhiều công cụ):

{
  "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"
      }
    }
  }
}

Lưu ý bảo mật quan trọng

Cảnh báo: Chỉ vô hiệu hóa các công cụ không đảm bảo rằng một số thao tác nhất định không thể được thực hiện. Quyền RBAC (Kiểm soát truy cập dựa trên vai trò) của người dùng cơ sở dữ liệu bên dưới là biện pháp kiểm soát bảo mật có thẩm quyền.

Ví dụ: ngay cả khi bạn vô hiệu hóa upsert_document_by_id và delete_document_by_id, việc sửa đổi dữ liệu vẫn có thể xảy ra thông qua công cụ run_sql_plus_plus_query sử dụng các câu lệnh DML SQL++ (INSERT, UPDATE, DELETE, MERGE) trừ khi:

  • CB_MCP_READ_ONLY_MODE được đặt thành true (mặc định), HOẶC
  • Người dùng cơ sở dữ liệu thiếu các quyền RBAC cần thiết để sửa đổi dữ liệu

Thực tiễn tốt nhất: Luôn cấu hình các quyền RBAC phù hợp trên thông tin xác thực người dùng Couchbase của bạn như là biện pháp bảo mật chính. Sử dụng việc vô hiệu hóa công cụ như một lớp bổ sung để hướng dẫn hành vi của LLM và giảm bề mặt tấn công, không phải là biện pháp kiểm soát bảo mật duy nhất.

Yêu cầu/Xác nhận cho các lệnh gọi công cụ

Bạn có thể yêu cầu xác nhận rõ ràng từ người dùng cho các công cụ cụ thể trước khi thực thi (khi MCP client hỗ trợ elicitation).

CB_MCP_CONFIRMATION_REQUIRED_TOOLS / --confirmation-required-tools hỗ trợ các định dạng sau:

  • Danh sách phân tách bằng dấu phẩy
  • Đường dẫn tệp (một tên công cụ trên mỗi dòng, hỗ trợ chú thích #)

Ví dụ:

# 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

Khi một công cụ được liệt kê được gọi:

  • Nếu client hỗ trợ elicitation, người dùng sẽ được nhắc xác nhận.
  • Nếu client không hỗ trợ elicitation, công cụ sẽ thực thi mà không cần xác nhận để tương thích ngược.

Bạn cũng có thể kiểm tra phiên bản của máy chủ bằng cách sử dụng:

uvx couchbase-mcp-server --version

Ghi nhật ký

Máy chủ MCP ghi nhật ký vào stderr theo mặc định. Ghi nhật ký được cấu hình với các biến CB_MCP_LOG_* được liệt kê trong Cấu hình bổ sung:

  • CB_MCP_LOG_LEVEL — mức độ ghi nhật ký: info (mặc định) ghi lại các sự kiện vòng đời và lệnh gọi công cụ, debug thêm chi tiết nội bộ chi tiết, và off vô hiệu hóa tất cả ghi nhật ký.
  • CB_MCP_LOG_SINKS — nơi nhật ký được ghi: stderr (mặc định), các tệp xoay vòng theo cấp độ (file), hoặc cả hai. Với file, một tệp được ghi cho mỗi cấp độ (ví dụ mcp_server.info.log và mcp_server.error.log) tại đường dẫn được đặt bởi CB_MCP_LOG_FILE.
  • Kích thước xoay vòng — CB_MCP_LOG_ROTATION_MAX_SIZE_MB là kích thước toàn cục (tính bằng MB) tại đó mỗi tệp theo cấp độ xoay vòng. Ghi đè các cấp độ riêng lẻ bằng CB_MCP_LOG_<LEVEL>_ROTATION_MAX_SIZE_MB (ERROR/WARNING/INFO/DEBUG), cũng tính bằng MB, kế thừa giá trị toàn cục khi không được đặt. Kích thước 0 (toàn cục hoặc theo cấp độ) không hợp lệ và sẽ quay về mặc định (1 MB) với cảnh báo khi khởi động. CB_MCP_LOG_MAX_BYTES (byte) không được dùng nữa nhưng vẫn được tôn trọng để tương thích ngược; nó bị bỏ qua khi CB_MCP_LOG_ROTATION_MAX_SIZE_MB cũng được đặt và in cảnh báo không dùng nữa khi khởi động.
  • Lưu giữ — CB_MCP_LOG_RETENTION_BACKUP_COUNT đặt số lượng bản sao lưu xoay vòng được giữ cho mỗi cấp độ (không bao gồm tệp trực tiếp); mặc định là 1 bảo toàn hành vi trước đó. Ghi đè các cấp độ riêng lẻ bằng CB_MCP_LOG_<LEVEL>_RETENTION_BACKUP_COUNT (ERROR/WARNING/INFO/DEBUG), kế thừa giá trị toàn cục khi không được đặt. Đặt số lượng thành 0 để chỉ giữ tệp trực tiếp cho cấp độ đó — nó vẫn bị giới hạn bởi kích thước xoay vòng (được đặt lại khi xoay vòng thay vì sao lưu).
  • Ảnh chụp nhanh cấu hình máy chủ — khi sink file hoạt động, một bản ghi một lần (HĐH, Python, phiên bản phụ thuộc, giao thức truyền tải, cấu hình ghi nhật ký đã giải quyết và cấu hình máy chủ đã được biên tập) được ghi dưới dạng JSON vào một tệp mcp_server_config.log.json chuyên dụng (được suy ra từ cơ sở CB_MCP_LOG_FILE). Nó bị ghi đè mỗi lần khởi động, vì vậy bộ phận hỗ trợ luôn có cấu hình hiện tại và nó không bao giờ bị cuộn ra khỏi nhật ký xoay vòng.
# 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

Để biết thêm chi tiết, hãy xem tài liệu.

Cấu hình cụ thể cho client

Claude Desktop

Thực hiện theo các bước dưới đây để sử dụng máy chủ Couchbase MCP với MCP client Claude Desktop

  1. Máy chủ MCP hiện có thể được thêm vào Claude Desktop bằng cách chỉnh sửa tệp cấu hình. Hướng dẫn chi tiết hơn có thể được tìm thấy trong hướng dẫn nhanh MCP.

    • Trên Mac, tệp cấu hình nằm tại ~/Library/Application Support/Claude/claude_desktop_config.json
    • Trên Windows, tệp cấu hình nằm tại %APPDATA%\Claude\claude_desktop_config.json

    Mở tệp cấu hình và thêm cấu hình vào phần mcpServers.

  2. Khởi động lại Claude Desktop để áp dụng các thay đổi.

  3. Bạn hiện có thể sử dụng máy chủ trong Claude Desktop để chạy các truy vấn trên cụm Couchbase bằng ngôn ngữ tự nhiên và thực hiện các thao tác CRUD trên tài liệu.

Nhật ký

Nhật ký cho Claude Desktop có thể được tìm thấy tại các vị trí sau:

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

Nhật ký có thể được sử dụng để chẩn đoán các sự cố kết nối hoặc các vấn đề khác với cấu hình máy chủ MCP của bạn. Để biết thêm chi tiết, hãy tham khảo tài liệu chính thức.

Cursor

Thực hiện theo các bước dưới đây để sử dụng máy chủ Couchbase MCP với Cursor:

  1. Cài đặt Cursor trên máy của bạn.

  2. Trong Cursor, đi tới Cursor > Cursor Settings > Tools & Integrations > MCP Tools. Ngoài ra, hãy xem tài liệu về thiết lập cấu hình máy chủ MCP từ Cursor.

  3. Chỉ định cùng một cấu hình theo cách thủ công hoặc sử dụng liên kết một cú nhấp chuột Install in Cursor. Bạn có thể cần thêm cấu hình máy chủ dưới một khóa cha của mcpServers.

    Lưu ý: Liên kết cài đặt sử dụng các giá trị giữ chỗ từ các ví dụ cấu hình ở trên. Cập nhật chuỗi kết nối và thông tin xác thực sau khi cài đặt.

  4. Lưu cấu hình.

  5. Bạn sẽ thấy couchbase là một máy chủ được thêm vào danh sách máy chủ MCP. Làm mới để xem máy chủ có được bật hay không.

  6. Bạn hiện có thể sử dụng máy chủ Couchbase MCP trong Cursor để truy vấn cụm Couchbase của bạn bằng ngôn ngữ tự nhiên và thực hiện các thao tác CRUD trên tài liệu.

Để biết thêm chi tiết về tích hợp MCP với Cursor, hãy tham khảo tài liệu MCP chính thức của Cursor.

Nhật ký

Trong bảng điều khiển phía dưới của Cursor, nhấp vào "Output" và chọn "Cursor MCP" từ menu thả xuống để xem nhật ký máy chủ. Điều này có thể giúp chẩn đoán các sự cố kết nối hoặc các vấn đề khác với cấu hình máy chủ MCP của bạn.

Windsurf Editor

Thực hiện theo các bước dưới đây để sử dụng máy chủ Couchbase MCP với Windsurf Editor.

  1. Cài đặt Windsurf Editor trên máy của bạn.

  2. Trong Windsurf Editor, điều hướng đến Command Palette > Windsurf MCP Configuration Panel hoặc Windsurf - Settings > Advanced > Cascade > Model Context Protocol (MCP) Servers. Để biết thêm chi tiết về cấu hình, vui lòng tham khảo tài liệu chính thức.

  3. Nhấp vào Add Server và sau đó Add custom server. Trên cấu hình mở ra trong trình chỉnh sửa, hãy thêm cấu hình máy chủ Couchbase MCP từ phía trên.

  4. Lưu cấu hình.

  5. Bạn sẽ thấy couchbase là một máy chủ được thêm vào danh sách MCP Servers dưới Advanced Settings. Làm mới để xem máy chủ có được bật hay không.

  6. Bạn hiện có thể sử dụng máy chủ Couchbase MCP trong Windsurf Editor để truy vấn cụm Couchbase của bạn bằng ngôn ngữ tự nhiên và thực hiện các thao tác CRUD trên tài liệu.

Để biết thêm chi tiết về tích hợp MCP với Windsurf Editor, hãy tham khảo tài liệu MCP chính thức của Windsurf.

VS Code

Thực hiện theo các bước dưới đây để sử dụng máy chủ Couchbase MCP với VS Code.

  1. Cài đặt VS Code

  2. Sau đây là một vài cách để cấu hình máy chủ MCP.

    • Đối với cấu hình máy chủ Workspace

      • Tạo một tệp mới trong workspace là .vscode/mcp.json.
      • Thêm cấu hình và lưu tệp.
    • Đối với cấu hình máy chủ Toàn cục:

      • Chạy MCP: Open User Configuration trong Command Palette (Ctrl+Shift+P hoặc Cmd+Shift+P)
      • Thêm cấu hình và lưu tệp.
    • Lưu ý: VS Code sử dụng servers làm thuộc tính JSON cấp cao nhất trong các tệp mcp.json để xác định các máy chủ MCP (Model Context Protocol), trong khi Cursor sử dụng mcpServers cho cấu hình tương đương. Kiểm tra cấu hình client VS Code để biết thêm các thay đổi hoặc chi tiết. Một ví dụ cấu hình VS Code được cung cấp bên dưới.

        {
          "servers": {
            "couchbase": {
              "command": "uvx",
              "args": ["couchbase-mcp-server"],
              "env": {
                "CB_CONNECTION_STRING": "couchbases://connection-string",
                "CB_USERNAME": "username",
                "CB_PASSWORD": "password"
              }
            }
          }
        }
      
  3. Khi bạn lưu tệp, máy chủ sẽ khởi động và một danh sách hành động nhỏ xuất hiện với Running|Stop|n Tools|More...

  4. Nhấp vào các tùy chọn từ danh sách tùy chọn để Start/Stop/quản lý máy chủ.

  5. Bạn hiện có thể sử dụng máy chủ Couchbase MCP trong VS Code để truy vấn cụm Couchbase của bạn bằng ngôn ngữ tự nhiên và thực hiện các thao tác CRUD trên tài liệu.

Nhật ký: Trong Command Palette (Ctrl+Shift+P hoặc Cmd+Shift+P),

  • chạy lệnh MCP: List Servers và chọn máy chủ couchbase
  • chọn "Show Output" để xem nhật ký của nó trong tab Output.
JetBrains IDEs

Thực hiện theo các bước dưới đây để sử dụng máy chủ Couchbase MCP với JetBrains IDEs

  1. Cài đặt bất kỳ một trong các JetBrains IDEs
  2. Cài đặt bất kỳ một trong các plugin JetBrains - AI Assistant hoặc Junie
  3. Điều hướng đến Settings > Tools > AI Assistant hoặc Junie > MCP Server
  4. Nhấp "+" để thêm cấu hình Couchbase MCP và nhấp Save.
  5. Bạn sẽ thấy máy chủ Couchbase MCP được thêm vào danh sách các máy chủ. Khi bạn nhấp Apply, máy chủ Couchbase MCP khởi động và khi di chuột qua trạng thái, nó hiển thị tất cả các công cụ có sẵn.
  6. Bạn hiện có thể sử dụng máy chủ Couchbase MCP trong JetBrains IDEs để truy vấn cụm Couchbase của bạn bằng ngôn ngữ tự nhiên và thực hiện các thao tác CRUD trên tài liệu.

Nhật ký: Tệp nhật ký có thể được khám phá tại Help > Show Log in Finder (Explorer) > mcp > couchbase

Máy chủ Operational Insights

Cùng với máy chủ operational mặc định (máy chủ mà mọi phần ở trên mô tả), bản phân phối này đi kèm với một máy chủ thứ hai cho các cụm Operational Insights, sử dụng SDK couchbase-operational-insights riêng biệt. Đây là một sản phẩm khác với cụm Couchbase thông thường và chạy như một quy trình độc lập trên cổng riêng của nó.

Chạy nó bằng cách truyền operational-insights làm lệnh con CLI (hoặc thêm nó làm lệnh của container):

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 là một URL HTTP(S), không phải chuỗi kết nối couchbase:// — ví dụ: http://localhost:8095 cho một máy chủ Operational Insights cục bộ, hoặc https://<host>:18095 cho Capella. Đây là sai lầm cấu hình phổ biến nhất khi trỏ máy chủ này vào một cụm.

Đối số CLIBiến môi trườngMô tảMặc định
--connection-stringCB_OI_CONNECTION_STRINGURL điểm cuối Operational Insights (HTTP/HTTPS, không phải couchbase://)Không có
--usernameCB_OI_USERNAMETên người dùng Operational InsightsKhông có
--passwordCB_OI_PASSWORDMật khẩu Operational InsightsKhông có
--ca-cert-pathCB_OI_CA_CERT_PATHĐường dẫn đến chứng chỉ gốc của máy chủ (PEM), dùng để xác minh chứng chỉ máy chủ tự ký/không đáng tin cậyKhông có
--client-cert-pathCB_OI_CLIENT_CERT_PATHĐường dẫn đến chứng chỉ máy khách cho xác thực mTLS — chứng chỉ PEM (đi kèm với --client-key-path) hoặc gói PKCS#12 (.p12/.pfx, --client-key-path để trống). Yêu cầu https:// --connection-string; ghi đè --username/--password khi được đặtKhông có
--client-key-pathCB_OI_CLIENT_KEY_PATHĐường dẫn đến khóa riêng của chứng chỉ máy khách (PEM). Để trống khi --client-cert-path là gói PKCS#12Không có
--client-cert-passwordCB_OI_CLIENT_CERT_PASSWORDMật khẩu giải mã cho khóa máy khách được mã hóa hoặc gói PKCS#12Không có

Mọi cờ khác (--read-only-mode, --transport, --host, --port, --disabled-tools, --confirmation-required-tools, --log-*, --oauth-*) giống hệt với máy chủ vận hành — xem Cấu hình bổ sung cho MCP Server — ngoại trừ mặc định cho cổng (8001, không phải 8000) và tệp nhật ký (mcp_server_operational_insights.log, không phải mcp_server.log), vì hai máy chủ không thể chia sẻ cả hai. OAuth sử dụng cùng nhãn phạm vi (couchbase-mcp:read / couchbase-mcp:write) như máy chủ vận hành, vì vậy cấu hình IdP hiện có hoạt động cho cả hai mà không cần thay đổi.

Ví dụ cấu hình máy khách 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"
      }
    }
  }
}

Xem Công cụ Operational Insights ở trên để biết danh sách công cụ và lưu ý về ba tên công cụ dùng chung với máy chủ vận hành.

Cả hai máy chủ chia sẻ một mục MCP Registry duy nhất, io.github.couchbase/mcp-server-couchbase, được xuất bản từ server.json. Mục này có mục gói riêng cho từng máy chủ (PyPI và Docker). Mỗi mục truyền lệnh con của nó (operational hoặc operational-insights) và chỉ khai báo các đối số và biến môi trường của máy chủ đó.

Chế độ Truyền tải HTTP Streamable

MCP Server có thể chạy ở chế độ truyền tải Streamable HTTP, cho phép nhiều máy khách kết nối đến cùng một phiên bản máy chủ qua HTTP. Kiểm tra xem máy khách MCP của bạn có hỗ trợ truyền tải streamable http trước khi cố gắng kết nối đến máy chủ MCP ở chế độ này.

Lưu ý: Ủy quyền OAuth 2.1 được hỗ trợ trên truyền tải này. Xem Ủy quyền OAuth 2.1. Nếu không cấu hình OAuth, điểm cuối HTTP không được xác thực.

Cách sử dụng

Theo mặc định, máy chủ MCP sẽ chạy trên cổng 8000 nhưng có thể cấu hình bằng biến môi trường --port hoặc CB_MCP_PORT.

uvx couchbase-mcp-server \
  --connection-string='<couchbase_connection_string>' \
  --username='<database_username>' \
  --password='<database_password>' \
  --read-only-mode=true \
  --transport=http

Máy chủ sẽ khả dụng tại http://localhost:8000/mcp. Điều này có thể được sử dụng trong các máy khách MCP hỗ trợ chế độ truyền tải streamable http như Cursor.

Cấu hình máy khách MCP

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

Chế độ Truyền tải SSE

Có tùy chọn chạy máy chủ MCP ở chế độ truyền tải Server-Sent Events (SSE).

Lưu ý: Chế độ SSE đã bị không dùng nữa bởi MCP. Chúng tôi hỗ trợ Streamable HTTP.

SSE: Cách sử dụng

Theo mặc định, máy chủ MCP sẽ chạy trên cổng 8000 nhưng có thể cấu hình bằng biến môi trường --port hoặc CB_MCP_PORT.

uvx couchbase-mcp-server \
  --connection-string='<couchbase_connection_string>' \
  --username='<database_username>' \
  --password='<database_password>' \
  --read-only-mode=true \
  --transport=sse

Máy chủ sẽ khả dụng tại http://localhost:8000/sse. Điều này có thể được sử dụng trong các máy khách MCP hỗ trợ chế độ truyền tải SSE như Cursor.

SSE: Cấu hình máy khách MCP

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

Ủy quyền OAuth 2.1

Khi chạy với --transport=http, máy chủ MCP có thể hoạt động như một máy chủ tài nguyên OAuth 2.1: nó xác thực các JWT bearer đến dựa trên JWKS của nhà cung cấp danh tính của bạn. Nó không phụ thuộc vào nhà cung cấp (bất kỳ nhà cung cấp OAuth 2.1 / OIDC nào xuất bản JWKS — Auth0, Okta, Keycloak, AWS Cognito, Microsoft Entra, v.v.) và không phát hành mã thông báo hoặc quản lý người dùng. Cài đặt OAuth bị bỏ qua trên stdio.

OAuth được cấu hình với các biến CB_MCP_OAUTH_* được liệt kê trong Cấu hình bổ sung:

  • OAuth chỉ kích hoạt khi cả ba biến CB_MCP_OAUTH_JWT_JWKS_URI, CB_MCP_OAUTH_JWT_ISSUER và CB_MCP_OAUTH_JWT_AUDIENCE được đặt; chỉ đặt một số trong số chúng sẽ gây lỗi khi khởi động.
  • Đặt CB_MCP_OAUTH_MCP_BASE_URL bổ sung xuất bản Siêu dữ liệu Tài nguyên được Bảo vệ RFC 9728 để các máy khách nhận biết PRM có thể khám phá máy chủ ủy quyền.
  • Quyền truy cập được kiểm soát bởi hai phạm vi đọc từ xác nhận quyền scope/scp của mã thông báo: couchbase-mcp:read (công cụ đọc, bao gồm SQL++) và couchbase-mcp:write (công cụ ghi: thay đổi KV, quản lý phạm vi/bộ sưu tập và quản lý chỉ mục). Quyền truy cập đầy đủ yêu cầu cả hai. Nếu IdP của bạn không thể phát ra các nhãn chuẩn đó, hãy ghi đè chúng bằng 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>'

Để biết chi tiết đầy đủ, xem tài liệu.

Hình ảnh Docker

Máy chủ MCP cũng có thể được xây dựng và chạy như một container Docker. Hình ảnh được xây dựng sẵn có thể được tìm thấy trên DockerHub hoặc kéo qua docker pull docker.io/couchbase/mcp-server:latest.

Ngoài ra, chúng tôi là một phần của Docker MCP Catalog.

Xây dựng hình ảnh

docker build -t mcp/couchbase-src .
Xây dựng với Đối số Nếu bạn muốn xây dựng với các đối số xây dựng cho hàm băm cam kết và thời gian xây dựng, bạn có thể xây dựng bằng:
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 .

Ngoài ra, hãy sử dụng tập lệnh xây dựng được cung cấp:

# Build with default image name (mcp/couchbase-src)
./build.sh

# Build with custom image name
./build.sh my-custom/image-name

Tập lệnh này tự động:

  • Chấp nhận tham số tên hình ảnh tùy chọn (mặc định là mcp/couchbase-src)
  • Tạo hàm băm cam kết git và dấu thời gian xây dựng
  • Tạo nhiều thẻ hữu ích (latest, <short-commit>)
  • Hiển thị thông tin xây dựng và kết quả
  • Sử dụng cùng các đối số như bản dựng CI/CD

Xác minh nhãn hình ảnh:

# 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

Chạy

Máy chủ MCP có thể được chạy với các biến môi trường được sử dụng để cấu hình cài đặt Couchbase. Các biến môi trường giống như được mô tả trong phần Cấu hình bổ sung.

Container Docker độc lập

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

Các biến môi trường CB_MCP_PORT và CB_MCP_HOST chỉ áp dụng trong trường hợp các chế độ truyền tải HTTP như http và sse.

Docker: Cấu hình máy khách MCP

Hình ảnh Docker có thể được sử dụng ở chế độ truyền tải stdio với cấu hình sau.

{
  "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"
      ]
    }
  }
}

Ghi chú

  • Giá trị couchbase_connection_string phụ thuộc vào việc máy chủ Couchbase đang chạy trên cùng máy chủ, trong một container Docker khác hay trên máy chủ từ xa. Nếu máy chủ Couchbase của bạn đang chạy trên máy chủ của bạn, chuỗi kết nối của bạn có thể có dạng couchbase://host.docker.internal. Để biết chi tiết, tham khảo tài liệu docker.
  • Bạn có thể chỉ định mạng của container bằng tùy chọn --network=<your_network>. Mạng bạn chọn phụ thuộc vào môi trường của bạn; mặc định là bridge. Để biết chi tiết, tham khảo trình điều khiển mạng trong docker.

Rủi ro liên quan đến LLM

  • Việc sử dụng các mô hình ngôn ngữ lớn và công nghệ tương tự liên quan đến rủi ro, bao gồm khả năng tạo ra đầu ra không chính xác hoặc có hại.
  • Couchbase không xem xét hoặc đánh giá chất lượng hoặc độ chính xác của các đầu ra đó và các đầu ra đó có thể không phản ánh quan điểm của Couchbase.
  • Bạn hoàn toàn chịu trách nhiệm quyết định có sử dụng các mô hình ngôn ngữ lớn và công nghệ liên quan hay không, cũng như tuân thủ mọi điều khoản giấy phép, điều khoản sử dụng và chính sách của tổ chức bạn quản lý việc sử dụng chúng.

Thu thập Dữ liệu Sử dụng

Sản phẩm này tự động thu thập dữ liệu sử dụng và hiệu suất (như tên sản phẩm và phiên bản) và thông tin trình duyệt (như địa chỉ IP) (gọi chung là "Dữ liệu Sử dụng"). Couchbase sử dụng Dữ liệu Sử dụng, cùng với dữ liệu khác bạn có thể cung cấp cho Couchbase (như tên người dùng hoặc địa chỉ email của bạn), để phát triển và cải thiện sản phẩm của chúng tôi cũng như cung cấp thông tin cho các chương trình bán hàng và tiếp thị của chúng tôi. Chúng tôi không truy cập hoặc thu thập bất kỳ dữ liệu nào bạn lưu trữ trong các sản phẩm Couchbase. Chúng tôi sử dụng Dữ liệu Sử dụng để hiểu các mẫu sử dụng tổng hợp và làm cho sản phẩm của chúng tôi hữu ích hơn cho bạn. Để biết thêm thông tin về cách Couchbase thu thập, bảo vệ và xử lý thông tin, vui lòng tham khảo Chính sách Quyền riêng tư của Couchbase có thể xem tại https://www.couchbase.com/privacy-policy.

Mẹo khắc phục sự cố

  • Đảm bảo đường dẫn đến kho lưu trữ máy chủ MCP của bạn là chính xác trong cấu hình nếu chạy từ mã nguồn.
  • Xác minh rằng chuỗi kết nối Couchbase, tên người dùng cơ sở dữ liệu, mật khẩu hoặc đường dẫn đến chứng chỉ của bạn là chính xác.
  • Nếu sử dụng Couchbase Capella, hãy đảm bảo rằng cụm có thể truy cập từ máy nơi máy chủ MCP đang chạy.
  • Kiểm tra rằng người dùng cơ sở dữ liệu có quyền thích hợp để truy cập ít nhất một bucket.
  • Xác nhận rằng trình quản lý gói uv được cài đặt đúng cách và có thể truy cập. Bạn có thể cần cung cấp đường dẫn tuyệt đối đến uv/uvx trong trường command trong cấu hình.
  • Kiểm tra nhật ký để tìm bất kỳ lỗi hoặc cảnh báo nào có thể chỉ ra sự cố với máy chủ MCP. Vị trí của nhật ký phụ thuộc vào máy khách MCP của bạn.
  • Nếu bạn gặp sự cố khi chạy máy chủ MCP từ mã nguồn sau khi cập nhật kho lưu trữ máy chủ MCP cục bộ, hãy thử chạy uv sync để cập nhật các phụ thuộc.

Kiểm thử tích hợp

Chúng tôi cung cấp các bài kiểm thử tích hợp MCP cấp cao để xác minh rằng máy chủ hiển thị các công cụ dự kiến và chúng có thể được gọi với một cụm Couchbase demo.

  1. Xuất thông tin xác thực cụm demo:
    • CB_CONNECTION_STRING
    • CB_USERNAME
    • CB_PASSWORD
    • Tùy chọn: CB_MCP_TEST_BUCKET (một bucket để thăm dò trong các bài kiểm thử)
    • Tùy chọn, cho các bài kiểm thử riêng của máy chủ Operational Insights: CB_OI_CONNECTION_STRING / CB_OI_USERNAME / CB_OI_PASSWORD. Các bài kiểm thử đó tự động bỏ qua (không thất bại) khi không được đặt.
  2. Chạy các bài kiểm thử:
uv run --extra dev pytest tests/integration -v

Câu hỏi thường gặp

Máy chủ Couchbase MCP là gì? Đây là một triển khai tự lưu trữ của Model Context Protocol cho phép các trợ lý AI và tác nhân (Claude, Cursor, Windsurf, VS Code Copilot, JetBrains AI Assistant/Junie và bất kỳ máy khách MCP nào khác) truy vấn và tùy chọn, sửa đổi dữ liệu trong một cụm Couchbase bằng ngôn ngữ tự nhiên.

Làm cách nào để kết nối Claude Desktop với Couchbase? Cài đặt máy chủ bằng uvx couchbase-mcp-server (hoặc chạy từ mã nguồn hoặc Docker), sau đó thêm cấu hình của nó vào claude_desktop_config.json của Claude Desktop như được hiển thị trong Cấu hình. Khởi động lại Claude Desktop và nó sẽ nhận các công cụ mới.

Tôi có thể sử dụng điều này với Couchbase Capella không? Có. Cấu hình CB_CONNECTION_STRING/CB_USERNAME/CB_PASSWORD (hoặc chứng chỉ mTLS) tương tự hoạt động cho cả cụm Couchbase Capella và Couchbase Server tự quản lý.

Có an toàn để cho một tác nhân AI ghi vào cơ sở dữ liệu của tôi không? Theo mặc định, CB_MCP_READ_ONLY_MODE là true, vì vậy tất cả các thao tác ghi — upsert/chèn/thay thế/xóa tài liệu và các câu lệnh SQL++ sửa đổi dữ liệu — bị vô hiệu hóa và các công cụ ghi thậm chí không được tải. Bạn cũng có thể vô hiệu hóa các công cụ riêng lẻ (xem Vô hiệu hóa Công cụ) hoặc yêu cầu xác nhận rõ ràng từ người dùng trước khi các công cụ cụ thể chạy (xem Elicitation/Confirmation). Các kiểm soát cấp công cụ hướng dẫn hành vi LLM; quyền RBAC của người dùng Couchbase của bạn vẫn là ranh giới bảo mật thực sự.

Tôi có thể chạy các truy vấn ngôn ngữ tự nhiên trên dữ liệu của mình mà không cần tự viết SQL++ không? Có — hãy hỏi trợ lý AI của bạn một câu hỏi bằng tiếng Anh đơn giản (ví dụ: "hiển thị cho tôi 10 đơn hàng gần nhất trên $100") và nó có thể dịch điều đó thành một truy vấn SQL++ bằng công cụ run_sql_plus_plus_query. Bạn cũng có thể yêu cầu trợ lý explain_sql_plus_plus_query một truy vấn hoặc hỏi cố vấn chỉ mục để được khuyến nghị. Sự khác biệt giữa transport STDIO, Streamable HTTP và SSE là gì? STDIO dành cho một MCP client cục bộ duy nhất (ví dụ: Claude Desktop) khởi chạy server như một tiến trình con. Streamable HTTP cho phép nhiều client chia sẻ một instance server đang chạy qua HTTP và hỗ trợ OAuth 2.1. SSE là transport HTTP cũ hơn, hiện đã bị spec MCP không dùng nữa để chuyển sang Streamable HTTP — xem Streamable HTTP Transport Mode.

Điều này có được Couchbase hỗ trợ chính thức không? Dự án này được cộng đồng Couchbase duy trì — xem Support Policy. Hỗ trợ doanh nghiệp có sẵn riêng qua Couchbase AI Data Plane.

Đóng góp

Chúng tôi hoan nghênh mọi đóng góp từ cộng đồng! Dù bạn muốn sửa lỗi, thêm tính năng hay cải thiện tài liệu, sự giúp đỡ của bạn đều được trân trọng.

Nếu bạn cần trợ giúp, phát hiện lỗi hoặc muốn đóng góp cải tiến, nơi tốt nhất để làm điều đó chính là tại đây — bằng cách mở một issue trên GitHub.

Dành cho nhà phát triển

Nếu bạn quan tâm đến việc đóng góp mã nguồn hoặc thiết lập môi trường phát triển:

📖 Xem CONTRIBUTING.md để biết hướng dẫn thiết lập nhà phát triển toàn diện, bao gồm:

  • Thiết lập môi trường phát triển với uv
  • Lint và định dạng mã với Ruff
  • Cài đặt pre-commit hooks
  • Tổng quan cấu trúc dự án
  • Quy trình và thực tiễn phát triển

Bắt đầu nhanh cho người đóng góp

# 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

📢 Chính sách hỗ trợ

Chúng tôi thực sự trân trọng sự quan tâm của bạn đến dự án này! Dự án này được cộng đồng Couchbase duy trì, nghĩa là nó không được hỗ trợ chính thức bởi đội ngũ hỗ trợ của chúng tôi. Tuy nhiên, các kỹ sư của chúng tôi đang tích cực theo dõi và duy trì repo này và sẽ cố gắng giải quyết các vấn đề trên cơ sở nỗ lực tốt nhất.

Cổng hỗ trợ của chúng tôi không thể hỗ trợ các yêu cầu liên quan đến dự án này, vì vậy chúng tôi kính đề nghị mọi thắc mắc nên được giữ trong GitHub.

Sự hợp tác của bạn giúp tất cả chúng ta cùng tiến về phía trước — cảm ơn bạn!