Couchbase

官方

使用自然语言与存储在Couchbase集群中的数据进行交互。

你可以用 Couchbase MCP 做什么?

  • 检查集群健康与连接性 — 让助手验证集群是否可达,并使用 test_cluster_connectionget_cluster_health_and_services 检查正在运行的服务。
  • 探索数据模型 — 使用 get_buckets_in_clusterget_scopes_in_bucketget_collections_in_scope 发现存储桶、作用域和集合,然后通过 get_schema_for_collection 检查集合的结构。
  • 检索和管理文档 — 使用 get_document_by_id 按 ID 获取文档,并在写入模式启用时,通过 upsert_document_by_idinsert_document_by_idreplace_document_by_iddelete_document_by_id 创建、更新或删除文档。
  • 运行和优化 SQL++ 查询 — 使用 run_sql_plus_plus_query 执行只读查询,通过 explain_sql_plus_plus_query 查看执行计划,并从 get_index_advisor_recommendations 获取索引建议。
  • 分析查询性能 — 使用 get_longest_running_queriesget_most_frequent_queriesget_queries_using_primary_index 等工具识别运行缓慢或资源消耗大的查询。

文档

Couchbase MCP 服务器

Couchbase MCP 服务器是一款自托管的 MCP 服务器,允许 AI 代理连接到 Couchbase 集群(无论是托管在 Capella 上还是自行管理)并与其数据进行交互。它提供跨多个类别的工具,包括集群健康、数据模式、键值操作、查询和性能——并通过只读模式和细粒度的工具禁用提供安全控制。它支持 STDIO 和可流式 HTTP 传输。

Couchbase MCP 服务器以 Python 包索引 (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获取集合的结构

文档键值操作工具

工具名称描述
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 索引顾问获取针对给定 SQL++ 查询的索引建议,以优化查询性能
run_sql_plus_plus_query在指定作用域上运行 SQL++ 查询

查询会自动限定到指定的存储桶和作用域,因此直接使用集合名称(例如,SELECT * FROM users 而不是 SELECT * FROM bucket.scope.users)。

CB_MCP_READ_ONLY_MODE 默认为 true,这意味着**所有写操作(键值和查询)**都被禁用。启用后,键值写入工具不会被加载,并且修改数据的 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-stringCouchbase 集群的连接字符串必需
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阻止所有数据修改(键值和查询)。启用后,键值写入工具不会被加载。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(默认)时:所有写操作(键值和查询)都被禁用。键值写入工具(更新插入、插入、替换、删除)不会被加载,并且对 LLM 不可用,同时修改数据或结构的 SQL++ 查询会被阻止。
  • false 时:键值写入工具被加载,并且允许 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 Settings > Tools & Integrations > MCP Tools。另外,请查看 Cursor 关于设置 MCP 服务器配置的文档。

  3. 手动指定相同的配置,或使用一键式在 Cursor 中安装链接。您可能需要在 mcpServers 的父键下添加服务器配置。

    注意:安装链接使用上述配置示例中的占位符值。安装后请更新连接字符串和凭据。

  4. 保存配置。

  5. 您将在 MCP 服务器列表中看到 couchbase 作为已添加的服务器。刷新以查看服务器是否已启用。

  6. 您现在可以在 Cursor 中使用 Couchbase MCP 服务器,通过自然语言查询您的 Couchbase 集群,并对文档执行 CRUD 操作。

有关 MCP 与 Cursor 集成的更多详细信息,请参阅官方 Cursor MCP 文档

日志

在 Cursor 的底部面板中,点击“Output”并从下拉菜单中选择“Cursor MCP”以查看服务器日志。这有助于诊断连接问题或 MCP 服务器配置的其他问题。

Windsurf Editor

按照以下步骤将 Couchbase MCP 服务器与 Windsurf Editor 一起使用。

  1. 在您的机器上安装 Windsurf Editor

  2. 在 Windsurf Editor 中,导航到 Command Palette > Windsurf MCP Configuration Panel 或 Windsurf - Settings > Advanced > Cascade > Model Context Protocol (MCP) Servers。有关配置的更多详细信息,请参阅官方文档

  3. 点击 Add Server,然后点击 Add custom server。在编辑器中打开的配置上,添加上面的 Couchbase MCP 服务器配置

  4. 保存配置。

  5. 您将在 Advanced Settings 下的 MCP Servers 列表中看到 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。
      • 添加配置并保存文件。
    • 对于全局服务器配置:

      • 在命令面板(Ctrl+Shift+PCmd+Shift+P)中运行 MCP: Open User Configuration
      • 添加配置并保存文件。
    • 注意: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: List Servers 命令并选择 couchbase 服务器
  • 选择“Show Output”以在 Output 选项卡中查看其日志。
JetBrains IDEs

按照以下步骤将 Couchbase MCP 服务器与 JetBrains IDEs 一起使用

  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 中查看日志文件

可流式 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 等),并且颁发令牌或管理用户。在 stdio 上,OAuth 设置将被忽略。

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 issue

面向开发者

如果您有兴趣贡献代码或设置开发环境:

📖 请参阅 CONTRIBUTING.md 获取全面的开发者设置说明,包括:

  • 使用 uv 设置开发环境
  • 使用 Ruff 进行代码检查和格式化
  • 安装预提交钩子
  • 项目结构概览
  • 开发工作流程和实践

贡献者快速入门

# 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 内。

您的协作帮助我们共同前进——谢谢!