Couchbase

官方

使用自然語言與儲存在 Couchbase 叢集中的資料進行互動。

你可以用 Couchbase MCP 做什麼?

要求您的助手檢查叢集健康狀態、探索結構描述、執行 SQL++ 查詢,以及管理 Couchbase 叢集中的文件。

  • 執行 SQL++ 查詢 — 要求您的助手使用 run_sql_plus_plus_query 查詢資料,自動限定在特定儲存桶和集合範圍內。
  • 探索結構描述 — 透過 get_buckets_in_clusterget_schema_for_collection 探索儲存桶、範圍和集合。
  • 管理文件 — 使用 get_document_by_idupsert_document_by_id 依 ID 讀取、更新或刪除文件。
  • 檢查叢集健康狀態 — 使用 test_cluster_connectionget_cluster_health_and_services 驗證連線和服務狀態。
  • 最佳化索引 — 透過 list_indexesget_index_advisor_recommendations 列出索引並取得建議。
  • 分析查詢效能 — 使用 get_longest_running_queriesget_queries_using_primary_index 找出執行時間較長或非選擇性的查詢。

文件

Couchbase MCP Server

Couchbase MCP Server 是一個自架設的 MCP Server,允許 AI 代理程式連線並與 Couchbase 叢集中的資料互動,無論是託管於 Capella 或自行管理。它提供涵蓋叢集健康狀態、資料結構、Key-Value、查詢和效能等類別的工具,並透過唯讀模式和精細的工具停用功能提供安全控制。它支援 STDIO 和 Streamable HTTP 兩種傳輸方式。

Couchbase MCP server 以 Python Package Index (PyPI) 套件形式發布,也可透過 Docker 取得。 Couchbase MCP Server 的企業支援可透過授權 Couchbase AI Data Plane 取得,該授權亦包含 Couchbase Agent Memory 和 Couchbase Agent Catalog 的使用權與企業支援。

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

如需完整文件,請造訪 mcp-server.couchbase.com

Couchbase Server MCP server

功能/工具

叢集設定與健康狀態工具

工具名稱說明
get_server_configuration_status在不連線叢集的情況下取得伺服器狀態和設定 — 回報唯讀模式、已停用/需確認的工具、OAuth 設定,以及解析後的日誌設定
test_cluster_connection透過連線叢集來檢查叢集憑證
get_cluster_health_and_services取得叢集健康狀態及所有執行中服務的清單

資料模型與結構探索工具

工具名稱說明
get_buckets_in_cluster取得叢集中所有 bucket 的清單
get_scopes_in_bucket取得指定 bucket 中所有 scope 的清單
get_collections_in_scope取得指定 scope 和 bucket 中所有 collection 的清單。請注意,此工具需要叢集具備 Query 服務。
get_scopes_and_collections_in_bucket取得指定 bucket 中所有 scope 和 collection 的清單
get_schema_for_collection取得 collection 的結構
create_scope在 bucket 中建立新的 scope(Couchbase Server 7.6+ 和 Capella)。CB_MCP_READ_ONLY_MODE=true 時預設停用。
create_collection在現有 scope 中建立新的 collection(Couchbase Server 7.6+ 和 Capella)。CB_MCP_READ_ONLY_MODE=true 時預設停用。
delete_scope從 bucket 中刪除 scope 及其所有 collection — 永久刪除。CB_MCP_READ_ONLY_MODE=true 時預設停用。
delete_collection從 scope 中刪除 collection 及其所有文件 — 永久刪除。CB_MCP_READ_ONLY_MODE=true 時預設停用。

文件 KV 操作工具

工具名稱說明
get_document_by_id從指定的 scope 和 collection 中依 ID 取得文件
lookup_subdocument依路徑查詢文件的部分內容(特定欄位、存在性檢查或陣列/物件計數),無需取得整份文件
upsert_document_by_id依 ID 將文件 upsert 至指定的 scope 和 collection。CB_MCP_READ_ONLY_MODE=true 時預設停用。
insert_document_by_id依 ID 插入新文件(若文件已存在則失敗)。CB_MCP_READ_ONLY_MODE=true 時預設停用。
replace_document_by_id依 ID 取代現有文件(若文件不存在則失敗)。CB_MCP_READ_ONLY_MODE=true 時預設停用。
delete_document_by_id從指定的 scope 和 collection 中依 ID 刪除文件。CB_MCP_READ_ONLY_MODE=true 時預設停用。
mutate_subdocument依路徑修改現有文件的部分內容(upsert、insert、replace、remove、陣列操作、計數器),無需重寫整份文件。CB_MCP_READ_ONLY_MODE=true 時預設停用。

查詢與索引工具

工具名稱說明
list_indexes列出叢集中所有索引及其定義,可依 bucket、scope、collection 和索引名稱進行篩選。設定 return_raw_index_stats=true 以回傳未處理的索引資訊。
get_index_advisor_recommendations從 Couchbase Index Advisor 取得指定 SQL++ 查詢的索引建議,以最佳化查詢效能
create_index在 collection 上建立純量(非向量)GSI 次要索引。預設為延遲建立 — 之後呼叫 build_index 來建置。CB_MCP_READ_ONLY_MODE=true 時預設停用。
build_index觸發 collection 上所有延遲索引的建置。CB_MCP_READ_ONLY_MODE=true 時預設停用。
drop_index從 collection 中刪除 GSI 索引(純量或向量)。CB_MCP_READ_ONLY_MODE=true 時預設停用。
run_sql_plus_plus_query在指定的 scope 上執行 SQL++ 查詢

查詢會自動限定在指定的 bucket 和 scope 中,因此請直接使用 collection 名稱(例如 SELECT * FROM users 而非 SELECT * FROM bucket.scope.users)。

CB_MCP_READ_ONLY_MODE 預設為 true,這表示**所有寫入操作(KV、Query、scope/collection 管理和索引管理)**皆已停用。啟用時,KV、collection 管理和索引寫入工具不會載入,且修改資料的 SQL++ 查詢會被封鎖。
explain_sql_plus_plus_query為 SQL++ 查詢產生並評估 EXPLAIN 計畫。回傳查詢中繼資料、擷取的計畫,以及計畫評估結果。

查詢效能分析工具

工具名稱說明
get_longest_running_queries依平均服務時間取得執行最久的查詢
get_most_frequent_queries取得最常執行的查詢
get_queries_with_largest_response_sizes取得回應大小最大的查詢
get_queries_with_large_result_count取得結果筆數最多的查詢
get_queries_using_primary_index取得使用主索引的查詢(潛在效能問題)
get_queries_not_using_covering_index取得未使用涵蓋索引的查詢
get_queries_not_selective取得選擇性不足的查詢(索引掃描回傳的文件遠多於最終結果)

先決條件

  • Python 3.10 或更高版本。
  • 一個執行中的 Couchbase 叢集。最簡單的入門方式是使用 Capella 免費方案,這是 Couchbase server 的完全託管版本。您可以依照指示匯入其中一個範例資料集,或匯入您自己的資料。
  • 已安裝 uv 以執行伺服器。
  • 已安裝 MCP 用戶端(例如 Claude Desktop)以將伺服器連線至 Claude。本說明適用於 Claude Desktop 和 Cursor。也可以使用其他 MCP 用戶端。

設定

MCP server 可以從預先建置的 PyPI 套件或使用 uv 從原始碼執行。

從 PyPI 執行

我們為 MCP server 發布了預先建置的 PyPI 套件

使用預先建置套件為 MCP 用戶端進行伺服器設定

基本驗證

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

mTLS

{
  "mcpServers": {
    "couchbase": {
      "command": "uvx",
      "args": ["couchbase-mcp-server"],
      "env": {
        "CB_CONNECTION_STRING": "couchbases://connection-string",
        "CB_CLIENT_CERT_PATH": "/path/to/client-certificate.pem",
        "CB_CLIENT_KEY_PATH": "/path/to/client.key"
      }
    }
  }
}

注意:如果用戶端中已使用其他 MCP server,您可以將其新增至現有的 mcpServers 物件。

從原始碼執行

MCP server 可以使用此儲存庫從原始碼執行。

將儲存庫複製到您的本機

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

使用原始碼為 MCP 用戶端進行伺服器設定

這是 Claude Desktop、Cursor、Windsurf Editor 等 MCP 用戶端的常見設定。

{
  "mcpServers": {
    "couchbase": {
      "command": "uv",
      "args": [
        "--directory",
        "path/to/cloned/repo/mcp-server-couchbase/",
        "run",
        "src/mcp_server.py"
      ],
      "env": {
        "CB_CONNECTION_STRING": "couchbases://connection-string",
        "CB_USERNAME": "username",
        "CB_PASSWORD": "password"
      }
    }
  }
}

注意:path/to/cloned/repo/mcp-server-couchbase/ 應為您本機上已複製儲存庫的路徑。別忘了結尾的斜線!

注意:如果用戶端中已使用其他 MCP server,您可以將其新增至現有的 mcpServers 物件。

MCP Server 的其他設定

伺服器可以使用環境變數或命令列引數進行設定:

環境變數CLI 參數說明預設值
CB_CONNECTION_STRING--connection-string連線至 Couchbase 叢集的連線字串必要
CB_USERNAME--username具備所需儲存桶存取權限的使用者名稱,用於基本驗證必要(或需要 mTLS 的用戶端憑證和金鑰)
CB_PASSWORD--password用於基本驗證的密碼必要(或需要 mTLS 的用戶端憑證和金鑰)
CB_CLIENT_CERT_PATH--client-cert-path用於 mTLS 驗證的用戶端憑證檔案路徑使用 mTLS 時必要(或需要使用者名稱和密碼)
CB_CLIENT_KEY_PATH--client-key-path用於 mTLS 驗證的用戶端金鑰檔案路徑使用 mTLS 時必要(或需要使用者名稱和密碼)
CB_CA_CERT_PATH--ca-cert-path若伺服器使用自簽或不受信任的憑證,此為 TLS 的伺服器根憑證路徑。若您連線至 Capella 則不需要
CB_MCP_READ_ONLY_MODE--read-only-mode防止所有資料修改(KV、Query、scope/collection 管理及索引管理)。啟用時,KV、collection 管理及索引寫入工具將不會載入。true
CB_MCP_TRANSPORT--transport傳輸模式:stdiohttpssestdio
CB_MCP_HOST--hostHTTP/SSE 傳輸模式的主機127.0.0.1
CB_MCP_PORT--portHTTP/SSE 傳輸模式的連接埠8000
CB_MCP_DISABLED_TOOLS--disabled-tools要停用的工具(參閱 停用工具
CB_MCP_CONFIRMATION_REQUIRED_TOOLS--confirmation-required-tools執行前需透過 MCP elicitation 取得使用者明確確認的工具(參閱 需要 Elicitation/確認的工具
CB_MCP_LOG_LEVEL--log-levelMCP 伺服器的記錄層級:offdebuginfowarningerror(參閱 記錄info
CB_MCP_LOG_SINKS--log-sinks以逗號分隔的記錄目的地:stderrfile 或兩者(參閱 記錄stderr
CB_MCP_LOG_FILE--log-file各層級記錄檔的基礎路徑(僅在啟用 file sink 時使用)mcp_server.log
CB_MCP_LOG_ROTATION_MAX_SIZE_MB--log-rotation-max-size-mb每個記錄檔在輪替前的全域最大大小(以 MB 為單位),除非另行覆寫,否則所有層級皆繼承此值。0 無效,會回退至預設值並於啟動時顯示警告1(1 MB)
CB_MCP_LOG_MAX_BYTES--log-max-bytes已棄用 — 請使用 CB_MCP_LOG_ROTATION_MAX_SIZE_MB(MB)。全域輪替大小(以位元組為單位),為向後相容仍予支援;當同時設定 CB_MCP_LOG_ROTATION_MAX_SIZE_MB 時將被忽略未設定
CB_MCP_LOG_ERROR_ROTATION_MAX_SIZE_MB--log-error-rotation-max-size-mbERROR 記錄檔的輪替大小(以 MB 為單位);覆寫 ERROR 的 CB_MCP_LOG_ROTATION_MAX_SIZE_MB繼承 CB_MCP_LOG_ROTATION_MAX_SIZE_MB
CB_MCP_LOG_WARNING_ROTATION_MAX_SIZE_MB--log-warning-rotation-max-size-mbWARNING 記錄檔的輪替大小(以 MB 為單位);覆寫 WARNING 的 CB_MCP_LOG_ROTATION_MAX_SIZE_MB繼承 CB_MCP_LOG_ROTATION_MAX_SIZE_MB
CB_MCP_LOG_INFO_ROTATION_MAX_SIZE_MB--log-info-rotation-max-size-mbINFO 記錄檔的輪替大小(以 MB 為單位);覆寫 INFO 的 CB_MCP_LOG_ROTATION_MAX_SIZE_MB繼承 CB_MCP_LOG_ROTATION_MAX_SIZE_MB
CB_MCP_LOG_DEBUG_ROTATION_MAX_SIZE_MB--log-debug-rotation-max-size-mbDEBUG 記錄檔的輪替大小(以 MB 為單位);覆寫 DEBUG 的 CB_MCP_LOG_ROTATION_MAX_SIZE_MB繼承 CB_MCP_LOG_ROTATION_MAX_SIZE_MB
CB_MCP_LOG_RETENTION_BACKUP_COUNT--log-retention-backup-count每個層級記錄檔保留的輪替備份檔數量(不含現用檔案),除非另行覆寫,否則套用至所有層級。0 僅保留現用檔案(參閱 記錄1
CB_MCP_LOG_ERROR_RETENTION_BACKUP_COUNT--log-error-retention-backup-countERROR 記錄檔保留的輪替備份數量;覆寫 ERROR 的全域計數繼承 CB_MCP_LOG_RETENTION_BACKUP_COUNT
CB_MCP_LOG_WARNING_RETENTION_BACKUP_COUNT--log-warning-retention-backup-countWARNING 記錄檔保留的輪替備份數量;覆寫 WARNING 的全域計數繼承 CB_MCP_LOG_RETENTION_BACKUP_COUNT
CB_MCP_LOG_INFO_RETENTION_BACKUP_COUNT--log-info-retention-backup-countINFO 記錄檔保留的輪替備份數量;覆寫 INFO 的全域計數繼承 CB_MCP_LOG_RETENTION_BACKUP_COUNT
CB_MCP_LOG_DEBUG_RETENTION_BACKUP_COUNT--log-debug-retention-backup-countDEBUG 記錄檔保留的輪替備份數量;覆寫 DEBUG 的全域計數繼承 CB_MCP_LOG_RETENTION_BACKUP_COUNT
CB_MCP_OAUTH_JWT_JWKS_URI--oauth-jwks-uri用於驗證 bearer JWT 的身分提供者 JWKS 端點。與 issuer 和 audience 一同設定時啟用 OAuth(參閱 OAuth 2.1 授權
CB_MCP_OAUTH_JWT_ISSUER--oauth-issuer預期的 JWT iss 宣告。啟用 OAuth 的必要條件
CB_MCP_OAUTH_JWT_AUDIENCE--oauth-audience預期的 JWT aud 宣告。啟用 OAuth 的必要條件
CB_MCP_OAUTH_JWT_ALGORITHM--oauth-algorithmJWT 簽章演算法:RS256/384/512ES256/384/512PS256/384/512 之一RS256
CB_MCP_OAUTH_MCP_BASE_URL--oauth-mcp-base-url此伺服器的公開基礎 URL。設定後會發布 RFC 9728 Protected Resource Metadata,讓支援 PRM 的用戶端可探索 IdP
CB_MCP_OAUTH_SCOPE_READ_LABEL--oauth-scope-read-label覆寫視為「讀取」存取的 OAuth scope 標籤(在 PRM 中公告,並與 token 的 scope/scp 宣告比對)。當您的 IdP 無法發出標準形式時使用couchbase-mcp:read
CB_MCP_OAUTH_SCOPE_WRITE_LABEL--oauth-scope-write-label覆寫視為「寫入」存取的 OAuth scope 標籤;語意與讀取標籤相同couchbase-mcp:write

唯讀模式設定

CB_MCP_READ_ONLY_MODE 是控制寫入作業的唯一開關:

  • true(預設)時:所有寫入作業(KV、Query、scope/collection 管理及索引管理)皆停用。KV 寫入工具(upsert、insert、replace、delete、sub-document mutate)、scope/collection 管理寫入工具(create_scope、create_collection、delete_scope、delete_collection)及索引寫入工具(create_index、build_index、drop_index)不會載入,也無法供 LLM 使用,且修改資料或結構的 SQL++ 查詢會被封鎖。
  • false 時:KV、scope/collection 管理及索引寫入工具會載入,且允許 SQL++ 資料/結構修改查詢。

這是建議的安全預設值,可防止 LLM 意外修改資料。

注意:進行驗證時,您需要使用者名稱和密碼,或用戶端憑證與金鑰路徑。您也可以選擇指定用於驗證伺服器憑證的 CA 根憑證路徑。 若同時指定用戶端憑證與金鑰路徑以及使用者名稱和密碼,將使用用戶端憑證進行驗證。

停用工具

您可以停用特定工具,防止它們被載入並暴露給 MCP 用戶端。停用的工具不會出現在工具探索中,也無法被 LLM 呼叫。

支援的格式

以逗號分隔的清單:

# Environment variable
CB_MCP_DISABLED_TOOLS="upsert_document_by_id, delete_document_by_id"

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

檔案路徑(每行一個工具名稱):

# Environment variable
CB_MCP_DISABLED_TOOLS=disabled_tools.txt

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

檔案格式(例如 disabled_tools.txt):

# Write operations
upsert_document_by_id
delete_document_by_id

# Index advisor
get_index_advisor_recommendations

# 開頭的行會被視為註解並忽略。

MCP 用戶端設定範例

使用逗號分隔的清單:

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

使用檔案路徑(工具眾多時建議使用):

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

重要安全注意事項

警告: 僅停用工具並不能保證某些作業無法執行。底層資料庫使用者的 RBAC(角色型存取控制)權限才是權威的安全控制。

例如,即使您停用 upsert_document_by_iddelete_document_by_id,仍可透過 run_sql_plus_plus_query 工具使用 SQL++ DML 陳述式(INSERT、UPDATE、DELETE、MERGE)進行資料修改,除非:

  • CB_MCP_READ_ONLY_MODE 設定為 true(預設),或
  • 資料庫使用者缺乏資料修改所需的 RBAC 權限

最佳做法: 務必在您的 Couchbase 使用者憑證上設定適當的 RBAC 權限,作為主要安全措施。將工具停用作業為引導 LLM 行為及縮小攻擊面的額外層級,而非唯一的安全控制。

工具呼叫的 Elicitation/確認

您可以要求特定工具在執行前取得使用者的明確確認(當 MCP 用戶端支援 elicitation 時)。

CB_MCP_CONFIRMATION_REQUIRED_TOOLS / --confirmation-required-tools 支援以下格式:

  • 以逗號分隔的清單
  • 檔案路徑(每行一個工具名稱,支援 # 註解)

範例:

# Environment variable
CB_MCP_CONFIRMATION_REQUIRED_TOOLS="delete_document_by_id,replace_document_by_id"

# Command line
uvx couchbase-mcp-server --confirmation-required-tools delete_document_by_id,replace_document_by_id

當清單中的工具被呼叫時:

  • 若用戶端支援 elicitation,系統會提示使用者確認。
  • 若用戶端不支援 elicitation,工具會在不經確認的情況下執行,以維持向後相容。

您也可以使用以下方式檢查伺服器版本:

uvx couchbase-mcp-server --version

記錄

MCP 伺服器預設記錄至 stderr。記錄透過 其他設定 中列出的 CB_MCP_LOG_* 變數進行設定:

  • CB_MCP_LOG_LEVEL — 記錄多少內容:info(預設)記錄生命週期事件和工具呼叫,debug 增加詳細的內部資訊,off 停用所有記錄。
  • CB_MCP_LOG_SINKS — 記錄寫入何處:stderr(預設)、各層級輪替檔案(file)或兩者。使用 file 時,每個層級會寫入一個檔案(例如 mcp_server.info.logmcp_server.error.log),路徑由 CB_MCP_LOG_FILE 設定。
  • 輪替大小CB_MCP_LOG_ROTATION_MAX_SIZE_MB 是每個層級檔案輪替的全域大小(以 MB 為單位)。可使用 CB_MCP_LOG_<LEVEL>_ROTATION_MAX_SIZE_MBERROR/WARNING/INFO/DEBUG)覆寫個別層級,同樣以 MB 為單位,未設定時繼承全域值。大小為 0(全域或各層級)無效,會回退至預設值(1 MB)並於啟動時顯示警告。CB_MCP_LOG_MAX_BYTES(位元組)已棄用,但為向後相容仍予支援;當同時設定 CB_MCP_LOG_ROTATION_MAX_SIZE_MB 時會被忽略,並於啟動時顯示棄用警告。
  • 保留CB_MCP_LOG_RETENTION_BACKUP_COUNT 設定每個層級保留多少個輪替備份(不含現用檔案);預設值 1 保留先前行為。可使用 CB_MCP_LOG_<LEVEL>_RETENTION_BACKUP_COUNTERROR/WARNING/INFO/DEBUG)覆寫個別層級,未設定時繼承全域值。將計數設為 0 可僅保留該層級的現用檔案 — 仍受輪替大小限制(輪替時重設而非備份)。
  • 伺服器設定快照 — 當 file sink 啟用時,會將一次性記錄(OS、Python、相依套件版本、傳輸方式、解析後的記錄設定及經遮罩的伺服器設定)以 JSON 寫入專用的 mcp_server_config.log.json 檔案(由 CB_MCP_LOG_FILE 基礎路徑衍生)。每次啟動時會覆寫,因此支援人員永遠有目前的設定,且不會從輪替記錄中滾出。
# Enable debug logging to both stderr and rotating per-level files
uvx couchbase-mcp-server --log-level=debug --log-sinks=stderr,file

# Keep 30 rotated ERROR backups but only the live DEBUG file
uvx couchbase-mcp-server --log-level=debug --log-sinks=file \
  --log-error-retention-backup-count=30 --log-debug-retention-backup-count=0

更多詳細資訊請參閱文件

用戶端特定設定

Claude Desktop

請依照下列步驟,將 Couchbase MCP 伺服器與 Claude Desktop MCP 用戶端搭配使用

  1. 現在可透過編輯設定檔,將 MCP 伺服器新增至 Claude Desktop。更詳細的說明請參閱 MCP 快速入門指南

    • 在 Mac 上,設定檔位於 ~/Library/Application Support/Claude/claude_desktop_config.json
    • 在 Windows 上,設定檔位於 %APPDATA%\Claude\claude_desktop_config.json 開啟設定檔,並將設定新增至 mcpServers 區段。
  2. 重新啟動 Claude Desktop 以套用變更。

  3. 您現在可以在 Claude Desktop 中使用此伺服器,以自然語言對 Couchbase 叢集執行查詢,並對文件執行 CRUD 操作。

日誌

Claude Desktop 的日誌可在以下位置找到:

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

這些日誌可用於診斷 MCP 伺服器設定的連線問題或其他問題。如需更多詳細資訊,請參閱官方文件

Cursor

請依照以下步驟,在 Cursor 中使用 Couchbase MCP 伺服器:

  1. 在您的機器上安裝 Cursor

  2. 在 Cursor 中,前往 Cursor > Cursor Settings > Tools & Integrations > MCP Tools。另請參閱 Cursor 的設定 MCP 伺服器設定文件。

  3. 手動指定相同的設定,或使用一鍵式 Install in Cursor 連結。您可能需要在 mcpServers 的父層鍵下新增伺服器設定。

    注意:安裝連結使用上方設定範例中的佔位值。安裝後請更新連線字串和憑證。

  4. 儲存設定。

  5. 您會在 MCP 伺服器清單中看到 couchbase 已新增為伺服器。重新整理以確認伺服器是否已啟用。

  6. 您現在可以在 Cursor 中使用 Couchbase MCP 伺服器,以自然語言查詢您的 Couchbase 叢集,並對文件執行 CRUD 操作。

如需更多關於 MCP 與 Cursor 整合的詳細資訊,請參閱官方 Cursor MCP 文件

日誌

在 Cursor 的底部面板中,按一下「Output」,然後從下拉式選單中選取「Cursor MCP」以檢視伺服器日誌。這有助於診斷 MCP 伺服器設定的連線問題或其他問題。

Windsurf Editor

請依照以下步驟,在 Windsurf Editor 中使用 Couchbase MCP 伺服器。

  1. 在您的機器上安裝 Windsurf Editor

  2. 在 Windsurf Editor 中,前往 Command Palette > Windsurf MCP Configuration Panel,或 Windsurf - Settings > Advanced > Cascade > Model Context Protocol (MCP) Servers。如需更多設定詳細資訊,請參閱官方文件

  3. 按一下 Add Server,然後按 Add custom server。在編輯器中開啟的設定中,新增上方所述的 Couchbase MCP Server 設定

  4. 儲存設定。

  5. 您會在 Advanced Settings 下的 MCP Servers 清單中看到 couchbase 已新增為伺服器。重新整理以確認伺服器是否已啟用。

  6. 您現在可以在 Windsurf Editor 中使用 Couchbase MCP 伺服器,以自然語言查詢您的 Couchbase 叢集,並對文件執行 CRUD 操作。

如需更多關於 MCP 與 Windsurf Editor 整合的詳細資訊,請參閱官方 Windsurf MCP 文件

VS Code

請依照以下步驟,在 VS Code 中使用 Couchbase MCP 伺服器。

  1. 安裝 VS Code

  2. 以下提供幾種設定 MCP 伺服器的方式。

    • 工作區伺服器設定

      • 在工作區中建立新檔案 .vscode/mcp.json。
      • 新增設定並儲存檔案。
    • 全域伺服器設定:

      • 在 Command Palette 中執行 MCP: Open User ConfigurationCtrl+Shift+PCmd+Shift+P
      • 新增設定並儲存檔案。
    • 注意:VS Code 使用 servers 作為 mcp.json 檔案中的頂層 JSON 屬性來定義 MCP(Model Context Protocol)伺服器,而 Cursor 則使用 mcpServers 作為對應的設定。請查看 VS Code 用戶端設定以了解任何進一步的變更或詳細資訊。以下提供 VS Code 設定範例。

        {
          "servers": {
            "couchbase": {
              "command": "uvx",
              "args": ["couchbase-mcp-server"],
              "env": {
                "CB_CONNECTION_STRING": "couchbases://connection-string",
                "CB_USERNAME": "username",
                "CB_PASSWORD": "password"
              }
            }
          }
        }
      
  3. 儲存檔案後,伺服器即會啟動,並出現包含 Running|Stop|n Tools|More.. 的小型動作清單。

  4. 從選項清單中按一下選項,以 Start/Stop/管理伺服器。

  5. 您現在可以在 VS Code 中使用 Couchbase MCP 伺服器,以自然語言查詢您的 Couchbase 叢集,並對文件執行 CRUD 操作。

日誌: 在 Command Palette(Ctrl+Shift+PCmd+Shift+P)中,

  • 執行 MCP: List Servers 命令並選取 couchbase 伺服器
  • 選擇「Show Output」以在 Output 索引標籤中檢視其日誌。
JetBrains IDEs

請依照以下步驟,在 JetBrains IDEs 中使用 Couchbase MCP 伺服器

  1. 安裝任一 JetBrains IDEs
  2. 安裝任一 JetBrains 外掛程式 - AI AssistantJunie
  3. 前往 Settings > Tools > AI Assistant or Junie > MCP Server
  4. 按一下「+」以新增 Couchbase MCP 設定,然後按一下 Save。
  5. 您會看到 Couchbase MCP 伺服器已新增至伺服器清單。按一下 Apply 後,Couchbase MCP 伺服器即會啟動,將滑鼠停留在狀態上時,會顯示所有可用的工具。
  6. 您現在可以在 JetBrains IDEs 中使用 Couchbase MCP 伺服器,以自然語言查詢您的 Couchbase 叢集,並對文件執行 CRUD 操作。

日誌: 日誌檔案可在 Help > Show Log in Finder (Explorer) > mcp > couchbase 中查看

Streamable HTTP 傳輸模式

MCP 伺服器可以 Streamable HTTP 傳輸模式執行,此模式允許多個用戶端透過 HTTP 連線至同一個伺服器執行個體。 在嘗試以此模式連線至 MCP 伺服器之前,請先確認您的 MCP 用戶端是否支援 streamable http 傳輸。

注意:此傳輸支援 OAuth 2.1 授權。請參閱 OAuth 2.1 Authorization。若未設定 OAuth,HTTP 端點將不會進行驗證。

使用方式

依預設,MCP 伺服器會在連接埠 8000 上執行,但可使用 --portCB_MCP_PORT 環境變數進行設定。

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

伺服器將在 http://localhost:8000/mcp 上提供服務。這可用於支援 streamable http 傳輸模式的 MCP 用戶端,例如 Cursor。

MCP 用戶端設定

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

SSE 傳輸模式

也可以選擇以 Server-Sent Events (SSE) 傳輸模式執行 MCP 伺服器。

注意:SSE 模式已被 MCP 棄用。我們支援 Streamable HTTP

SSE:使用方式

依預設,MCP 伺服器會在連接埠 8000 上執行,但可使用 --portCB_MCP_PORT 環境變數進行設定。

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

伺服器將在 http://localhost:8000/sse 上提供服務。這可用於支援 SSE 傳輸模式的 MCP 用戶端,例如 Cursor。

SSE:MCP 用戶端設定

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

OAuth 2.1 授權

使用 --transport=http 執行時,MCP 伺服器可作為 OAuth 2.1 資源伺服器:它會根據您的身分提供者的 JWKS 驗證傳入的 bearer JWT。它與提供者無關(任何發布 JWKS 的 OAuth 2.1 / OIDC 提供者,例如 Auth0、Okta、Keycloak、AWS Cognito、Microsoft Entra 等),且不會簽發權杖或管理使用者。OAuth 設定在 stdio 上會被忽略。

OAuth 使用 Additional Configuration 中列出的 CB_MCP_OAUTH_* 變數進行設定:

  • 只有當 CB_MCP_OAUTH_JWT_JWKS_URICB_MCP_OAUTH_JWT_ISSUERCB_MCP_OAUTH_JWT_AUDIENCE 三者皆已設定時,OAuth 才會啟用;僅設定其中部分會在啟動時失敗。
  • 設定 CB_MCP_OAUTH_MCP_BASE_URL 會額外發布 RFC 9728 Protected Resource Metadata,讓支援 PRM 的用戶端可以探索授權伺服器。
  • 存取權限由從權杖的 scope/scp 宣告中讀取的兩個範圍控制:couchbase-mcp:read(讀取工具,包括 SQL++)和 couchbase-mcp:write(寫入工具:KV 變更、scope/collection 管理和索引管理)。完整存取需要兩者兼具。如果您的 IdP 無法發出這些標準標籤,請使用 CB_MCP_OAUTH_SCOPE_READ_LABEL / CB_MCP_OAUTH_SCOPE_WRITE_LABEL 覆寫。
uvx couchbase-mcp-server \
  --connection-string='<couchbase_connection_string>' \
  --username='<database_username>' \
  --password='<database_password>' \
  --transport=http \
  --oauth-jwks-uri='https://auth.example.com/.well-known/jwks.json' \
  --oauth-issuer='https://auth.example.com/' \
  --oauth-audience='couchbase-mcp-server' \
  --oauth-mcp-base-url='<public_base_url_of_this_server>'

如需完整詳細資訊,請參閱文件

Docker 映像

MCP 伺服器也可以建置並作為 Docker 容器執行。預先建置的映像可在 DockerHub 上找到,或透過 docker pull docker.io/couchbase/mcp-server:latest 提取。

此外,我們也是 Docker MCP Catalog 的一部分。

建置映像

docker build -t mcp/couchbase-src .
使用引數建置 如果您想要使用 commit hash 和建置時間的建置引數進行建置,可以使用以下方式建置:
docker build --build-arg GIT_COMMIT_HASH=$(git rev-parse HEAD) \
  --build-arg BUILD_DATE=$(date -u +'%Y-%m-%dT%H:%M:%SZ') \
  -t mcp/couchbase-src .

或者,使用提供的建置指令碼:

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

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

此指令碼會自動:

  • 接受選用的映像名稱參數(預設為 mcp/couchbase-src
  • 產生 git commit hash 和建置時間戳記
  • 建立多個實用的標籤(latest<short-commit>
  • 顯示建置資訊和結果
  • 使用與 CI/CD 建置相同的引數

驗證映像標籤:

# View git commit hash in image
docker inspect --format='{{index .Config.Labels "org.opencontainers.image.revision"}}' mcp/couchbase-src:latest

# View all metadata labels
docker inspect --format='{{json .Config.Labels}}' mcp/couchbase-src:latest

執行

MCP 伺服器可以使用環境變數來設定 Couchbase 設定。環境變數與 Additional Configuration section 中所述相同。

獨立 Docker 容器

docker run --rm -i \
  -e CB_CONNECTION_STRING='<couchbase_connection_string>' \
  -e CB_USERNAME='<database_user>' \
  -e CB_PASSWORD='<database_password>' \
  -e CB_MCP_TRANSPORT='<http|sse|stdio>' \
  -e CB_MCP_READ_ONLY_MODE='<true|false>' \
  -e CB_MCP_CONFIRMATION_REQUIRED_TOOLS='delete_document_by_id' \
  -e CB_MCP_PORT=9001 \
  -e CB_MCP_HOST=0.0.0.0 \
  -p 9001:9001 \
  mcp/couchbase-src

CB_MCP_PORTCB_MCP_HOST 環境變數僅適用於 http 和 sse 等 HTTP 傳輸模式。

Docker:MCP 用戶端設定

Docker 映像可以在 stdio 傳輸模式中使用,並搭配以下設定。

{
  "mcpServers": {
    "couchbase-mcp-docker": {
      "command": "docker",
      "args": [
        "run",
        "--rm",
        "-i",
        "-e",
        "CB_CONNECTION_STRING=<couchbase_connection_string>",
        "-e",
        "CB_USERNAME=<database_user>",
        "-e",
        "CB_PASSWORD=<database_password>",
        "mcp/couchbase-src"
      ]
    }
  }
}

注意事項

  • couchbase_connection_string 的值取決於 Couchbase 伺服器是執行在同一台主機、另一個 Docker 容器中,還是遠端主機上。如果您的 Couchbase 伺服器執行在主機上,您的連線字串可能會是 couchbase://host.docker.internal 的形式。如需詳細資訊,請參閱 docker documentation
  • 您可以使用 --network=<your_network> 選項指定容器的網路。您選擇的網路取決於您的環境;預設為 bridge。如需詳細資訊,請參閱 network drivers in docker

與 LLM 相關的風險

  • 使用大型語言模型和類似技術涉及風險,包括可能產生不準確或有害的輸出。
  • Couchbase 不會審查或評估此類輸出的品質或準確性,且此類輸出可能不代表 Couchbase 的觀點。
  • 您需自行負責決定是否使用大型語言模型和相關技術,並遵守任何授權條款、使用條款,以及您組織管理您使用此類技術的政策。

使用資料收集

本產品會自動收集使用和效能資料(例如產品名稱和版本)以及瀏覽器資訊(例如 IP 位址)(統稱「使用資料」)。Couchbase 會使用使用資料,以及您可能提供給 Couchbase 的其他資料(例如您的使用者名稱或電子郵件地址),來開發和改善我們的產品,並為我們的銷售和行銷計畫提供資訊。我們不會存取或收集您儲存在 Couchbase 產品中的任何資料。我們使用使用資料來了解整體使用模式,並讓我們的產品對您更有用。如需更多關於 Couchbase 如何收集、保護和處理資訊的詳細資訊,請參閱可在 https://www.couchbase.com/privacy-policy. 檢視的 Couchbase Privacy Policy

疑難排解提示

  • 如果從原始碼執行,請確保設定中的 MCP 伺服器儲存庫路徑正確。
  • 請確認您的 Couchbase 連線字串、資料庫使用者名稱、密碼或憑證路徑正確。
  • 如果使用 Couchbase Capella,請確保叢集可從執行 MCP 伺服器的機器存取
  • 檢查資料庫使用者是否具有至少一個 bucket 的適當存取權限。
  • 確認 uv 套件管理員已正確安裝且可存取。您可能需要在設定的 command 欄位中提供 uv/uvx 的絕對路徑。
  • 檢查日誌中是否有任何錯誤或警告,這些可能表示 MCP 伺服器有問題。日誌的位置取決於您的 MCP 用戶端。
  • 如果您在更新本機 MCP 伺服器儲存庫後,從原始碼執行 MCP 伺服器時遇到問題,請嘗試執行 uv sync 以更新相依項目

整合測試

我們提供高階的 MCP 整合測試,以驗證伺服器是否公開預期的工具,並可針對示範用的 Couchbase 叢集進行呼叫。

  1. 匯出示範叢集憑證:
    • CB_CONNECTION_STRING
    • CB_USERNAME
    • CB_PASSWORD
    • 選用:CB_MCP_TEST_BUCKET(測試期間要探查的 bucket)
  2. 執行測試:
uv run pytest tests/ -v

👩‍💻 貢獻

我們歡迎來自社群的貢獻!無論您是要修正錯誤、新增功能或改善文件,我們都非常感謝您的協助。

如果您需要協助、發現錯誤,或想貢獻改進,最好的地方就是這裡——透過開啟 GitHub issue

給開發者

如果您有興趣貢獻程式碼或設定開發環境:

📖 請參閱 CONTRIBUTING.md 以取得完整的開發者設定說明,包括:

  • 使用 uv 進行開發環境設定
  • 使用 Ruff 進行程式碼 lint 與格式化
  • 安裝 pre-commit hooks
  • 專案結構概覽
  • 開發工作流程與實務

貢獻者快速入門

# Clone and setup
git clone https://github.com/couchbase/mcp-server-couchbase.git
cd mcp-server-couchbase

# Install with development dependencies
uv sync --extra dev

# Install pre-commit hooks
uv run pre-commit install

# Run linting
./scripts/lint.sh

📢 支援政策

我們非常感謝您對本專案的興趣! 本專案為 Couchbase 社群維護,這表示它不受我們的支援團隊正式支援。不過,我們的工程師會積極監控並維護此儲存庫,並會盡力解決問題。

我們的支援入口網站無法協助與此專案相關的要求,因此我們懇請所有詢問都留在 GitHub 內。

您的合作讓我們能一起前進——謝謝!