Couchbase
官方使用自然语言与存储在Couchbase集群中的数据进行交互。
你可以用 Couchbase MCP 做什么?
- 检查集群健康与连接性 — 让助手验证集群是否可达,并使用
test_cluster_connection和get_cluster_health_and_services检查正在运行的服务。 - 探索数据模型 — 使用
get_buckets_in_cluster、get_scopes_in_bucket和get_collections_in_scope发现存储桶、作用域和集合,然后通过get_schema_for_collection检查集合的结构。 - 检索和管理文档 — 使用
get_document_by_id按 ID 获取文档,并在写入模式启用时,通过upsert_document_by_id、insert_document_by_id、replace_document_by_id或delete_document_by_id创建、更新或删除文档。 - 运行和优化 SQL++ 查询 — 使用
run_sql_plus_plus_query执行只读查询,通过explain_sql_plus_plus_query查看执行计划,并从get_index_advisor_recommendations获取索引建议。 - 分析查询性能 — 使用
get_longest_running_queries、get_most_frequent_queries和get_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 并获得企业支持。
完整文档请访问 mcp-server.couchbase.com。
功能/工具
集群设置与健康工具
| 工具名称 | 描述 |
|---|---|
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-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 | 阻止所有数据修改(键值和查询)。启用后,键值写入工具不会被加载。 | true |
CB_MCP_TRANSPORT | --transport | 传输模式:stdio、http、sse | stdio |
CB_MCP_HOST | --host | HTTP/SSE 传输模式的主机 | 127.0.0.1 |
CB_MCP_PORT | --port | HTTP/SSE 传输模式的端口 | 8000 |
CB_MCP_DISABLED_TOOLS | --disabled-tools | 要禁用的工具(请参阅禁用工具) | 无 |
CB_MCP_CONFIRMATION_REQUIRED_TOOLS | --confirmation-required-tools | 在执行前需要通过 MCP 引导获得用户明确确认的工具(请参阅引导/需确认工具) | 无 |
CB_MCP_LOG_LEVEL | --log-level | MCP 服务器的日志记录级别: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_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-algorithm | JWT 签名算法: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_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_id和delete_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.log和mcp_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 客户端一起使用
-
现在可以通过编辑配置文件将 MCP 服务器添加到 Claude Desktop。更详细的说明可以在 MCP 快速入门指南 上找到。
- 在 Mac 上,配置文件位于
~/Library/Application Support/Claude/claude_desktop_config.json - 在 Windows 上,配置文件位于
%APPDATA%\Claude\claude_desktop_config.json
打开配置文件并将配置添加到
mcpServers部分。 - 在 Mac 上,配置文件位于
-
重启 Claude Desktop 以应用更改。
-
您现在可以在 Claude Desktop 中使用该服务器,通过自然语言在 Couchbase 集群上运行查询,并对文档执行 CRUD 操作。
日志
Claude Desktop 的日志可以在以下位置找到:
- MacOS: ~/Library/Logs/Claude
- Windows: %APPDATA%\Claude\Logs
这些日志可用于诊断连接问题或 MCP 服务器配置的其他问题。有关更多详细信息,请参阅官方文档。
Cursor
按照以下步骤将 Couchbase MCP 服务器与 Cursor 一起使用:
-
在您的机器上安装 Cursor。
-
在 Cursor 中,转到 Cursor > Cursor Settings > Tools & Integrations > MCP Tools。另外,请查看 Cursor 关于设置 MCP 服务器配置的文档。
-
手动指定相同的配置,或使用一键式在 Cursor 中安装链接。您可能需要在
mcpServers的父键下添加服务器配置。注意:安装链接使用上述配置示例中的占位符值。安装后请更新连接字符串和凭据。
-
保存配置。
-
您将在 MCP 服务器列表中看到 couchbase 作为已添加的服务器。刷新以查看服务器是否已启用。
-
您现在可以在 Cursor 中使用 Couchbase MCP 服务器,通过自然语言查询您的 Couchbase 集群,并对文档执行 CRUD 操作。
有关 MCP 与 Cursor 集成的更多详细信息,请参阅官方 Cursor MCP 文档。
日志
在 Cursor 的底部面板中,点击“Output”并从下拉菜单中选择“Cursor MCP”以查看服务器日志。这有助于诊断连接问题或 MCP 服务器配置的其他问题。
Windsurf Editor
按照以下步骤将 Couchbase MCP 服务器与 Windsurf Editor 一起使用。
-
在您的机器上安装 Windsurf Editor。
-
在 Windsurf Editor 中,导航到 Command Palette > Windsurf MCP Configuration Panel 或 Windsurf - Settings > Advanced > Cascade > Model Context Protocol (MCP) Servers。有关配置的更多详细信息,请参阅官方文档。
-
点击 Add Server,然后点击 Add custom server。在编辑器中打开的配置上,添加上面的 Couchbase MCP 服务器配置。
-
保存配置。
-
您将在 Advanced Settings 下的 MCP Servers 列表中看到 couchbase 作为已添加的服务器。刷新以查看服务器是否已启用。
-
您现在可以在 Windsurf Editor 中使用 Couchbase MCP 服务器,通过自然语言查询您的 Couchbase 集群,并对文档执行 CRUD 操作。
有关 MCP 与 Windsurf Editor 集成的更多详细信息,请参阅官方 Windsurf MCP 文档。
VS Code
按照以下步骤将 Couchbase MCP 服务器与 VS Code 一起使用。
-
安装 VS Code
-
以下是配置 MCP 服务器的几种方法。
-
对于工作区服务器配置
- 在工作区中创建一个新文件,路径为 .vscode/mcp.json。
- 添加配置并保存文件。
-
对于全局服务器配置:
- 在命令面板(
Ctrl+Shift+P或Cmd+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" } } } }
-
-
保存文件后,服务器将启动,并出现一个带有
Running|Stop|n Tools|More..的小操作列表。 -
从选项列表中点击选项以
Start/Stop/管理服务器。 -
您现在可以在 VS Code 中使用 Couchbase MCP 服务器,通过自然语言查询您的 Couchbase 集群,并对文档执行 CRUD 操作。
日志:
在命令面板(Ctrl+Shift+P 或 Cmd+Shift+P)中,
- 运行 MCP: List Servers 命令并选择 couchbase 服务器
- 选择“Show Output”以在 Output 选项卡中查看其日志。
JetBrains IDEs
按照以下步骤将 Couchbase MCP 服务器与 JetBrains IDEs 一起使用
- 安装任意一个 JetBrains IDEs
- 安装任意一个 JetBrains 插件 - AI Assistant 或 Junie
- 导航到 Settings > Tools > AI Assistant or Junie > MCP Server
- 点击“+”添加 Couchbase MCP 配置并点击 Save。
- 您将看到 Couchbase MCP 服务器已添加到服务器列表中。点击 Apply 后,Couchbase MCP 服务器将启动,将鼠标悬停在状态上会显示所有可用的工具。
- 您现在可以在 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 上运行,但这可以使用 --port 或 CB_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 服务器将在端口 8000 上运行,但这可以使用 --port 或 CB_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_URI、CB_MCP_OAUTH_JWT_ISSUER和CB_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_PORT 和 CB_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 集群调用这些工具。
- 导出演示集群凭据:
CB_CONNECTION_STRINGCB_USERNAMECB_PASSWORD- 可选:
CB_MCP_TEST_BUCKET(测试期间要探测的存储桶)
- 运行测试:
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 内。
您的协作帮助我们共同前进——谢谢!