mcpField
C
Couchbase MCP Server

Couchbase MCP Server

本地服务
mcp-server.couchbase.com数据库34今天更新

关于 Couchbase MCP Server

Couchbase MCP Server 是可自托管的 MCP 服务,将 Couchbase 集群和 Operational Insights 集群连接到 MCP 客户端。它支持模式探索、查询、文档操作及性能诊断,默认只读,并提供 STDIO 和 Streamable HTTP 传输。

主要功能

  1. 01连接 Couchbase 与 Operational Insights 集群
  2. 02探索集群、集合和数据模式
  3. 03执行 SQL++、全文和向量查询
  4. 04读取及写入文档,写操作默认关闭
  5. 05诊断查询与集群性能
  6. 06支持 STDIO 和 Streamable HTTP

适用场景

  1. 01检查集群健康状态与运行服务
  2. 02查找集合中的文档并分析模式
  3. 03运行 SQL++ 或全文及向量搜索
  4. 04识别慢查询与索引建议

MCP 相关

该 MCP 服务向 MCP 客户端提供集群检查、模式发现、数据查询与文档操作工具。支持 STDIO 和带可选 OAuth 2.1 的 Streamable HTTP;默认只读,可通过配置启用写入。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"couchbase": {
"command": "uvx",
"args": [
"couchbase-mcp-server"
],
"env": {
"CB_CONNECTION_STRING": "<CB_CONNECTION_STRING>",
"CB_USERNAME": "<CB_USERNAME>",
"CB_PASSWORD": "<CB_PASSWORD>",
"CB_CA_CERT_PATH": "<CB_CA_CERT_PATH>",
"CB_CLIENT_CERT_PATH": "<CB_CLIENT_CERT_PATH>",
"CB_CLIENT_KEY_PATH": "<CB_CLIENT_KEY_PATH>",
"CB_MCP_READ_ONLY_MODE": "<CB_MCP_READ_ONLY_MODE>",
"CB_MCP_READ_ONLY_QUERY_MODE": "<CB_MCP_READ_ONLY_QUERY_MODE>",
"CB_MCP_TRANSPORT": "<CB_MCP_TRANSPORT>",
"CB_MCP_HOST": "<CB_MCP_HOST>",
"CB_MCP_PORT": "<CB_MCP_PORT>",
"CB_MCP_DISABLED_TOOLS": "<CB_MCP_DISABLED_TOOLS>",
"CB_MCP_CONFIRMATION_REQUIRED_TOOLS": "<CB_MCP_CONFIRMATION_REQUIRED_TOOLS>"
}
}
}
}
启动命令uvx couchbase-mcp-server
需要配置的环境变量
CB_CONNECTION_STRINGCouchbase connection string. Required for connecting to the cluster.
CB_USERNAMECouchbase database username. Required for basic authentication.
CB_PASSWORD密钥Couchbase database password. Required for basic authentication.
CB_CA_CERT_PATHCouchbase CA certificate path. Required for TLS authentication in non Capella clusters.
CB_CLIENT_CERT_PATHCouchbase client certificate path. Required for mTLS authentication.
CB_CLIENT_KEY_PATH密钥Couchbase client key path. Required for mTLS authentication.
CB_MCP_READ_ONLY_MODECouchbase read only mode. Set to true to allow disable write operations across both KV and query. KV write tools are not loaded and SQL++ queries that modify data are blocked. Set to false to allow data modification queries and tools.
CB_MCP_READ_ONLY_QUERY_MODE[Deprecated] Couchbase read only query mode. Set to true to allow only read-only queries. Set to false to allow data modification queries. Use CB_MCP_READ_ONLY_MODE instead.
CB_MCP_TRANSPORTTransport mode for the server (stdio, http or sse). Default is stdio
CB_MCP_HOSTHost to run the MCP server on (default: 127.0.0.1). Used only for HTTP and SSE transport modes.
CB_MCP_PORTPort to run the MCP server on (default: 8000). Used only for HTTP and SSE transport modes.
CB_MCP_DISABLED_TOOLSTools to disable. Accepts comma-separated tool names (e.g., 'tool_1,tool_2') or a file path containing one tool name per line.
CB_MCP_CONFIRMATION_REQUIRED_TOOLSComma-separated tool names that require user confirmation before execution. Also accepts a file path containing one tool name per line. Requires the MCP client to support elicitation.

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
pypicouchbase-mcp-server0.8.0
ocidocker.io/couchbaseecosystem/mcp-server-couchbase:0.8.0

工具

20

收录的工具列表 · 更新于 3 周前

此工具无需参数。

详细介绍

Couchbase MCP 服务

Couchbase MCP 服务是一个可自托管的 Model Context Protocol (MCP) 服务,可将 AI Agent 和助手——Claude、Cursor、Windsurf、VS Code Copilot、JetBrains AI Assistant 以及任何其他 MCP 客户端——连接到 Couchbase Server 集群中的数据,无论集群部署在 Capella 上还是由您自行管理,也可连接到自行管理的 Operational Insights 集群。Agent 可以检查您的集群、探索架构、运行 SQL++、全文和向量查询、读取和写入文档,并使用自然语言诊断查询和集群性能问题。

默认情况下,它为只读模式,支持 STDIO 和 Streamable HTTP(采用 OAuth 2.1),并通过 PyPI 和 Docker Hub 分发。获得企业支持需获得 Couchbase AI Data Plane 许可;该许可还包含 Couchbase Agent Memory 和 Couchbase Agent Catalog 的使用权限及企业支持。 Docs License Python 3.11+ PyPI version Install in Cursor Verified on MseeP Trust Score

Full documentation: docs.couchbase.com/mcp-server

Couchbase Server MCP server

目录

为什么选择 Couchbase MCP Server

  • 默认安全 — 默认不会加载写入工具,并且会阻止修改数据的查询,除非设置 CB_MCP_READ_ONLY_MODE=false;也可以禁用单个工具,或要求用户确认后才能使用。
  • Couchbase Server 和 Operational Insights — 运维服务 使用相同配置连接到 Couchbase Capella 或自托管的 Couchbase Server 集群;Operational Insights 服务 连接到自托管的 Operational Insights 集群。
  • 遵循 RBAC — 工具控制会引导大模型;Couchbase 用户的基于角色的访问控制仍是权威的安全边界。
  • 面向生产环境的传输方式 — 可通过 STDIO 连接本地桌面客户端,也可使用支持可选 OAuth 2.1 的 Streamable HTTP(适用于任何发布 JWKS 的 IdP:Auth0、Okta、Keycloak、Entra、Cognito 等),并支持运行状况检查和审计日志,适用于共享部署。运维服务还可以运行多个工作进程,以使用更多 CPU 核心。
  • 适用于任何 MCP 客户端 — 已通过 Claude Desktop、Cursor、Windsurf、VS Code 和 JetBrains AI Assistant/Junie 测试。

连接后,你可以提出如下问题:

  • “我有哪些存储桶、作用域和集合,orders 集合的架构是什么?”
  • “在 users 中查找最近的 10 个 status = 'active' 的文档。”
  • “过去一小时内最慢的 5 个查询是什么?其中有没有缺少覆盖索引的?”
  • “此集群是否运行正常,当前运行着哪些服务?”
  • “在 products 中插入一个包含以下字段的新文档:……”(需要设置 CB_MCP_READ_ONLY_MODE=false)

选择服务

此软件包提供两个 MCP 服务。每个服务都通过自己的子命令启动,连接到不同类型的集群,并提供各自的工具。请选择与您的集群相匹配的服务,按照对应章节完成设置并了解工具,然后参阅通用配置了解两者共用的设置。若要同时使用两者,请在 MCP 客户端中将它们分别注册为独立服务。

Operational 服务Operational Insights 服务
适用对象Couchbase 集群(Capella 或自托管)自托管的 Operational Insights 集群(Capella 不提供)
子命令operational(默认)operational-insights
连接字符串couchbase:// / couchbases://HTTP(S) URL,例如 http://localhost:8095
凭据变量CB_CONNECTION_STRING、CB_USERNAME、…CB_OPERATIONAL_INSIGHTS_CONNECTION_STRING、CB_OPERATIONAL_INSIGHTS_USERNAME、…
工具52 个 — 集群运行状况、架构、KV、SQL++、索引、全文和向量搜索、查询性能13 个 — 架构、SQL++(同步和异步)、索引、导出
默认 HTTP 端口80008001
默认日志文件mcp_server.logmcp_server_operational_insights.log

目前,operational 服务可以不指定子命令——直接运行 couchbase-mcp-server 即可启动该服务——但明确指定子命令可让配置更清晰。选项应放在子命令之后:couchbase-mcp-server operational --transport=http。使用 uvx couchbase-mcp-server --version 检查已安装的版本。

Operational 服务

operational 服务使用 couchbase Python SDK 连接 Capella 上的 Couchbase 集群或自托管的 Couchbase Server。

Operational 快速入门

您需要一个正在运行的 Couchbase 集群——Capella 免费套餐是最快捷的选择(您可以导入示例数据集)——以及一个 MCP 客户端。将以下配置中的一项添加到您的客户端(各客户端的配置位置请参阅客户端设置)。如果客户端已配置其他服务,请将 couchbase 添加到现有的 mcpServers 对象中。

通过 PyPI 使用 uvx(需要 uv 和 Python 3.11+):

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

使用 Docker(仅需 Docker):

{
  "mcpServers": {
    "couchbase": {
      "command": "docker",
      "args": [
        "run", "--rm", "-i",
        "-e", "CB_CONNECTION_STRING=couchbases://connection-string",
        "-e", "CB_USERNAME=username",
        "-e", "CB_PASSWORD=password",
        "couchbase/mcp-server:latest", "operational"
      ]
    }
  }
}
从源代码安装
git clone https://github.com/couchbase/mcp-server-couchbase.git
{
  "mcpServers": {
    "couchbase": {
      "command": "uv",
      "args": [
        "--directory", "path/to/cloned/repo/mcp-server-couchbase/",
        "run", "src/mcp_server.py", "operational"
      ],
      "env": {
        "CB_CONNECTION_STRING": "couchbases://connection-string",
        "CB_USERNAME": "username",
        "CB_PASSWORD": "password"
      }
    }
  }
}

path/to/cloned/repo/mcp-server-couchbase/ 是您克隆仓库的路径——请保留末尾的斜杠。拉取更新后,运行 uv sync 以更新依赖项。

Operational 连接与身份验证

请使用用户名和密码或客户端证书(mTLS)进行身份验证。如果两者都已设置,则使用证书。

环境变量CLI 参数说明
CB_CONNECTION_STRING--connection-string集群连接字符串。必填
CB_USERNAME / CB_PASSWORD--username / --password基本身份验证
CB_CLIENT_CERT_PATH / CB_CLIENT_KEY_PATH--client-cert-path / --client-key-pathmTLS 身份验证
CB_CA_CERT_PATH--ca-cert-path用于自签名或不受信任服务器证书的根证书(Capella 无需此项)
mTLS 示例
{
  "mcpServers": {
    "couchbase": {
      "command": "uvx",
      "args": ["couchbase-mcp-server", "operational"],
      "env": {
        "CB_CONNECTION_STRING": "couchbases://connection-string",
        "CB_CLIENT_CERT_PATH": "/path/to/client-certificate.pem",
        "CB_CLIENT_KEY_PATH": "/path/to/client.key"
      }
    }
  }
}
Operational 工具

在只读模式开启时(默认状态),写入工具(标记为 ✏️)不会加载。标记为 🖥️ 的工具使用 Capella 未公开的管理 REST 端点:这些工具需要自托管的 Couchbase Server 7.6+,且不会在 Capella 连接上注册。

集群设置和运行状况
工具描述
get_server_configuration_status无需连接集群即可查看服务器状态和配置:只读模式、已禁用/需要确认的工具、OAuth、日志记录和审计计数器
test_cluster_connection连接集群以检查集群凭据
get_cluster_health_and_services查看集群运行状况和正在运行的服务,可通过 service_types 筛选
get_client_connectivity_reportSDK 缓存的连接诊断信息,不会主动探测网络
get_cluster_metrics 🖥️历史时间窗口内的集群统计信息(stats-range 端点)
get_cluster_tasks 🖥️当前正在运行的任务——重新平衡、压缩、XDCR、索引构建。需要 ro_admin
get_cluster_health_snapshot 🖥️各节点的运行状况:服务拓扑、成员关系、编排器和运行状况汇总。需要 ro_admin
get_bucket_config 🖥️一个或所有存储桶的配置和实时状态——配额、驱逐、副本、持久性、存储、压缩。需要 ro_admin
get_cluster_system_events 🖥️系统事件日志(配置更改、故障转移、重新平衡、重启),可通过 since_time 指定时间窗口。需要 Full Admin 或 Cluster Admin
discover_tool_input_values查找其他工具所需的确切输入值(例如 get_cluster_metrics 的所有指标名称)。可离线使用
数据模型和架构发现
工具描述
get_buckets_in_cluster列出集群中的所有存储桶
get_scopes_in_bucket列出存储桶中的所有作用域
get_collections_in_scope列出作用域中的所有集合(需要 Query 服务)
get_scopes_and_collections_in_bucket列出存储桶中的所有作用域和集合
get_schema_for_collection推断集合的结构
create_scope ✏️在存储桶中创建作用域(Server 7.6+ 和 Capella)
create_collection ✏️在现有作用域中创建集合(Server 7.6+ 和 Capella)
delete_scope ✏️删除作用域及其所有集合——此操作不可恢复
delete_collection ✏️删除集合及其所有文档——此操作不可恢复
文档(KV)操作
工具描述
get_document_by_id按 ID 获取文档
lookup_subdocument读取特定路径、检查是否存在或计数,无需获取整个文档
upsert_document_by_id ✏️按 ID 插入或更新文档
insert_document_by_id ✏️插入新文档(如果文档已存在则失败)
replace_document_by_id ✏️替换现有文档(如果文档不存在则失败)
delete_document_by_id ✏️按 ID 删除文档
mutate_subdocument ✏️修改现有文档中的路径(插入或更新、插入、替换、移除、数组操作、计数器)
查询和索引
工具描述
run_sql_plus_plus_query运行作用域限定为存储桶和作用域的 SQL++ 查询——直接使用集合名称(SELECT * FROM users)。只读模式下会阻止修改数据的语句
explain_sql_plus_plus_query生成并评估 EXPLAIN 计划:元数据、提取的计划和分析结果
get_index_advisor_recommendations获取针对 SQL++ 查询的 Index Advisor 建议
list_indexes列出索引及其定义,可按存储桶/作用域/集合/名称筛选;标记向量索引(is_vector、vector_type)
get_index_stats 🖥️查看各节点上每个索引的大小、碎片、扫描流量和延迟——用于发现资源压力和未使用的索引
create_query_index ✏️创建标量、Hyperscale 向量或复合向量 GSI 索引(index_type)。默认延迟构建——随后调用 build_index
create_index ✏️已弃用——请使用 create_query_index。已在 2.0 中移除
build_index ✏️构建集合中所有延迟构建的索引
drop_index ✏️删除 GSI 索引(标量或向量)
全文搜索(FTS)

需要 Couchbase Server 7.6+ 和 Search 服务。支持作用域级索引和集群级(旧版)索引:同时传入 bucket_name 和 scope_name 表示作用域级索引,或同时省略二者。

工具描述
list_search_indexes列出 Search 索引 — 集群级、按存储桶或按作用域
get_search_index_definition单个 Search 索引的完整定义(映射、分析器、计划参数)
run_search根据原始 JSON 请求体运行任意非向量 FTS 查询;explain=true 会返回执行计划
upsert_search_index ✏️创建或更新 Search 索引,包括向量字段映射。更新会触发完整重建 — 传入当前 uuid 以避免覆盖并发更改
drop_search_index ✏️删除 Search 索引 — 此操作不可撤销
向量搜索

这两个工具都会使用 Embedding Providers 中配置的模型,将纯文本查询转换为向量。适用于自托管的 Couchbase Server 和 Capella。

工具描述
run_vector_query通过 APPROX_VECTOR_DISTANCE() 对 GSI 向量索引执行相似度搜索(Server 8.0+)。自动选择索引;支持 SQL++ where 预筛选和 Hyperscale 调优(num_probes、rerank、top_n_scan)。返回完整文档
run_vector_search对命名索引执行 Search 服务向量搜索(Server 7.6+)。scalar_query 可启用混合搜索;prefilter 会先缩小候选范围。每个结果返回索引中存储的字段
查询性能分析
工具描述
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列出扫描(辅助索引、主索引或顺序扫描)返回的文档数量远超最终结果的查询
查询服务运行状况 🖥️

这些工具会在每个查询节点上调用 Query 服务自身的管理 REST API。

工具描述
get_cluster_query_vitals查询引擎运行状况:请求速率、活动/排队请求、内存、GC、运行时间。需要 ro_admin
get_active_queries列出所有查询节点上正在执行的查询。需要 ro_admin
delete_active_query ✏️根据请求 ID 取消正在执行的查询。需要 Full Admin 或 Cluster Admin
在 Capella 上自动禁用的工具

🖥️ 工具通过管理 REST 端点访问 Couchbase,而 Capella 不会公开这些端点。当 CB_CONNECTION_STRING 中的每个主机都以 .cloud.couchbase.com 结尾时,服务器不会注册这些工具,并会在 get_server_configuration_status 和启动日志中将它们与您自己的已禁用工具一并报告。基于 SDK 的工具(例如 get_cluster_health_and_services 和 get_client_connectivity_report)仍可使用。

工具所需端点
get_cluster_metricsManagement REST(/pools/default/stats/range)
get_cluster_tasksManagement REST(/pools/default/tasks)
get_bucket_configManagement REST(/pools/default/buckets[/<name>])
get_cluster_health_snapshotManagement REST,以及各节点的端点
get_cluster_system_eventsManagement REST(/events)
get_index_statsIndex Service REST(每个索引器的 /api/v1/stats)
get_cluster_query_vitalsQuery 服务 REST(/admin/vitals)
get_active_queriesQuery 服务 REST(/admin/active_requests)
delete_active_queryQuery 服务 REST(DELETE /admin/active_requests/{id})
嵌入提供商

run_vector_query 和 run_vector_search 使用 CB_MCP_EMBEDDING_MODEL_PROVIDER 中设置的提供商来嵌入查询文本。此设置为可选项:未设置时,服务会正常启动,两个工具也会保持注册状态,但调用时会返回错误,说明需要设置什么。

CB_MCP_EMBEDDING_MODEL_PROVIDER必需可选说明
capellaCB_MCP_EMBEDDING_MODEL_API_KEY、CB_MCP_EMBEDDING_MODEL、CB_MCP_EMBEDDING_MODEL_ENDPOINT—Capella 模型服务。CB_MCP_EMBEDDING_MODEL_ENDPOINT 是部署专用 URL(例如 https://<id>.ai.couchbase.com),可在 Capella 的 AI Data Plane > Models 中找到
openaiCB_MCP_EMBEDDING_MODEL_API_KEY、CB_MCP_EMBEDDING_MODELCB_MCP_EMBEDDING_MODEL_ENDPOINT设置端点即可使用兼容 OpenAI 的本地服务(Ollama、vLLM、LM Studio)
cohereCB_MCP_EMBEDDING_MODEL_API_KEY、CB_MCP_EMBEDDING_MODELCB_MCP_EMBEDDING_MODEL_ENDPOINT
voyageCB_MCP_EMBEDDING_MODEL_API_KEY、CB_MCP_EMBEDDING_MODELCB_MCP_EMBEDDING_MODEL_ENDPOINT
bedrockCB_MCP_EMBEDDING_MODELCB_MCP_EMBEDDING_MODEL_AWS_ACCESS_KEY_ID、CB_MCP_EMBEDDING_MODEL_AWS_SECRET_ACCESS_KEY、CB_MCP_EMBEDDING_MODEL_AWS_REGIONAmazon Titan 嵌入模型(例如 amazon.titan-embed-text-v2:0)——该提供商会发送符合 Titan inputText 请求格式的请求,因此暂不支持 Cohere Embed 等其他 Bedrock 嵌入模型。省略凭据即可使用默认 AWS 凭据链。需要额外安装:pip install couchbase-mcp-server[bedrock-embeddings]
"env": {
  "CB_CONNECTION_STRING": "couchbases://connection-string",
  "CB_USERNAME": "username",
  "CB_PASSWORD": "password",
  "CB_MCP_EMBEDDING_MODEL_PROVIDER": "openai",
  "CB_MCP_EMBEDDING_MODEL": "text-embedding-3-small",
  "CB_MCP_EMBEDDING_MODEL_API_KEY": "sk-..."
}
所有选项
operational 服务的所有环境变量和 CLI 标志

Operational Insights 服务接受相同的选项,但使用自己的连接设置,且不支持 CB_MCP_EMBEDDING_MODEL_* 选项。

环境变量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阻止所有数据修改(KV、查询、作用域/集合管理、索引管理和 FTS 索引管理)。启用后不会加载写入工具。true
CB_MCP_TRANSPORT--transport传输模式:stdio、http、ssestdio
CB_MCP_HOST--hostHTTP/SSE 传输模式的主机127.0.0.1
CB_MCP_PORT--portHTTP/SSE 传输模式的端口8000
CB_MCP_WORKERS--workershttp 传输的服务工作进程数。值大于 1 时会以无状态 HTTP 模式运行(参见多个工作进程)1
CB_MCP_STATELESS_HTTP--stateless-http处理每个 HTTP 请求时不保留会话状态。仅在 http 模式下生效;不能与需要确认的工具同时使用(参见多个工作进程)工作进程数 > 1 时为 true,否则为 false
CB_MCP_DISABLED_TOOLS--disabled-tools要禁用的工具(参见禁用工具)无
CB_MCP_CONFIRMATION_REQUIRED_TOOLS--confirmation-required-tools执行前需要通过 MCP elicitation 获得用户明确确认的工具(参见要求确认(elicitation))无
CB_MCP_LOG_LEVEL--log-levelMCP 服务的日志级别:off、debug、info、warning、error(参见日志记录)info
CB_MCP_LOG_SINKS--log-sinks以逗号分隔的日志目标:stderr、file 或两者(参见日志记录)stderr
CB_MCP_LOG_FILE--log-file各级别日志文件的基础路径(仅在启用 file 接收器时使用)mcp_server.log
CB_MCP_LOG_ROTATION_MAX_SIZE_MB--log-rotation-max-size-mb每个日志文件轮转前的全局最大大小,单位为 MB;除非另有覆盖,否则所有级别均继承此值。0 或无法使用的值(如负数、nan 或 inf)均无效,将回退到默认值并在启动时发出警告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 端点。与签发者和受众一同设置时会启用 OAuth(参见 OAuth 2.1 Authorization)无
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/512、ES256/384/512、PS256/384/512 之一RS256
CB_MCP_OAUTH_MCP_BASE_URL--oauth-mcp-base-url此服务的公开基础 URL。设置后会发布 RFC 9728 受保护资源元数据,供支持 PRM 的客户端发现 IdP无
CB_MCP_OAUTH_SCOPE_READ_LABEL--oauth-scope-read-label覆盖被视为“读取”权限的 OAuth 作用域标签(在 PRM 中公布,并与令牌的 scope/scp 声明匹配)。如果 IdP 无法提供规范形式,请使用此项couchbase-mcp:read
CB_MCP_OAUTH_SCOPE_WRITE_LABEL--oauth-scope-write-label覆盖被视为“写入”权限的 OAuth 作用域标签;其语义与读取标签相同couchbase-mcp:write
CB_MCP_AUDIT_LOG_ENABLED--audit-log-enabled启用审计日志——它与 CB_MCP_LOG_* 运行日志使用独立的接收器,采用稳定的架构并拥有独立的保留策略(参见审计)false
CB_MCP_AUDIT_LOG_SINKS--audit-log-sinks以逗号分隔的审计目标:console、file 或两者。console 会写入 stderr——绝不写入 stdout,因为 stdio 上的 stdout 承载 JSON-RPC 协议console
CB_MCP_AUDIT_LOG_FILE_PATH--audit-log-file-path审计日志文件路径。若接收器中包含 file,则此项必填;主机名和进程 ID 会插入扩展名前(audit.log → audit.<host>.<pid>.log)无
CB_MCP_AUDIT_LOG_ROTATION_MAX_SIZE_MB--audit-log-rotation-max-size-mb当前审计文件轮转前可达到的最大大小,单位为 MB。0 会关闭基于大小的轮转10(10 MB)
CB_MCP_AUDIT_LOG_ROTATION_INTERVAL--audit-log-rotation-interval当前审计文件轮转前可达到的时长,格式为 <value><unit>,其中单位为 d(24 小时)或 w(7 天),例如 1d、30d、8w。0 会关闭基于时间间隔的轮转1d
CB_MCP_AUDIT_LOG_RETENTION_MAX_BACKUPS--audit-log-retention-max-backups每个审计文件保留的轮转备份数,不包括当前文件。备份会以 gzip 压缩。0 表示不保留备份。此限制针对单个文件,而非目录——参见审计10
CB_MCP_AUDIT_LOG_TOOL_ARGS--audit-log-tool-args在审计日志中记录工具参数值。默认关闭——此版本不会进行脱敏,因此启用后会原样写入参数,包括完整的文档正文false
CB_MCP_AUDIT_LOG_DISABLED_EVENTS--audit-log-disabled-events要抑制的审计事件:以逗号分隔的数字事件 ID(例如 61490,61491),或每行一个 ID 的文件。只能抑制可筛选的事件无
CB_MCP_EMBEDDING_MODEL_PROVIDER--embedding-model-providerrun_vector_query / run_vector_search 的嵌入提供商:capella、openai、cohere、voyage、bedrock 之一。未设置时,这两个工具的嵌入步骤均会禁用,直至完成配置——参见嵌入提供商配置无
CB_MCP_EMBEDDING_MODEL--embedding-model已配置嵌入提供商的模型名称/ID无
CB_MCP_EMBEDDING_MODEL_API_KEY--embedding-model-api-key已配置提供商的 API 密钥。bedrock 不使用此项(改用 AWS 凭证链 / CB_MCP_EMBEDDING_MODEL_AWS_*)无
CB_MCP_EMBEDDING_MODEL_ENDPOINT--embedding-model-endpoint基础 URL 覆盖值(兼容 OpenAI 的本地服务,或 Capella Model Service 部署的专属 URL——当 CB_MCP_EMBEDDING_MODEL_PROVIDER=capella 时必填)无
CB_MCP_EMBEDDING_MODEL_AWS_ACCESS_KEY_ID--embedding-model-aws-access-key-idAWS 访问密钥 ID,仅适用于 bedrock 提供商。省略时使用默认 AWS 凭证链无
CB_MCP_EMBEDDING_MODEL_AWS_SECRET_ACCESS_KEY--embedding-model-aws-secret-access-keyAWS 秘密访问密钥,仅适用于 bedrock 提供商无
CB_MCP_EMBEDDING_MODEL_AWS_REGION--embedding-model-aws-regionAWS 区域,仅适用于 bedrock 提供商。未设置时回退到 AWS SDK 自身的区域解析机制无

Operational Insights 服务

operational-insights 服务连接到自管理的 Operational Insights 集群。Operational Insights 是一个面向实时应用和运营智能的实时分析数据库(RT-OLAP)。该服务不适用于 Capella。它使用 couchbase-operational-insights SDK。它作为独立进程运行,与运营服务分开。

重要

CB_OPERATIONAL_INSIGHTS_CONNECTION_STRING 是一个 HTTP(S) URL,不是 couchbase:// 连接字符串,例如 http://localhost:8095,或通过 TLS 使用的 https://<host>:18095。这是最常见的配置错误。

Operational Insights 快速入门

通过 PyPI 使用 uvx:

{
  "mcpServers": {
    "couchbase-operational-insights": {
      "command": "uvx",
      "args": ["couchbase-mcp-server", "operational-insights"],
      "env": {
        "CB_OPERATIONAL_INSIGHTS_CONNECTION_STRING": "http://localhost:8095",
        "CB_OPERATIONAL_INSIGHTS_USERNAME": "Administrator",
        "CB_OPERATIONAL_INSIGHTS_PASSWORD": "password"
      }
    }
  }
}

使用 Docker:

{
  "mcpServers": {
    "couchbase-operational-insights": {
      "command": "docker",
      "args": [
        "run", "--rm", "-i",
        "-e", "CB_OPERATIONAL_INSIGHTS_CONNECTION_STRING=http://host.docker.internal:8095",
        "-e", "CB_OPERATIONAL_INSIGHTS_USERNAME=Administrator",
        "-e", "CB_OPERATIONAL_INSIGHTS_PASSWORD=password",
        "couchbase/mcp-server:latest", "operational-insights"
      ]
    }
  }
}

从源代码运行时,请使用运营源代码配置,将 operational-insights 作为最后一个参数,并设置上述变量。

Operational Insights 连接和身份验证
环境变量CLI 参数说明
CB_OPERATIONAL_INSIGHTS_CONNECTION_STRING--connection-string端点 URL(HTTP/HTTPS)。必需
CB_OPERATIONAL_INSIGHTS_USERNAME--username用户名
CB_OPERATIONAL_INSIGHTS_PASSWORD--password密码
CB_OPERATIONAL_INSIGHTS_CA_CERT_PATH--ca-cert-path用于自签名或不受信任服务器证书的根证书(PEM)
CB_OPERATIONAL_INSIGHTS_CLIENT_CERT_PATH--client-cert-path用于 mTLS 的客户端证书 — PEM(含密钥)或 PKCS#12 捆绑包(.p12/.pfx,不含密钥)。需要使用 https:// URL;会覆盖用户名/密码
CB_OPERATIONAL_INSIGHTS_CLIENT_KEY_PATH--client-key-path客户端证书的私钥(PEM)。使用 PKCS#12 时留空
CB_OPERATIONAL_INSIGHTS_CLIENT_CERT_PASSWORD--client-cert-password加密密钥或 PKCS#12 捆绑包的密码
CB_MCP_OPERATIONAL_INSIGHTS_QUERY_RESULT_MAX_SIZE--operational-insights-query-result-max-size查询结果的最大大小,以字节为单位。未设置表示不限制。设置后,读取会在达到限额时停止,响应会报告 truncated: true;超出限额的行不会返回。超过 4 MB 的值会被限制为 4 MB

所有通用配置均适用,但与运营服务相比有以下差异:

  • 默认端口为 8001,默认日志文件为 mcp_server_operational_insights.log,因此两个服务可以同时运行。
  • 仅支持一个工作进程(CB_MCP_WORKERS=1),因为异步查询句柄存储在进程内存中。
  • 不提供 CB_MCP_EMBEDDING_MODEL_* 选项。
运维洞察工具

除 get_server_configuration_status 外,所有名称都以 operational_insights_ 为前缀,因此两个服务可以注册到同一个客户端中而不会发生冲突。默认情况下,只读模式开启时,写入工具(标记为 ✏️)不会加载。

工具描述
get_server_configuration_status与运维服务上的工具相同
operational_insights_get_databases_in_cluster列出数据库
operational_insights_get_scopes_in_database列出数据库中的范围
operational_insights_get_collections_in_scope列出范围中的集合(数据集)
operational_insights_get_schema_for_collection通过抽样推断集合的 JSON 架构
operational_insights_list_indexes列出 System.Metadata.Index 中的二级索引
operational_insights_explain_query对 SQL++ 语句执行 EXPLAIN,但不运行语句
operational_insights_run_query_sync运行 SQL++ 并返回行数不超过结果大小限制的结果;也可以改为导出。只读模式由服务端强制执行
operational_insights_run_query_async启动查询并返回 query_handle;大规模导出时优先使用
operational_insights_get_async_query_results轮询异步查询;就绪后返回行(或导出目标位置)
operational_insights_discard_async_query_results释放已完成的异步查询结果
operational_insights_cancel_async_query停止仍在运行的异步查询(只读模式下允许)
operational_insights_create_index ✏️通过 CREATE INDEX 创建二级索引

异步查询遵循启动 → 轮询 → 丢弃或取消的流程:operational_insights_run_query_async 会返回 query_handle,然后轮询 operational_insights_get_async_query_results,直到结果就绪;接着调用 operational_insights_discard_async_query_results 释放结果,或者调用 operational_insights_cancel_async_query 停止仍在运行的查询。

导出大型结果

operational_insights_run_query_sync 和 operational_insights_run_query_async 可以将语句包装在 COPY ... TO 中,并将行写入外部对象存储,而不是返回行。传入以下三个参数:copy_to_link(使用 CREATE LINK ... TYPE S3 创建的现有链接)、copy_to_bucket 和 copy_to_path;还可以选择传入 copy_to_format(默认值为 json,也可以是 parquet)。随后,工具会返回确认信息,不包含行:

{
  "success": true,
  "exported": true,
  "destination": {"link": "s3Link", "bucket": "my-exports", "path": "exports/run1", "format": "json"},
  "message": "Results were written to my-exports/exports/run1 as json. ..."
}
  • 如果目标信息不完整,操作会被拒绝,而不会静默地改为返回行。
  • 同步工具会等待整个上传完成;大型导出优先使用异步工具。
  • 只读模式下会阻止导出(因为导出会写入外部存储),因此需要设置 CB_MCP_READ_ONLY_MODE=false 或使用具有 couchbase-mcp:write 权限的令牌。
  • 不提供 csv 格式,因为它需要显式指定输出架构,而该架构无法从任意 SELECT 语句中推断出来。

通用配置

以下设置对两个服务的作用方式相同。每个选项都可以通过环境变量设置,也可以在子命令后作为 CLI 标志传入。

安全控制

共有三层控制,从范围最广到最窄。请结合使用,但请记住,它们都不能替代 RBAC。

重要

数据库用户的 RBAC 权限是权威的安全控制。例如,禁用 upsert_document_by_id 和 delete_document_by_id 并不能阻止 run_sql_plus_plus_query 运行 INSERT/UPDATE/DELETE/MERGE——只有只读模式或缺少 RBAC 权限才能阻止。仅向服务的数据库用户授予其所需的权限。

只读模式

CB_MCP_READ_ONLY_MODE(默认值为 true)是控制写入的唯一开关:

  • true — 各服务工具列表中标记为 ✏️ 的写入工具不会加载,并且会阻止修改数据或结构的查询。
  • false — 写入工具会加载,允许执行修改查询。
禁用工具

CB_MCP_DISABLED_TOOLS 会将工具从发现列表中完全移除。它接受逗号分隔的列表,或每行一个工具名称的文件路径(# 用于开始注释):

CB_MCP_DISABLED_TOOLS="upsert_document_by_id,delete_document_by_id"
# or
CB_MCP_DISABLED_TOOLS=/path/to/disabled_tools.txt
# disabled_tools.txt
# Write operations
upsert_document_by_id
delete_document_by_id

# Index advisor
get_index_advisor_recommendations

在 Capella 上,运行服务器还会自动禁用部分管理工具。

要求确认(elicitation)

CB_MCP_CONFIRMATION_REQUIRED_TOOLS 会使用 MCP elicitation,要求用户在运行列出的工具前进行确认。它接受与禁用工具相同的逗号分隔列表或文件格式:

CB_MCP_CONFIRMATION_REQUIRED_TOOLS="delete_document_by_id,replace_document_by_id"
  • 如果客户端支持 elicitation,系统会在工具运行前提示用户。
  • 如果不支持,为保持向后兼容,工具会在未经确认的情况下运行。
  • 确认需要 MCP 会话,因此不能与无状态 HTTP(CB_MCP_STATELESS_HTTP=true 或上文所述的 CB_MCP_WORKERS 大于 1)同时使用。服务器会拒绝以这种组合启动。
传输方式
传输方式用途端点
stdio(默认)由一个本地客户端以子进程方式启动服务器—
http多个客户端共享一个服务器;支持 OAuth、运行状况检查以及运行服务器上的工作进程http://<host>:<port>/mcp
sseMCP 规范已将其弃用——请使用 httphttp://<host>:<port>/sse

使用 CB_MCP_TRANSPORT 设置传输方式,使用 CB_MCP_HOST 设置绑定地址(默认值为 127.0.0.1),使用 CB_MCP_PORT 设置端口(未设置时使用各服务器的默认端口)。如果没有启用 OAuth,HTTP 端点无需身份验证即可访问。

uvx couchbase-mcp-server operational \
  --connection-string='<couchbase_connection_string>' \
  --username='<database_username>' \
  --password='<database_password>' \
  --transport=http

然后将客户端指向该 URL:

{
  "mcpServers": {
    "couchbase-http": {
      "url": "http://localhost:8000/mcp"
    }
  }
}
多个工作进程

一个进程最多使用约一个 CPU 核心。--workers N(CB_MCP_WORKERS)会在同一主机和端口后运行 N 个进程;可用核心数是一个很好的起始值。只有运行服务器支持工作进程。使用多个工作进程时:

  • 必须使用 http 传输方式,并且服务器会以无状态 HTTP 模式运行,因为客户端的请求可能会到达不同的工作进程。单个工作进程也可以设置 --stateless-http=true,例如在不使用粘性会话的负载均衡器后运行时。
  • 不能使用需要确认的工具。
  • 每个进程都会写入自己的日志文件,文件名包含主机名和进程 ID(mcp_server.<host>.<pid>.info.log)——监督进程一套,每个工作进程各一套。
运行状况检查

在 HTTP 模式下,GET /health 会在 MCP 端口返回 {"status": "ok", "server": "<server>"}。这是存活状态检查:它不会连接集群(因此集群故障不会导致正常运行的容器重启),即使启用了 OAuth 也无需身份验证,并且每个工作进程都能处理该请求。探测示例请参阅 Docker。

OAuth 2.1 授权

使用 --transport=http 时,任一服务器都可以充当 OAuth 2.1 资源服务器,根据身份提供商的 JWKS 验证 Bearer JWT。它适用于任何会发布 JWKS 的 OAuth 2.1/OIDC 提供商,但不会颁发令牌或管理用户。stdio 模式下会忽略 OAuth 设置。

  • 仅当 CB_MCP_OAUTH_JWT_JWKS_URI、CB_MCP_OAUTH_JWT_ISSUER 和 CB_MCP_OAUTH_JWT_AUDIENCE 三项均已设置时,才会启用 OAuth;只设置其中部分参数会导致启动失败。
  • CB_MCP_OAUTH_MCP_BASE_URL 还会发布 RFC 9728 受保护资源元数据,使客户端能够发现授权服务器。
  • 访问权限由令牌的 scope/scp 声明中的两个范围控制:couchbase-mcp:read(读取工具)和 couchbase-mcp:write(写入工具)。完整访问权限需要同时具备两者。如果你的 IdP 无法发出这些标签,请使用 CB_MCP_OAUTH_SCOPE_READ_LABEL / CB_MCP_OAUTH_SCOPE_WRITE_LABEL 重命名它们。两个服务器使用相同的标签,因此一套 IdP 配置即可覆盖两者。
uvx couchbase-mcp-server operational \
  --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>'

IdP 设置请参阅 OAuth 文档。

日志记录

每个服务默认以 info 级别将日志写入 stderr。

  • CB_MCP_LOG_LEVEL — off、error、warning、info(生命周期事件和工具调用)或 debug。
  • CB_MCP_LOG_SINKS — stderr、file,或两者兼用。使用 file 时,每个级别都会写入一个轮换文件,存放在 CB_MCP_LOG_FILE 旁边(mcp_server.info.log、mcp_server.error.log,……)。
  • 轮换和保留 — CB_MCP_LOG_ROTATION_MAX_SIZE_MB(默认 1 MB)和 CB_MCP_LOG_RETENTION_BACKUP_COUNT(默认 1)适用于每个级别;可通过 CB_MCP_LOG_<LEVEL>_ROTATION_MAX_SIZE_MB / CB_MCP_LOG_<LEVEL>_RETENTION_BACKUP_COUNT 按级别覆盖。大小无效时会回退到默认值,并在启动时发出警告。CB_MCP_LOG_MAX_BYTES 已弃用。
  • 配置快照 — 使用 file 输出时,每次启动都会将环境和经过脱敏的服务配置以 JSON 记录写入 mcp_server_config.log.json,供支持人员查看。
# Debug logging to stderr and rotating per-level files
uvx couchbase-mcp-server operational --log-level=debug --log-sinks=stderr,file

你的 MCP 客户端通常也会捕获服务的 stderr — 请参阅 客户端设置,了解相关位置。详情请见:日志记录文档。

审计

审计日志记录谁做了什么,以及是否获准 — 这与记录出错情况的运维日志相互独立。对于 Agent,只有 MCP 服务这一层能够回答这个问题:每个请求都会以单个数据库用户的身份到达集群,而范围拒绝、只读拦截或确认被拒绝等决定根本不会到达集群。

审计默认关闭。设置 CB_MCP_AUDIT_LOG_ENABLED=true 即可启用;日志会写入 stderr,除非你设置了 CB_MCP_AUDIT_LOG_SINKS=file 和 CB_MCP_AUDIT_LOG_FILE_PATH。

# 90 days of daily, gzipped audit files
uvx couchbase-mcp-server operational --audit-log-enabled=true \
  --audit-log-sinks=file --audit-log-file-path=/var/log/cb-mcp/audit.log \
  --audit-log-rotation-interval=1d --audit-log-rotation-max-size-mb=0 \
  --audit-log-retention-max-backups=90

记录采用 JSON Lines 格式,字段词汇与 Couchbase Server 和 Sync Gateway 相同:

{"id":61522,"name":"document write","description":"A document write operation was requested through a tool","timestamp":"2026-09-29T09:14:22.418Z","real_userid":{"domain":"oauth","user":"agent-svc-7"},"server":{"version":"1.0.2","host":"mcp-01"},"cid":"9f2c...","outcome":"success","tool_name":"upsert_document_by_id","required_scope":"write","ks":"travel-sample.inventory.airline","cb_userid":"mcp_service"}
审计的工作方式
  • 身份 — real_userid 是调用者:oauth(令牌主体)、local(stdio 模式下的 OS 用户)或 anonymous(未使用 OAuth 的 HTTP 请求;启动时会发出警告)。
  • 关联 — cid 用于归组同一请求的所有记录,并作为 SQL++ client_context_id 发送,因此可与 Couchbase Server 的 clientContextId 精确关联。这里有意不设会话标识符。
  • 事件 — 固定编号的目录(生命周期、初始化、令牌被拒绝、范围被拒绝、只读拦截、确认被拒绝/跳过,以及每个工具类别各一组读取/写入事件)。完整目录随软件包以 descriptor.json 文件提供。运维服务使用区块 0xF000(61440),Operational Insights 使用 0x10000(65536),两者共享 0xE000(57344)作为核心事件区块。
  • 筛选 — CB_MCP_AUDIT_LOG_DISABLED_EVENTS 按数字 ID 禁用读取事件(例如 61490,61491)。写入和安全事件无法禁用。
  • 轮换 — 按大小(CB_MCP_AUDIT_LOG_ROTATION_MAX_SIZE_MB,默认 10)和时间(CB_MCP_AUDIT_LOG_ROTATION_INTERVAL,默认 1d)轮换,以先达到者为准;设为 0 可关闭相应轮换。轮换后的文件会加上时间戳并进行 gzip 压缩;当前文件保持纯文本,便于使用 tail -f 查看。
  • 每个进程单独使用文件 — 文件名中会加入主机名和 pid(audit.log → audit.<host>.<pid>.log),因此并发进程绝不会共用同一个文件。
  • 保留期限按文件计算 — CB_MCP_AUDIT_LOG_RETENTION_MAX_BACKUPS(默认 10)限制单个文件的备份数量。每个新进程都会创建新文件,且不会清理旧文件,因此请合理设置磁盘容量,或清理旧的 audit.*.log* 文件。
  • 故障时继续运行 — 如果文件无法写入,服务仍会继续提供服务并统计丢弃的记录;get_server_configuration_status 会报告 written / dropped / write_errors。
  • 工具参数 — 只有设置 CB_MCP_AUDIT_LOG_TOOL_ARGS=true 才会记录,启动时会发出警告。本版本不会进行脱敏,因此参数(包括完整文档正文)会原样写入。
## 客户端设置

每个客户端都需要在自己的配置位置添加来自操作型或Operational Insights快速入门的服务配置。以下示例使用操作型服务。

Claude Desktop
  1. 打开配置文件(参见 MCP 快速入门指南):
    • macOS:~/Library/Application Support/Claude/claude_desktop_config.json
    • Windows:%APPDATA%\Claude\claude_desktop_config.json
  2. 在 mcpServers 下添加服务,然后重启 Claude Desktop。

**日志:**macOS:~/Library/Logs/Claude,Windows:%APPDATA%\Claude\Logs。参见 MCP 故障排除指南。

Cursor
  1. 前往 Cursor Settings > Tools & Integrations > MCP Tools(参见 Cursor 的 MCP 文档),或使用一键式在 Cursor 中安装链接,然后替换占位连接字符串和凭据。
  2. 在 mcpServers 下添加配置并保存。
  3. 刷新 MCP 服务列表,确认 couchbase 已启用。

**日志:**在底部面板中打开 Output,然后选择 Cursor MCP。

Windsurf Editor
  1. 打开 Command Palette > Windsurf MCP Configuration Panel,或 Windsurf Settings > Advanced > Cascade > Model Context Protocol (MCP) Servers(参见 Windsurf 的 MCP 文档)。
  2. 点击 Add Server > Add custom server,粘贴配置并保存。
  3. 刷新服务列表,确认 couchbase 已启用。
VS Code

VS Code 使用 servers 作为顶层键,而不是 mcpServers。对于工作区,请将配置放入 .vscode/mcp.json;对于所有工作区,请运行 MCP: Open User Configuration(参见 VS Code 的 MCP 文档):

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

保存文件后会启动服务;使用其上方的 Running | Stop | n Tools 操作进行管理。

**日志:**运行 MCP: List Servers,选择 couchbase,然后点击 Show Output。

JetBrains IDEs
  1. 安装 AI Assistant 或 Junie 插件。
  2. 前往 Settings > Tools > AI Assistant (or Junie) > MCP Server,点击 +,添加配置并点击 Apply。
  3. 将鼠标悬停在服务状态上即可查看其工具。

**日志:**Help > Show Log in Finder (Explorer) > mcp > couchbase。

## Docker

预构建镜像已发布到 Docker Hub,名称为 couchbase/mcp-server,该服务也已列入 Docker MCP Catalog。使用与上文相同的环境变量配置容器。标签、卷和健康检查示例请参阅 Docker Hub 页面(DOCKER.md)。

通过 HTTP 运行时,请注意:服务必须绑定到 0.0.0.0,才能从容器外部访问:

docker run --rm \
  -e CB_CONNECTION_STRING='<couchbase_connection_string>' \
  -e CB_USERNAME='<database_user>' \
  -e CB_PASSWORD='<database_password>' \
  -e CB_MCP_TRANSPORT=http \
  -e CB_MCP_HOST=0.0.0.0 \
  -p 8000:8000 \
  couchbase/mcp-server:latest operational
  • 如果 Couchbase 在主机上运行,请使用 couchbase://host.docker.internal 作为连接字符串(参阅 Docker 网络)。使用 --network=<your_network> 加入另一个容器所在的网络。
  • 将 operational 替换为 operational-insights,即可运行 Operational Insights 服务(端口 8001)。
从源代码构建镜像
docker build -t mcp/couchbase-src .

./build.sh [image-name] 使用与 CI 相同的参数进行构建:设置 GIT_COMMIT_HASH 和 BUILD_DATE 构建参数,并将镜像标记为 latest 和 <short-commit>(默认名称为 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 .

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

故障排除

  • 检查连接字符串、用户名/密码或证书路径。
  • 对于 Capella,请确保集群允许运行服务的机器连接。
  • 确保数据库用户至少可以访问一个存储桶。
  • 如果客户端找不到 uv/uvx,请在 command 中填写绝对路径。
  • 从源代码运行时,请检查配置中的仓库路径,并在拉取更新后运行 uv sync。
  • 调用 get_server_configuration_status,查看服务实际解析出的配置,并检查客户端日志(参阅客户端设置)。

常见问题

如何将 Claude Desktop 连接到 Couchbase? 将快速入门配置添加到 claude_desktop_config.json,然后重启 Claude Desktop——参阅客户端设置。

可以将它用于 Couchbase Capella 吗? 可以,使用操作服务即可:相同配置适用于 Capella 和自管理集群,但部分管理工具仅适用于自管理集群(参阅工具)。Operational Insights 服务仅适用于自管理的 Operational Insights 集群。

允许 AI Agent 向我的数据库写入数据安全吗? 默认情况下,不安全:不会加载写入工具,并且会阻止修改 SQL++。如果启用写入,仍可禁用单个工具或要求确认——但 Couchbase 用户的 RBAC 权限仍是实际的安全边界。参阅安全控制。

我需要了解 SQL++ 吗? 不需要。只需用自然语言提问,助手就会为 run_sql_plus_plus_query 编写 SQL++。它还可以解释查询计划,或向 Index Advisor 请求建议。

STDIO、Streamable HTTP 还是 SSE? 单个本地客户端适用 STDIO。多个客户端共享一个服务并使用 OAuth 时,适用 Streamable HTTP。SSE 已弃用。参阅传输方式。

Couchbase 是否官方支持此项目? 是,需持有 Couchbase AI Data Plane 许可证。没有许可证时,Couchbase 工程师会通过 GitHub issues 尽力提供帮助。参阅支持政策。

贡献

欢迎贡献——包括错误修复、功能和文档。如需报告错误或寻求帮助,请提交 GitHub issue。

开发环境设置、代码检查、测试、项目结构和工作流请参阅 CONTRIBUTING.md。开始贡献:

git clone https://github.com/couchbase/mcp-server-couchbase.git
cd mcp-server-couchbase
uv sync --extra dev
uv run pre-commit install
./scripts/lint.sh

集成测试会连接到运行中的集群。导出 CB_CONNECTION_STRING、CB_USERNAME、CB_PASSWORD,并可选择导出 CB_MCP_TEST_BUCKET;Operational Insights 测试还会使用 CB_OPERATIONAL_INSIGHTS_CONNECTION_STRING / _USERNAME / _PASSWORD,如果未设置这些变量,则会跳过相关测试。然后运行:

uv run --extra dev pytest tests/integration -v

使用数据、大模型风险和支持政策

使用数据收集

本产品会自动收集使用情况和性能数据(例如产品名称和版本),以及浏览器信息(例如 IP 地址)(统称为“使用数据”)。Couchbase 会将使用数据与您可能提供给 Couchbase 的其他数据(例如用户名或电子邮件地址)结合使用,以开发和改进我们的产品,并为销售和营销计划提供信息。我们不会访问或收集您存储在 Couchbase 产品中的任何数据。我们使用使用数据来了解整体使用模式,并让产品更好地满足您的需求。有关 Couchbase 如何收集、保护和处理信息的更多信息,请参阅 https://www.couchbase.com/privacy-policy 上的 Couchbase 隐私政策。

大模型相关风险
  • 使用大模型及类似技术存在风险,包括可能生成不准确或有害内容。
  • Couchbase 不会审核或评估此类内容的质量或准确性,且这些内容可能不代表 Couchbase 的观点。
  • 您需自行决定是否使用大模型及相关技术,并负责遵守适用于您使用这些技术的任何许可条款、使用条款和所在组织的政策。
支持政策

Couchbase MCP Server 为开源项目,由 Couchbase 工程师维护。您如何获得帮助取决于使用方式:

  • 社区使用 — 请提交 GitHub issue报告错误、提出问题或申请功能。Couchbase 工程师会关注代码库,并尽力回复,但不承诺响应时间。Couchbase 支持门户无法为社区使用提供帮助。
  • 企业支持 — 可通过购买许可 Couchbase AI Data Plane 获得,该许可还涵盖 Couchbase Agent Memory 和 Couchbase Agent Catalog。获得许可的客户可通过常用的 Couchbase 支持渠道寻求帮助。

感谢您使用并为本项目做出贡献!

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。