Couchbase
chính thứcTươ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.
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_bucketvà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 quaexplain_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_connectionvàget_cluster_health_and_services, hoặc lấy thông tin chẩn đoán quaget_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_queriesvà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_idvàupsert_document_by_id(các công cụ ghi yêu cầuCB_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_recommendationshoặc liệt kê các chỉ mục hiện có qualist_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.
Để có tài liệu đầy đủ, hãy truy cập docs.couchbase.com/mcp-server.
Mục lục
- Tại sao nên dùng Máy chủ Couchbase MCP
- Ví dụ về Lời nhắc
- Tính năng/Công cụ
- Điều kiện tiên quyết
- Cấu hình
- Máy chủ Thông tin Chi tiết Vận hành
- Chế độ Truyền tải HTTP có thể truyền phát
- Chế độ Truyền tải SSE
- Ủy quyền OAuth 2.1
- Hình ảnh Docker
- Thu thập Dữ liệu Sử dụng
- Mẹo Khắc phục Sự cố
- Kiểm thử Tích hợp
- Câu hỏi thường gặp
- Đóng góp
- Chính sách Hỗ trợ
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
orderslà gì?" - "Chạy truy vấn SQL++ để tìm 10 tài liệu gần đây nhất trong collection
userswhere 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
productsvới các trường sau: ..." (yêu cầuCB_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_status | Lấ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_connection | Kiể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_services | Lấ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_report | Lấ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_metrics | Lấ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_values | Tra 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_cluster | Lấy danh sách tất cả các bucket trong cụm |
get_scopes_in_bucket | Lấy danh sách tất cả các scope trong bucket được chỉ định |
get_collections_in_scope | Lấ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_bucket | Lấy danh sách tất cả các scope và collection trong bucket được chỉ định |
get_schema_for_collection | Lấy cấu trúc cho một collection |
create_scope | Tạ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_collection | Tạ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_scope | Xó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_collection | Xó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_id | Lấy một tài liệu theo ID từ một scope và collection được chỉ định |
lookup_subdocument | Tra 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_id | Upsert 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_id | Chè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_id | Thay 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_id | Xó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_subdocument | Sử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_indexes | Liệ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_recommendations | Lấ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_index | Tạ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_index | Kí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_index | Xó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_query | Chạ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_query | Tạ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_indexes | Liệ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_definition | Lấ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_query | Chạ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_queries | Lấ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_queries | Lấy các truy vấn được thực thi thường xuyên nhất |
get_queries_with_largest_response_sizes | Lấy các truy vấn có kích thước phản hồi lớn nhất |
get_queries_with_large_result_count | Lấy các truy vấn có số lượng kết quả lớn nhất |
get_queries_using_primary_index | Lấ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_index | Lấy các truy vấn không sử dụng chỉ mục bao phủ |
get_queries_not_selective | Lấ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_status | Lấ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_cluster | Liệt kê tất cả các database trong cụm Operational Insights. |
get_scopes_in_database | Liệt kê tất cả các scope trong một database. |
get_collections_in_scope | Liệ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_collection | Suy 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_indexes | Liệ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_sync | Chạ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_query | Tạ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_index | Tạ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_async | Bắ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_results | Kiể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_results | Giả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_query | Dừ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_indexvàlist_indexestồn tại, với hành vi khác nhau, trên cả hai máy chủ. (get_server_configuration_statuscũ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ảoperationalvà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
mcpServershiệ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
mcpServershiệ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ố CLI | Mô tả | Mặc định |
|---|---|---|---|
CB_CONNECTION_STRING | --connection-string | Chuỗi kết nối đến cụm Couchbase | Bắt buộc |
CB_USERNAME | --username | Tê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ản | Bắt buộc (hoặc cần Chứng chỉ máy khách và Khóa cho mTLS) |
CB_PASSWORD | --password | Mật khẩu cho xác thực cơ bản | Bắ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 mTLS | Bắ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 mTLS | Bắ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-mode | Ngă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 | --transport | Chế độ truyền tải: stdio, http, sse | stdio |
CB_MCP_HOST | --host | Máy chủ cho các chế độ truyền tải HTTP/SSE | 127.0.0.1 |
CB_MCP_PORT | --port | Cổng cho các chế độ truyền tải HTTP/SSE | 8000 |
CB_MCP_DISABLED_TOOLS | --disabled-tools | Cá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-tools | Cá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-level | Mức ghi log cho máy chủ MCP: off, debug, info, warning, error (xem Ghi log) | info |
CB_MCP_LOG_SINKS | --log-sinks | Cá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-mb | Kí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 động | 1 (1 MB) |
CB_MCP_LOG_MAX_BYTES | --log-max-bytes | Khô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 đặt | Không đặt |
CB_MCP_LOG_ERROR_ROTATION_MAX_SIZE_MB | --log-error-rotation-max-size-mb | Kí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 ERROR | Kế thừa CB_MCP_LOG_ROTATION_MAX_SIZE_MB |
CB_MCP_LOG_WARNING_ROTATION_MAX_SIZE_MB | --log-warning-rotation-max-size-mb | Kí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 WARNING | Kế thừa CB_MCP_LOG_ROTATION_MAX_SIZE_MB |
CB_MCP_LOG_INFO_ROTATION_MAX_SIZE_MB | --log-info-rotation-max-size-mb | Kí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 INFO | Kế thừa CB_MCP_LOG_ROTATION_MAX_SIZE_MB |
CB_MCP_LOG_DEBUG_ROTATION_MAX_SIZE_MB | --log-debug-rotation-max-size-mb | Kí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 DEBUG | Kế thừa CB_MCP_LOG_ROTATION_MAX_SIZE_MB |
CB_MCP_LOG_RETENTION_BACKUP_COUNT | --log-retention-backup-count | Cá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-count | Cá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 ERROR | Kế thừa CB_MCP_LOG_RETENTION_BACKUP_COUNT |
CB_MCP_LOG_WARNING_RETENTION_BACKUP_COUNT | --log-warning-retention-backup-count | Cá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 WARNING | Kế thừa CB_MCP_LOG_RETENTION_BACKUP_COUNT |
CB_MCP_LOG_INFO_RETENTION_BACKUP_COUNT | --log-info-retention-backup-count | Cá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 INFO | Kế thừa CB_MCP_LOG_RETENTION_BACKUP_COUNT |
CB_MCP_LOG_DEBUG_RETENTION_BACKUP_COUNT | --log-debug-retention-backup-count | Cá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 DEBUG | Kế 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-issuer | Claim iss JWT dự kiến. Bắt buộc để bật OAuth | Không có |
CB_MCP_OAUTH_JWT_AUDIENCE | --oauth-audience | Claim aud JWT dự kiến. Bắt buộc để bật OAuth | Không có |
CB_MCP_OAUTH_JWT_ALGORITHM | --oauth-algorithm | Thuật toán ký JWT: một trong RS256/384/512, ES256/384/512, PS256/384/512 | RS256 |
CB_MCP_OAUTH_MCP_BASE_URL | --oauth-mcp-base-url | URL 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á IdP | Không có |
CB_MCP_OAUTH_SCOPE_READ_LABEL | --oauth-scope-read-label | Ghi đè 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ẩn | couchbase-mcp:read |
CB_MCP_OAUTH_SCOPE_WRITE_LABEL | --oauth-scope-write-label | Ghi đè nhãn phạm vi OAuth được coi là quyền truy cập 'ghi'; cùng ngữ nghĩa với nhãn đọc | couchbase-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_idvà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_querysử dụng các câu lệnh DML SQL++ (INSERT, UPDATE, DELETE, MERGE) trừ khi:
CB_MCP_READ_ONLY_MODEđược đặt thànhtrue(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ụ,debugthêm chi tiết nội bộ chi tiết, vàoffvô 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ớifile, một tệp được ghi cho mỗi cấp độ (ví dụmcp_server.info.logvàmcp_server.error.log) tại đường dẫn được đặt bởiCB_MCP_LOG_FILE.- Kích thước xoay vòng —
CB_MCP_LOG_ROTATION_MAX_SIZE_MBlà 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ằngCB_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ước0(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 khiCB_MCP_LOG_ROTATION_MAX_SIZE_MBcũ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à1bảo toàn hành vi trước đó. Ghi đè các cấp độ riêng lẻ bằngCB_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ành0để 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
filehoạ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ệpmcp_server_config.log.jsonchuyê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
-
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. - Trên Mac, tệp cấu hình nằm tại
-
Khởi động lại Claude Desktop để áp dụng các thay đổi.
-
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:
-
Cài đặt Cursor trên máy của bạn.
-
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.
-
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.
-
Lưu cấu hình.
-
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.
-
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.
-
Cài đặt Windsurf Editor trên máy của bạn.
-
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.
-
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.
-
Lưu cấu hình.
-
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.
-
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.
-
Cài đặt VS Code
-
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+PhoặcCmd+Shift+P) - Thêm cấu hình và lưu tệp.
- Chạy MCP: Open User Configuration trong Command Palette (
-
Lưu ý: VS Code sử dụng
serverslà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ụngmcpServerscho 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" } } } }
-
-
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... -
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ủ. -
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
- Cài đặt bất kỳ một trong các JetBrains IDEs
- Cài đặt bất kỳ một trong các plugin JetBrains - AI Assistant hoặc Junie
- Điều hướng đến Settings > Tools > AI Assistant hoặc Junie > MCP Server
- Nhấp "+" để thêm cấu hình Couchbase MCP và nhấp Save.
- 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.
- 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ố CLI | Biến môi trường | Mô tả | Mặc định |
|---|---|---|---|
--connection-string | CB_OI_CONNECTION_STRING | URL điểm cuối Operational Insights (HTTP/HTTPS, không phải couchbase://) | Không có |
--username | CB_OI_USERNAME | Tên người dùng Operational Insights | Không có |
--password | CB_OI_PASSWORD | Mật khẩu Operational Insights | Không có |
--ca-cert-path | CB_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ậy | Không có |
--client-cert-path | CB_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 đặt | Không có |
--client-key-path | CB_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#12 | Không có |
--client-cert-password | CB_OI_CLIENT_CERT_PASSWORD | Mật khẩu giải mã cho khóa máy khách được mã hóa hoặc gói PKCS#12 | Khô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_ISSUERvà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_URLbổ 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/scpcủ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ằngCB_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_stringphụ 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ạngcouchbase://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 đếnuv/uvxtrong trườngcommandtrong 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.
- Xuất thông tin xác thực cụm demo:
CB_CONNECTION_STRINGCB_USERNAMECB_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.
- 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!