Couchbase MCP Server

官方

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

文件

Couchbase MCP 伺服器

Couchbase MCP 伺服器是一款自託管的 MCP 伺服器,可讓 AI 代理程式連線至 Couchbase 叢集中的資料並與之互動,無論該叢集是託管於 Capella 或自行管理。它提供跨類別的工具,包括叢集健康狀態、資料結構描述、鍵值、查詢和效能——並透過唯讀模式和精細的工具停用功能來提供安全控制。它同時支援 STDIO 和可串流的 HTTP 傳輸。

Couchbase MCP 伺服器以 Python Package Index (PyPI) 套件和 Docker 形式發佈。 Couchbase MCP 伺服器的企業支援可透過授權 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取得叢集中所有儲存桶的清單
get_scopes_in_bucket取得指定儲存桶中所有範圍的清單
get_collections_in_scope取得指定範圍和儲存桶中所有集合的清單。請注意,此工具需要叢集具備查詢服務。
get_scopes_and_collections_in_bucket取得指定儲存桶中所有範圍和集合的清單
get_schema_for_collection取得集合的結構

文件 KV 操作工具

工具名稱說明
get_document_by_id依 ID 從指定的範圍和集合中取得文件
upsert_document_by_id依 ID 將文件更新插入至指定的範圍和集合。CB_MCP_READ_ONLY_MODE=true 時預設為停用。
insert_document_by_id依 ID 插入新文件(若文件已存在則失敗)。CB_MCP_READ_ONLY_MODE=true 時預設為停用。
replace_document_by_id依 ID 取代現有文件(若文件不存在則失敗)。CB_MCP_READ_ONLY_MODE=true 時預設為停用。
delete_document_by_id依 ID 從指定的範圍和集合中刪除文件。CB_MCP_READ_ONLY_MODE=true 時預設為停用。

查詢與索引工具

工具名稱說明
list_indexes列出叢集中所有索引及其定義,可選擇性地依儲存桶、範圍、集合和索引名稱進行篩選。設定 return_raw_index_stats=true 以傳回未處理的索引資訊。
get_index_advisor_recommendations從 Couchbase Index Advisor 取得針對給定 SQL++ 查詢的索引建議,以最佳化查詢效能
run_sql_plus_plus_query在指定的範圍上執行 SQL++ 查詢

查詢會自動限定在指定的儲存桶和範圍內,因此請直接使用集合名稱(例如 SELECT * FROM users 而非 SELECT * FROM bucket.scope.users)。

CB_MCP_READ_ONLY_MODE 預設為 true,這表示**所有寫入操作(KV 和查詢)**都會被停用。啟用時,KV 寫入工具不會載入,且修改資料的 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 伺服器版本。您可以按照指示匯入其中一個範例資料集或匯入您自己的資料。
  • 已安裝 uv 以執行伺服器。
  • 已安裝一個 MCP 客戶端,例如 Claude Desktop,以將伺服器連線至 Claude。此處提供 Claude Desktop 和 Cursor 的指示。也可以使用其他 MCP 客戶端。

設定

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

從 PyPI 執行

我們為 MCP 伺服器發佈了一個預先建置的 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 伺服器,可以將其新增至現有的 mcpServers 物件中。

從原始碼執行

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

將儲存庫複製到您的本機機器

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

針對 MCP 客戶端使用原始碼的伺服器設定

這是 MCP 客戶端(例如 Claude Desktop、Cursor、Windsurf Editor)的通用設定。

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

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

注意:如果您在客戶端中使用了其他 MCP 伺服器,可以將其新增至現有的 mcpServers 物件中。

MCP 伺服器的其他設定

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

環境變數CLI 引數說明預設值
CB_CONNECTION_STRING--connection-string連線至 Couchbase 叢集的連線字串必要
CB_USERNAME--username用於基本驗證、具有存取必要儲存桶權限的使用者名稱必要(或 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 和查詢)。啟用時,KV 寫入工具不會載入。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 引出執行前需要明確使用者確認的工具(請參閱引出/需要確認的工具
CB_MCP_LOG_LEVEL--log-levelMCP 伺服器的記錄層級:offdebuginfowarningerror(請參閱記錄info
CB_MCP_LOG_SINKS--log-sinks以逗號分隔的記錄目的地:stderrfile,或兩者皆選(請參閱記錄stderr
CB_MCP_LOG_FILE--log-file每個層級記錄檔案的基礎路徑(僅在啟用 file 接收器時使用)mcp_server.log
CB_MCP_LOG_MAX_BYTES--log-max-bytes每個記錄檔案在輪替前的最大大小(以位元組為單位)1048576 (1 MB)
CB_MCP_OAUTH_JWT_JWKS_URI--oauth-jwks-uri用於驗證持有人 JWT 的身份提供者的 JWKS 端點。與發行者和對象一起設定時,會啟用 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 受保護資源中繼資料,以便具備 PRM 感知能力的客戶端可以探索 IdP

唯讀模式設定

CB_MCP_READ_ONLY_MODE 是控制寫入操作的單一開關:

  • true(預設)時:所有寫入操作(KV 和查詢)都會被停用。KV 寫入工具(更新插入、插入、取代、刪除)不會載入,且 LLM 無法使用,而修改資料或結構的 SQL++ 查詢也會被封鎖。
  • false 時:KV 寫入工具會載入,且允許 SQL++ 資料/結構修改查詢。

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

注意:對於驗證,您需要使用者名稱和密碼,或是客戶端憑證和金鑰路徑。您可以選擇性地指定將用於驗證伺服器憑證的 CA 根憑證路徑。 如果同時指定了客戶端憑證和金鑰路徑以及使用者名稱和密碼,則會使用客戶端憑證進行驗證。

停用工具

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

支援的格式

以逗號分隔的清單:

# Environment variable
CB_MCP_DISABLED_TOOLS="upsert_document_by_id, delete_document_by_id"

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

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

# Environment variable
CB_MCP_DISABLED_TOOLS=disabled_tools.txt

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

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

# Write operations
upsert_document_by_id
delete_document_by_id

# Index advisor
get_index_advisor_recommendations

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

MCP 客戶端設定範例

使用以逗號分隔的清單:

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

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

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

重要安全注意事項

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

例如,即使您停用了 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 行為並減少攻擊面,而非作為唯一的安全控制機制。

工具呼叫的引出/確認機制

您可以要求特定工具在執行前需經使用者明確確認(當 MCP 客戶端支援引出功能時)。

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

當叫用清單中的工具時:

  • 若客戶端支援引出功能,系統會提示使用者確認。
  • 若客戶端不支援引出功能,為維持回溯相容性,工具將在未經確認的情況下執行。

您也可以使用以下指令檢查伺服器版本:

uvx couchbase-mcp-server --version

記錄

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

  • CB_MCP_LOG_LEVEL — 記錄的詳細程度:info(預設值)記錄生命週期事件和工具叫用,debug 會新增詳細的內部細節,而 off 則會停用所有記錄。
  • CB_MCP_LOG_SINKS — 記錄的輸出位置:stderr(預設值)、按等級分割的輪替檔案(file),或兩者皆輸出。使用 file 時,會在 CB_MCP_LOG_FILE 設定的路徑下,為每個等級寫入一個檔案(例如 mcp_server.info.logmcp_server.error.log)。
# Enable debug logging to both stderr and rotating per-level files
uvx couchbase-mcp-server --log-level=debug --log-sinks=stderr,file

如需更多詳細資訊,請參閱文件

客戶端特定設定

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

請按照以下步驟,將 Couchbase MCP 伺服器與 Cursor 搭配使用:

  1. 在您的電腦上安裝 Cursor

  2. 在 Cursor 中,前往 Cursor > Cursor 設定 > 工具與整合 > MCP 工具。此外,請查閱 Cursor 關於設定 MCP 伺服器組態的文件。

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

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

  4. 儲存設定。

  5. 您將在 MCP 伺服器清單中看到 couchbase 作為已新增的伺服器。重新整理以查看伺服器是否已啟用。

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

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

記錄

在 Cursor 的底部面板中,點擊「輸出」並從下拉式選單中選取「Cursor MCP」以檢視伺服器記錄。這有助於診斷 MCP 伺服器設定的連線問題或其他問題。

Windsurf Editor

請按照以下步驟,將 Couchbase MCP 伺服器與 Windsurf Editor 搭配使用。

  1. 在您的電腦上安裝 Windsurf Editor

  2. 在 Windsurf Editor 中,導覽至命令面板 > Windsurf MCP 設定面板,或 Windsurf - 設定 > 進階 > Cascade > 模型上下文協定 (MCP) 伺服器。如需更多設定詳細資訊,請參閱官方文件

  3. 點擊「新增伺服器」,然後點擊「新增自訂伺服器」。在編輯器中開啟的設定上,從上方新增 Couchbase MCP 伺服器設定

  4. 儲存設定。

  5. 您將在進階設定下的 MCP 伺服器清單中看到 couchbase 作為已新增的伺服器。重新整理以查看伺服器是否已啟用。

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

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

VS Code

請按照以下步驟,將 Couchbase MCP 伺服器與 VS Code 搭配使用。

  1. 安裝 VS Code

  2. 以下有幾種設定 MCP 伺服器的方法。

    • 針對工作區伺服器設定

      • 在工作區中建立一個新檔案,路徑為 .vscode/mcp.json。
      • 新增設定並儲存檔案。
    • 針對全域伺服器設定:

      • 在命令面板中執行 MCP:開啟使用者設定Ctrl+Shift+PCmd+Shift+P
      • 新增設定並儲存檔案。
    • 注意:VS Code 在 mcp.json 檔案中使用 servers 作為頂層 JSON 屬性來定義 MCP(模型上下文協定)伺服器,而 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 操作。

記錄: 在命令面板中(Ctrl+Shift+PCmd+Shift+P),

  • 執行 MCP:列出伺服器 指令,並選擇 couchbase 伺服器
  • 選擇「顯示輸出」以在輸出索引標籤中查看其記錄。
JetBrains IDE

請按照以下步驟,將 Couchbase MCP 伺服器與 JetBrains IDE 搭配使用

  1. 安裝任何一個 JetBrains IDE
  2. 安裝任何一個 JetBrains 外掛程式 - AI AssistantJunie
  3. 導覽至 設定 > 工具 > AI Assistant 或 Junie > MCP 伺服器
  4. 點擊「+」以新增 Couchbase MCP 設定,然後點擊「儲存」。
  5. 您將看到 Couchbase MCP 伺服器已新增至伺服器清單。點擊「套用」後,Couchbase MCP 伺服器即會啟動,將滑鼠懸停在狀態上時,會顯示所有可用的工具。
  6. 您現在可以在 JetBrains IDE 中使用 Couchbase MCP 伺服器,以自然語言查詢您的 Couchbase 叢集,並對文件執行 CRUD 操作。

記錄: 記錄檔可在 說明 > 在 Finder(檔案總管)中顯示記錄 > mcp > couchbase 中探索

可串流 HTTP 傳輸模式

MCP 伺服器可以在可串流 HTTP 傳輸模式下執行,這允許多個客戶端透過 HTTP 連線到同一個伺服器執行個體。 在嘗試以此模式連線到 MCP 伺服器之前,請檢查您的 MCP 客戶端是否支援可串流 HTTP 傳輸。

注意:此傳輸模式支援 OAuth 2.1 授權。請參閱 OAuth 2.1 授權。在未設定 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 上提供服務。這可以在支援可串流 HTTP 傳輸模式的 MCP 客戶端(例如 Cursor)中使用。

MCP 客戶端設定

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

SSE 傳輸模式

可以選擇以伺服器傳送事件 (SSE) 傳輸模式執行 MCP 伺服器。

注意:SSE 模式已被 MCP 棄用。我們已支援可串流 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 驗證傳入的承載 JWT。它與提供者無關(任何發布 JWKS 的 OAuth 2.1 / OIDC 提供者 — Auth0、Okta、Keycloak、AWS Cognito、Microsoft Entra 等),並且會核發權杖或管理使用者。OAuth 設定在 stdio 上會被忽略。

OAuth 可透過其他設定中列出的 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 受保護資源中繼資料,以便感知 PRM 的客戶端可以探索授權伺服器。
  • 存取權限由從權杖的 scope/scp 宣告中讀取的兩個範圍控制:couchbase-mcp:read(讀取工具,包括 SQL++)和 couchbase-mcp:write(KV 變更工具)。完整存取權限需要兩者兼具。
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 目錄的一部分。

建置映像檔

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

或者,使用提供的建置腳本:

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

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

此腳本會自動:

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

驗證映像檔標籤:

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

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

執行

MCP 伺服器可透過環境變數來設定 Couchbase 的相關組態。這些環境變數與其他組態章節中描述的相同。

獨立的 Docker 容器

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

CB_MCP_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 文件
  • 您可以使用 --network=<your_network> 選項來指定容器的網路設定。選擇的網路取決於您的環境;預設為 bridge。詳情請參閱 docker 中的網路驅動程式

與 LLM 相關的風險

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

疑難排解提示

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

整合測試

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

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

👩‍💻 貢獻

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

如果您需要幫助、發現錯誤或想貢獻改進,最好的方式就是在這裡——開啟 GitHub 議題

給開發者

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

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

  • 使用 uv 設定開發環境
  • 使用 Ruff 進行程式碼 linting 與格式化
  • 安裝 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 上。

您的協作能幫助我們一同向前邁進——謝謝您!