Couchbase
oficialInteractúa con los datos almacenados en clústeres de Couchbase usando lenguaje natural.
¿Qué puedes hacer con Couchbase MCP?
Pídele a tu asistente que inspeccione la salud del clúster, explore esquemas, ejecute consultas SQL++ y administre documentos en tu clúster de Couchbase.
- Ejecutar consultas SQL++ — Pídele a tu asistente que consulte datos con
run_sql_plus_plus_query, con ámbito automático a un bucket y colección. - Explorar esquema — Descubre buckets, scopes y colecciones mediante
get_buckets_in_clusteryget_schema_for_collection. - Administrar documentos — Lee, actualiza o elimina documentos por ID con
get_document_by_idyupsert_document_by_id. - Verificar salud del clúster — Comprueba la conectividad y el estado de los servicios con
test_cluster_connectionyget_cluster_health_and_services. - Optimizar índices — Lista índices y obtén recomendaciones mediante
list_indexesyget_index_advisor_recommendations. - Analizar rendimiento de consultas — Encuentra consultas lentas o no selectivas con
get_longest_running_queriesyget_queries_using_primary_index.
Documentación
Servidor MCP de Couchbase
Couchbase MCP Server es un servidor MCP auto-gestionado que permite a los agentes de IA conectarse e interactuar con datos en clústeres de Couchbase, ya sea alojados en Capella o auto-gestionados. Proporciona herramientas en categorías que incluyen Salud del Clúster, Esquema de Datos, Clave-Valor, Consultas y Rendimiento, con controles de seguridad mediante modo de solo lectura y desactivación detallada de herramientas. Soporta transportes STDIO y HTTP Streamable.
El servidor MCP de Couchbase se distribuye como un paquete de Python Package Index (PyPI) y a través de Docker. El soporte empresarial para Couchbase MCP Server está disponible mediante la licencia de Couchbase AI Data Plane, que también autoriza el uso y soporte empresarial de Couchbase Agent Memory y Couchbase Agent Catalog.
Para la documentación completa, visite mcp-server.couchbase.com.
Características/Herramientas
Herramientas de configuración y salud del clúster
| Nombre de la Herramienta | Descripción |
|---|---|
get_server_configuration_status | Obtener el estado del servidor y la configuración sin conectarse al clúster: informa el modo de solo lectura, herramientas desactivadas/que requieren confirmación, configuración de OAuth y la configuración de registro resuelta |
test_cluster_connection | Verificar las credenciales del clúster conectándose al clúster |
get_cluster_health_and_services | Obtener el estado de salud del clúster y la lista de todos los servicios en ejecución |
Herramientas de descubrimiento de modelo de datos y esquema
| Nombre de la Herramienta | Descripción |
|---|---|
get_buckets_in_cluster | Obtener una lista de todos los buckets en el clúster |
get_scopes_in_bucket | Obtener una lista de todos los scopes en el bucket especificado |
get_collections_in_scope | Obtener una lista de todas las colecciones en un scope y bucket especificados. Nota: esta herramienta requiere que el clúster tenga el servicio Query. |
get_scopes_and_collections_in_bucket | Obtener una lista de todos los scopes y colecciones en el bucket especificado |
get_schema_for_collection | Obtener la estructura de una colección |
create_scope | Crear un nuevo scope en un bucket (Couchbase Server 7.6+ y Capella). Desactivada por defecto cuando CB_MCP_READ_ONLY_MODE=true. |
create_collection | Crear una nueva colección en un scope existente (Couchbase Server 7.6+ y Capella). Desactivada por defecto cuando CB_MCP_READ_ONLY_MODE=true. |
delete_scope | Eliminar un scope y todas sus colecciones de un bucket — permanente. Desactivada por defecto cuando CB_MCP_READ_ONLY_MODE=true. |
delete_collection | Eliminar una colección y todos sus documentos de un scope — permanente. Desactivada por defecto cuando CB_MCP_READ_ONLY_MODE=true. |
Herramientas de operaciones KV de documentos
| Nombre de la Herramienta | Descripción |
|---|---|
get_document_by_id | Obtener un documento por ID de un scope y colección especificados |
lookup_subdocument | Consultar partes de un documento (campos específicos, comprobaciones de existencia o conteos de arreglos/objetos) por ruta sin recuperar todo el documento |
upsert_document_by_id | Actualizar o insertar un documento por ID en un scope y colección especificados. Desactivada por defecto cuando CB_MCP_READ_ONLY_MODE=true. |
insert_document_by_id | Insertar un nuevo documento por ID (falla si el documento existe). Desactivada por defecto cuando CB_MCP_READ_ONLY_MODE=true. |
replace_document_by_id | Reemplazar un documento existente por ID (falla si el documento no existe). Desactivada por defecto cuando CB_MCP_READ_ONLY_MODE=true. |
delete_document_by_id | Eliminar un documento por ID de un scope y colección especificados. Desactivada por defecto cuando CB_MCP_READ_ONLY_MODE=true. |
mutate_subdocument | Modificar partes de un documento existente (actualizar/insertar, insertar, reemplazar, eliminar, operaciones de arreglos, contadores) por ruta sin reescribir todo el documento. Desactivada por defecto cuando CB_MCP_READ_ONLY_MODE=true. |
Herramientas de consulta e indexación
| Nombre de la Herramienta | Descripción |
|---|---|
list_indexes | Listar todos los índices en el clúster con sus definiciones, con filtrado opcional por bucket, scope, colección y nombre de índice. Establezca return_raw_index_stats=true para devolver la información de índice sin procesar. |
get_index_advisor_recommendations | Obtener recomendaciones de índice del Asesor de Índices de Couchbase para una consulta SQL++ determinada y optimizar el rendimiento de la consulta |
create_index | Crear un índice secundario GSI escalar (no vectorial) en una colección. Diferido por defecto — llame a build_index después para construirlo. Desactivada por defecto cuando CB_MCP_READ_ONLY_MODE=true. |
build_index | Activar la construcción de todos los índices diferidos en una colección. Desactivada por defecto cuando CB_MCP_READ_ONLY_MODE=true. |
drop_index | Eliminar un índice GSI (escalar o vectorial) de una colección. Desactivada por defecto cuando CB_MCP_READ_ONLY_MODE=true. |
run_sql_plus_plus_query | Ejecutar una consulta SQL++ en un scope especificado. Las consultas se limitan automáticamente al bucket y scope especificados, así que use los nombres de colección directamente (por ejemplo, SELECT * FROM users en lugar de SELECT * FROM bucket.scope.users).CB_MCP_READ_ONLY_MODE es true por defecto, lo que significa que todas las operaciones de escritura (KV, Consulta, gestión de scopes/colecciones y gestión de índices) están desactivadas. Cuando está habilitado, las herramientas de escritura KV, gestión de colecciones e índices no se cargan y las consultas SQL++ que modifican datos están bloqueadas. |
explain_sql_plus_plus_query | Generar y evaluar un plan EXPLAIN para una consulta SQL++. Devuelve metadatos de la consulta, plan extraído y hallazgos de evaluación del plan. |
Herramientas de análisis de rendimiento de consultas
| Nombre de la Herramienta | Descripción |
|---|---|
get_longest_running_queries | Obtener las consultas de mayor duración por tiempo de servicio promedio |
get_most_frequent_queries | Obtener las consultas ejecutadas con más frecuencia |
get_queries_with_largest_response_sizes | Obtener las consultas con los tamaños de respuesta más grandes |
get_queries_with_large_result_count | Obtener las consultas con los conteos de resultados más grandes |
get_queries_using_primary_index | Obtener las consultas que utilizan un índice primario (posible problema de rendimiento) |
get_queries_not_using_covering_index | Obtener las consultas que no utilizan un índice de cobertura |
get_queries_not_selective | Obtener las consultas que no son selectivas (los escaneos de índice devuelven muchos más documentos que el resultado final) |
Requisitos previos
- Python 3.10 o superior.
- Un clúster de Couchbase en ejecución. La forma más fácil de empezar es usar el nivel gratuito de Capella, que es una versión completamente gestionada del servidor Couchbase. Puede seguir las instrucciones para importar uno de los conjuntos de datos de muestra o importar el suyo propio.
- uv instalado para ejecutar el servidor.
- Un cliente MCP como Claude Desktop instalado para conectar el servidor a Claude. Las instrucciones se proporcionan para Claude Desktop y Cursor. También se pueden usar otros clientes MCP.
Configuración
El servidor MCP se puede ejecutar desde el paquete PyPI preconstruido o desde el código fuente usando uv.
Ejecución desde PyPI
Publicamos un paquete PyPI preconstruido para el servidor MCP.
Configuración del servidor usando paquete preconstruido para clientes MCP
Autenticación básica
{
"mcpServers": {
"couchbase": {
"command": "uvx",
"args": ["couchbase-mcp-server"],
"env": {
"CB_CONNECTION_STRING": "couchbases://connection-string",
"CB_USERNAME": "username",
"CB_PASSWORD": "password"
}
}
}
}
o
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"
}
}
}
}
Nota: Si tiene otros servidores MCP en uso en el cliente, puede agregarlo al objeto
mcpServersexistente.
Ejecución desde el código fuente
El servidor MCP se puede ejecutar desde el código fuente utilizando este repositorio.
Clonar el repositorio en su máquina local
git clone https://github.com/couchbase/mcp-server-couchbase.git
Configuración del servidor usando código fuente para clientes MCP
Esta es la configuración común para los clientes MCP como 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"
}
}
}
}
Nota:
path/to/cloned/repo/mcp-server-couchbase/debe ser la ruta al repositorio clonado en su máquina local. ¡No olvide la barra diagonal al final!
Nota: Si tiene otros servidores MCP en uso en el cliente, puede agregarlo al objeto
mcpServersexistente.
Configuración adicional para el servidor MCP
El servidor se puede configurar usando variables de entorno o argumentos de línea de comandos:
| Variable de entorno | Argumento CLI | Descripción | Predeterminado |
|---|---|---|---|
CB_CONNECTION_STRING | --connection-string | Cadena de conexión al clúster de Couchbase | Requerido |
CB_USERNAME | --username | Nombre de usuario con acceso a los buckets requeridos para autenticación básica | Requerido (o se necesitan Certificado de Cliente y Clave para mTLS) |
CB_PASSWORD | --password | Contraseña para autenticación básica | Requerido (o se necesitan Certificado de Cliente y Clave para mTLS) |
CB_CLIENT_CERT_PATH | --client-cert-path | Ruta al archivo de certificado de cliente para autenticación mTLS | Requerido si se usa mTLS (o se requieren Nombre de usuario y Contraseña) |
CB_CLIENT_KEY_PATH | --client-key-path | Ruta al archivo de clave de cliente para autenticación mTLS | Requerido si se usa mTLS (o se requieren Nombre de usuario y Contraseña) |
CB_CA_CERT_PATH | --ca-cert-path | Ruta al certificado raíz del servidor para TLS si el servidor está configurado con un certificado autofirmado/no confiable. No será necesario si se conecta a Capella | |
CB_MCP_READ_ONLY_MODE | --read-only-mode | Evitar todas las modificaciones de datos (KV, Query, gestión de alcances/colecciones y gestión de índices). Cuando está habilitado, las herramientas de escritura de KV, gestión de colecciones e índices no se cargan. | true |
CB_MCP_TRANSPORT | --transport | Modo de transporte: stdio, http, sse | stdio |
CB_MCP_HOST | --host | Host para modos de transporte HTTP/SSE | 127.0.0.1 |
CB_MCP_PORT | --port | Puerto para modos de transporte HTTP/SSE | 8000 |
CB_MCP_DISABLED_TOOLS | --disabled-tools | Herramientas a deshabilitar (ver Deshabilitar herramientas) | Ninguna |
CB_MCP_CONFIRMATION_REQUIRED_TOOLS | --confirmation-required-tools | Herramientas que requieren confirmación explícita del usuario antes de la ejecución mediante elicitación de MCP (ver Herramientas que requieren elicitación/confirmación) | Ninguna |
CB_MCP_LOG_LEVEL | --log-level | Nivel de registro para el servidor MCP: off, debug, info, warning, error (ver Registro) | info |
CB_MCP_LOG_SINKS | --log-sinks | Destinos de registro separados por comas: stderr, file, o ambos (ver Registro) | stderr |
CB_MCP_LOG_FILE | --log-file | Ruta base para archivos de registro por nivel (solo se usa cuando el sumidero file está habilitado) | mcp_server.log |
CB_MCP_LOG_ROTATION_MAX_SIZE_MB | --log-rotation-max-size-mb | Tamaño máximo global en MB por archivo de registro antes de que rote, heredado por cada nivel a menos que se anule. 0 no es válido y se revierte al valor predeterminado con una advertencia al inicio | 1 (1 MB) |
CB_MCP_LOG_MAX_BYTES | --log-max-bytes | Obsoleto — use CB_MCP_LOG_ROTATION_MAX_SIZE_MB (MB). Tamaño de rotación global en bytes, aún respetado por compatibilidad hacia atrás; se ignora cuando CB_MCP_LOG_ROTATION_MAX_SIZE_MB también está configurado | Sin establecer |
CB_MCP_LOG_ERROR_ROTATION_MAX_SIZE_MB | --log-error-rotation-max-size-mb | Tamaño de rotación en MB para el archivo de registro ERROR; anula CB_MCP_LOG_ROTATION_MAX_SIZE_MB para ERROR | Hereda CB_MCP_LOG_ROTATION_MAX_SIZE_MB |
CB_MCP_LOG_WARNING_ROTATION_MAX_SIZE_MB | --log-warning-rotation-max-size-mb | Tamaño de rotación en MB para el archivo de registro WARNING; anula CB_MCP_LOG_ROTATION_MAX_SIZE_MB para WARNING | Hereda CB_MCP_LOG_ROTATION_MAX_SIZE_MB |
CB_MCP_LOG_INFO_ROTATION_MAX_SIZE_MB | --log-info-rotation-max-size-mb | Tamaño de rotación en MB para el archivo de registro INFO; anula CB_MCP_LOG_ROTATION_MAX_SIZE_MB para INFO | Hereda CB_MCP_LOG_ROTATION_MAX_SIZE_MB |
CB_MCP_LOG_DEBUG_ROTATION_MAX_SIZE_MB | --log-debug-rotation-max-size-mb | Tamaño de rotación en MB para el archivo de registro DEBUG; anula CB_MCP_LOG_ROTATION_MAX_SIZE_MB para DEBUG | Hereda CB_MCP_LOG_ROTATION_MAX_SIZE_MB |
CB_MCP_LOG_RETENTION_BACKUP_COUNT | --log-retention-backup-count | Archivos de respaldo rotados conservados por archivo de registro de nivel (excluyendo el archivo activo), aplicado a cada nivel a menos que se anule. 0 conserva solo el archivo activo (ver Registro) | 1 |
CB_MCP_LOG_ERROR_RETENTION_BACKUP_COUNT | --log-error-retention-backup-count | Respaldos rotados conservados para el archivo de registro ERROR; anula el conteo global para ERROR | Hereda CB_MCP_LOG_RETENTION_BACKUP_COUNT |
CB_MCP_LOG_WARNING_RETENTION_BACKUP_COUNT | --log-warning-retention-backup-count | Respaldos rotados conservados para el archivo de registro WARNING; anula el conteo global para WARNING | Hereda CB_MCP_LOG_RETENTION_BACKUP_COUNT |
CB_MCP_LOG_INFO_RETENTION_BACKUP_COUNT | --log-info-retention-backup-count | Respaldos rotados conservados para el archivo de registro INFO; anula el conteo global para INFO | Hereda CB_MCP_LOG_RETENTION_BACKUP_COUNT |
CB_MCP_LOG_DEBUG_RETENTION_BACKUP_COUNT | --log-debug-retention-backup-count | Respaldos rotados conservados para el archivo de registro DEBUG; anula el conteo global para DEBUG | Hereda CB_MCP_LOG_RETENTION_BACKUP_COUNT |
CB_MCP_OAUTH_JWT_JWKS_URI | --oauth-jwks-uri | Punto final JWKS del proveedor de identidad utilizado para verificar JWTs de portador. Habilita OAuth cuando se configura con el emisor y la audiencia (ver Autorización OAuth 2.1) | Ninguna |
CB_MCP_OAUTH_JWT_ISSUER | --oauth-issuer | Reclamación iss esperada del JWT. Requerida para habilitar OAuth | Ninguna |
CB_MCP_OAUTH_JWT_AUDIENCE | --oauth-audience | Reclamación aud esperada del JWT. Requerida para habilitar OAuth | Ninguna |
CB_MCP_OAUTH_JWT_ALGORITHM | --oauth-algorithm | Algoritmo de firma JWT: uno de RS256/384/512, ES256/384/512, PS256/384/512 | RS256 |
CB_MCP_OAUTH_MCP_BASE_URL | --oauth-mcp-base-url | URL base pública de este servidor. Cuando se configura, publica los Metadatos de Recurso Protegido RFC 9728 para que los clientes compatibles con PRM puedan descubrir el IdP | Ninguna |
CB_MCP_OAUTH_SCOPE_READ_LABEL | --oauth-scope-read-label | Anular la etiqueta de alcance OAuth tratada como acceso de 'lectura' (anunciada en PRM y comparada con la reclamación scope/scp del token). Úselo cuando su IdP no pueda emitir la forma canónica | couchbase-mcp:read |
CB_MCP_OAUTH_SCOPE_WRITE_LABEL | --oauth-scope-write-label | Anular la etiqueta de alcance OAuth tratada como acceso de 'escritura'; misma semántica que la etiqueta de lectura | couchbase-mcp:write |
Configuración del Modo de Solo Lectura
CB_MCP_READ_ONLY_MODE es el único interruptor que controla las operaciones de escritura:
- Cuando
true(predeterminado): Todas las operaciones de escritura (KV, Query, gestión de alcances/colecciones y gestión de índices) están deshabilitadas. Las herramientas de escritura KV (upsert, insert, replace, delete, sub-document mutate), las herramientas de escritura de gestión de alcances/colecciones (create_scope, create_collection, delete_scope, delete_collection) y las herramientas de escritura de índices (create_index, build_index, drop_index) no se cargan y no estarán disponibles para el LLM, y las consultas SQL++ que modifican datos o estructura están bloqueadas. - Cuando
false: Las herramientas de escritura de KV, gestión de alcances/colecciones e índices se cargan y se permiten consultas de modificación de datos/estructura SQL++.
Este es el valor predeterminado seguro recomendado para evitar modificaciones de datos inadvertidas por parte de los LLM.
Nota: Para la autenticación, necesita el Nombre de usuario y Contraseña o las rutas del Certificado de Cliente y clave. Opcionalmente, puede especificar la ruta del certificado raíz de CA que se usará para validar los certificados del servidor. Si se especifican tanto la ruta del Certificado de Cliente y clave como el nombre de usuario y contraseña, los certificados de cliente se usarán para la autenticación.
Deshabilitar herramientas
Puede deshabilitar herramientas específicas para evitar que se carguen y se expongan al cliente MCP. Las herramientas deshabilitadas no aparecerán en el descubrimiento de herramientas y no podrán ser invocadas por el LLM.
Formatos admitidos
Lista separada por comas:
# 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
Ruta de archivo (un nombre de herramienta por línea):
# Environment variable
CB_MCP_DISABLED_TOOLS=disabled_tools.txt
# Command line
uvx couchbase-mcp-server --disabled-tools disabled_tools.txt
Formato de archivo (p. ej., disabled_tools.txt):
# Write operations
upsert_document_by_id
delete_document_by_id
# Index advisor
get_index_advisor_recommendations
Las líneas que comienzan con # se tratan como comentarios y se ignoran.
Ejemplos de configuración del cliente MCP
Usando lista separada por comas:
{
"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"
}
}
}
}
Usando ruta de archivo (recomendado para muchas herramientas):
{
"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"
}
}
}
}
Nota de seguridad importante
Advertencia: Deshabilitar herramientas por sí solo no garantiza que ciertas operaciones no puedan realizarse. Los permisos RBAC (Control de Acceso Basado en Roles) del usuario de la base de datos subyacente son el control de seguridad autoritativo.
Por ejemplo, incluso si deshabilita
upsert_document_by_idydelete_document_by_id, las modificaciones de datos aún pueden ocurrir a través de la herramientarun_sql_plus_plus_queryusando sentencias DML de SQL++ (INSERT, UPDATE, DELETE, MERGE) a menos que:
- El
CB_MCP_READ_ONLY_MODEesté configurado entrue(predeterminado), O- El usuario de la base de datos carezca de los permisos RBAC necesarios para la modificación de datos
Mejores prácticas: Configure siempre permisos RBAC apropiados en sus credenciales de usuario de Couchbase como medida de seguridad principal. Use la deshabilitación de herramientas como una capa adicional para guiar el comportamiento del LLM y reducir la superficie de ataque, no como el único control de seguridad.
Elicitación/Confirmación para llamadas a herramientas
Puede requerir confirmación explícita del usuario para herramientas específicas antes de la ejecución (cuando el cliente MCP admite elicitación).
CB_MCP_CONFIRMATION_REQUIRED_TOOLS / --confirmation-required-tools admite estos formatos:
- Lista separada por comas
- Ruta de archivo (un nombre de herramienta por línea, se admiten comentarios
#)
Ejemplo:
# 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
Cuando se invoca una herramienta listada:
- Si el cliente admite elicitación, se solicita al usuario que confirme.
- Si el cliente no admite elicitación, la herramienta se ejecuta sin confirmación por compatibilidad hacia atrás.
También puede verificar la versión del servidor usando:
uvx couchbase-mcp-server --version
Registro
El servidor MCP registra en stderr de forma predeterminada. El registro se configura con las variables CB_MCP_LOG_* listadas en Configuración adicional:
CB_MCP_LOG_LEVEL— cuánto se registra:info(el predeterminado) registra eventos del ciclo de vida e invocaciones de herramientas,debugagrega detalles internos verbosos, yoffdeshabilita todo el registro.CB_MCP_LOG_SINKS— a dónde van los registros:stderr(el predeterminado), archivos rotativos por nivel (file), o ambos. Confile, se escribe un archivo por nivel (por ejemplomcp_server.info.logymcp_server.error.log) en la ruta establecida porCB_MCP_LOG_FILE.- Tamaño de rotación —
CB_MCP_LOG_ROTATION_MAX_SIZE_MBes el tamaño global (en MB) en el que cada archivo por nivel rota. Anule niveles individuales conCB_MCP_LOG_<LEVEL>_ROTATION_MAX_SIZE_MB(ERROR/WARNING/INFO/DEBUG), también en MB, que heredan el global cuando no se configuran. Un tamaño de0(global o por nivel) no es válido y se revierte al predeterminado (1 MB) con una advertencia al inicio.CB_MCP_LOG_MAX_BYTES(bytes) está obsoleto pero aún se respeta por compatibilidad hacia atrás; se ignora cuandoCB_MCP_LOG_ROTATION_MAX_SIZE_MBtambién está configurado, e imprime una advertencia de obsolescencia al inicio. - Retención —
CB_MCP_LOG_RETENTION_BACKUP_COUNTestablece cuántos respaldos rotados se conservan por nivel (excluyendo el archivo activo); el predeterminado de1preserva el comportamiento anterior. Anule niveles individuales conCB_MCP_LOG_<LEVEL>_RETENTION_BACKUP_COUNT(ERROR/WARNING/INFO/DEBUG), que heredan el valor global cuando no se configuran. Establezca un conteo en0para conservar solo el archivo activo para ese nivel — aún está limitado por el tamaño de rotación (se restablece en la rotación en lugar de respaldarse). - Instantánea de configuración del servidor — cuando el sumidero
fileestá activo, un registro único (SO, Python, versiones de dependencias, transporte, configuración de registro resuelta y configuración del servidor redactada) se escribe como JSON en un archivomcp_server_config.log.jsondedicado (derivado de la baseCB_MCP_LOG_FILE). Se sobrescribe en cada inicio, por lo que el soporte siempre tiene la configuración actual y nunca se sale de un registro rotativo.
# 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
Para más detalles, consulte la documentación.
Configuración específica del cliente
Claude Desktop
Siga los pasos a continuación para usar el servidor MCP de Couchbase con el cliente MCP de Claude Desktop
-
El servidor MCP ahora se puede agregar a Claude Desktop editando el archivo de configuración. Se pueden encontrar instrucciones más detalladas en la guía de inicio rápido de MCP.
- En Mac, el archivo de configuración se encuentra en
~/Library/Application Support/Claude/claude_desktop_config.json - En Windows, el archivo de configuración se encuentra en
%APPDATA%\Claude\claude_desktop_config.jsonAbre el archivo de configuración y agrega la configuración a la secciónmcpServers.
- En Mac, el archivo de configuración se encuentra en
-
Reinicia Claude Desktop para aplicar los cambios.
-
Ahora puedes usar el servidor en Claude Desktop para ejecutar consultas en el clúster de Couchbase usando lenguaje natural y realizar operaciones CRUD en documentos.
Registros
Los registros de Claude Desktop se pueden encontrar en las siguientes ubicaciones:
- macOS: ~/Library/Logs/Claude
- Windows: %APPDATA%\Claude\Logs
Los registros se pueden utilizar para diagnosticar problemas de conexión u otros problemas con la configuración de tu servidor MCP. Para más detalles, consulta la documentación oficial.
Cursor
Sigue los pasos a continuación para usar el servidor MCP de Couchbase con Cursor:
-
Instala Cursor en tu máquina.
-
En Cursor, ve a Cursor > Configuración de Cursor > Herramientas e integraciones > Herramientas MCP. También revisa la documentación sobre cómo configurar el servidor MCP desde Cursor.
-
Especifica la misma configuración manualmente, o usa el enlace de Instalar en Cursor de un clic. Es posible que necesites agregar la configuración del servidor bajo una clave principal
mcpServers.Nota: El enlace de instalación usa valores de marcador de posición de los ejemplos de configuración anteriores. Actualiza la cadena de conexión y las credenciales después de la instalación.
-
Guarda la configuración.
-
Verás couchbase como un servidor agregado en la lista de servidores MCP. Actualiza para ver si el servidor está habilitado.
-
Ahora puedes usar el servidor MCP de Couchbase en Cursor para consultar tu clúster de Couchbase usando lenguaje natural y realizar operaciones CRUD en documentos.
Para más detalles sobre la integración de MCP con Cursor, consulta la documentación oficial de MCP de Cursor.
Registros
En el panel inferior de Cursor, haz clic en "Output" y selecciona "Cursor MCP" en el menú desplegable para ver los registros del servidor. Esto puede ayudar a diagnosticar problemas de conexión u otros problemas con la configuración de tu servidor MCP.
Editor Windsurf
Sigue los pasos a continuación para usar el servidor MCP de Couchbase con Windsurf Editor.
-
Instala Windsurf Editor en tu máquina.
-
En Windsurf Editor, navega a Paleta de comandos > Panel de configuración de MCP de Windsurf o Windsurf - Configuración > Avanzado > Cascade > Servidores de Protocolo de Contexto de Modelo (MCP). Para más detalles sobre la configuración, consulta la documentación oficial.
-
Haz clic en Agregar servidor y luego en Agregar servidor personalizado. En la configuración que se abre en el editor, agrega la configuración del servidor MCP de Couchbase de arriba.
-
Guarda la configuración.
-
Verás couchbase como un servidor agregado en la lista de servidores MCP bajo Configuración avanzada. Actualiza para ver si el servidor está habilitado.
-
Ahora puedes usar el servidor MCP de Couchbase en Windsurf Editor para consultar tu clúster de Couchbase usando lenguaje natural y realizar operaciones CRUD en documentos.
Para más detalles sobre la integración de MCP con Windsurf Editor, consulta la documentación oficial de MCP de Windsurf.
VS Code
Sigue los pasos a continuación para usar el servidor MCP de Couchbase con VS Code.
-
Instala VS Code
-
A continuación hay un par de formas de configurar el servidor MCP.
-
Para una configuración de servidor de espacio de trabajo:
- Crea un nuevo archivo en el espacio de trabajo como .vscode/mcp.json.
- Agrega la configuración y guarda el archivo.
-
Para la configuración de servidor global:
- Ejecuta MCP: Abrir configuración de usuario en la Paleta de comandos (
Ctrl+Shift+PoCmd+Shift+P) - Agrega la configuración y guarda el archivo.
- Ejecuta MCP: Abrir configuración de usuario en la Paleta de comandos (
-
Nota: VS Code usa
serverscomo propiedad JSON de nivel superior en los archivos mcp.json para definir servidores MCP, mientras que Cursor usamcpServerspara la configuración equivalente. Revisa las configuraciones de cliente de VS Code para cualquier cambio o detalle adicional. A continuación se proporciona un ejemplo de configuración de VS Code.{ "servers": { "couchbase": { "command": "uvx", "args": ["couchbase-mcp-server"], "env": { "CB_CONNECTION_STRING": "couchbases://connection-string", "CB_USERNAME": "username", "CB_PASSWORD": "password" } } } }
-
-
Una vez que guardes el archivo, el servidor se inicia y aparece una pequeña lista de acciones con
Running|Stop|n Tools|More... -
Haz clic en las opciones de la lista para
Start/Stop/administrar el servidor. -
Ahora puedes usar el servidor MCP de Couchbase en VS Code para consultar tu clúster de Couchbase usando lenguaje natural y realizar operaciones CRUD en documentos.
Registros:
En la Paleta de comandos (Ctrl+Shift+P o Cmd+Shift+P),
- ejecuta el comando MCP: Listar servidores y elige el servidor couchbase
- elige "Mostrar salida" para ver sus registros en la pestaña Salida.
IDE de JetBrains
Sigue los pasos a continuación para usar el servidor MCP de Couchbase con IDE de JetBrains
- Instala cualquiera de los IDE de JetBrains
- Instala cualquiera de los complementos de JetBrains - AI Assistant o Junie
- Navega a Configuración > Herramientas > AI Assistant o Junie > Servidor MCP
- Haz clic en "+" para agregar la configuración de MCP de Couchbase y haz clic en Guardar.
- Verás el servidor MCP de Couchbase agregado a la lista de servidores. Una vez que hagas clic en Aplicar, el servidor MCP de Couchbase se inicia y al pasar el cursor sobre el estado muestra todas las herramientas disponibles.
- Ahora puedes usar el servidor MCP de Couchbase en los IDE de JetBrains para consultar tu clúster de Couchbase usando lenguaje natural y realizar operaciones CRUD en documentos.
Registros: El archivo de registro se puede explorar en Ayuda > Mostrar registro en Finder (Explorador) > mcp > couchbase
Modo de transporte Streamable HTTP
El servidor MCP se puede ejecutar en modo de transporte Streamable HTTP que permite que múltiples clientes se conecten a la misma instancia del servidor a través de HTTP. Verifica si tu cliente MCP admite el transporte streamable http antes de intentar conectarte al servidor MCP en este modo.
Nota: La autorización OAuth 2.1 es compatible con este transporte. Ver Autorización OAuth 2.1. Sin OAuth configurado, el punto final HTTP no está autenticado.
Uso
Por defecto, el servidor MCP se ejecutará en el puerto 8000 pero esto se puede configurar usando la variable de entorno --port o CB_MCP_PORT.
uvx couchbase-mcp-server \
--connection-string='<couchbase_connection_string>' \
--username='<database_username>' \
--password='<database_password>' \
--read-only-mode=true \
--transport=http
El servidor estará disponible en http://localhost:8000/mcp. Esto se puede usar en clientes MCP que admiten el modo de transporte streamable http, como Cursor.
Configuración de cliente MCP
{
"mcpServers": {
"couchbase-http": {
"url": "http://localhost:8000/mcp"
}
}
}
Modo de transporte SSE
Existe la opción de ejecutar el servidor MCP en modo de transporte Eventos enviados por el servidor (SSE).
Nota: El modo SSE ha sido obsoleto por MCP. Contamos con soporte para Streamable HTTP.
Uso SSE
Por defecto, el servidor MCP se ejecutará en el puerto 8000 pero esto se puede configurar usando la variable de entorno --port o CB_MCP_PORT.
uvx couchbase-mcp-server \
--connection-string='<couchbase_connection_string>' \
--username='<database_username>' \
--password='<database_password>' \
--read-only-mode=true \
--transport=sse
El servidor estará disponible en http://localhost:8000/sse. Esto se puede usar en clientes MCP que admiten el modo de transporte SSE, como Cursor.
Configuración de cliente MCP para SSE
{
"mcpServers": {
"couchbase-sse": {
"url": "http://localhost:8000/sse"
}
}
}
Autorización OAuth 2.1
Cuando se ejecuta con --transport=http, el servidor MCP puede actuar como un servidor de recursos OAuth 2.1: valida los JWT de portador entrantes contra el JWKS de tu proveedor de identidad. Es independiente del proveedor (cualquier proveedor OAuth 2.1 / OIDC que publique un JWKS — Auth0, Okta, Keycloak, AWS Cognito, Microsoft Entra, etc.) y no emite tokens ni gestiona usuarios. La configuración de OAuth se ignora en stdio.
OAuth se configura con las variables CB_MCP_OAUTH_* listadas en Configuración adicional:
- OAuth se activa solo cuando las tres
CB_MCP_OAUTH_JWT_JWKS_URI,CB_MCP_OAUTH_JWT_ISSUERyCB_MCP_OAUTH_JWT_AUDIENCEestán configuradas; configurar solo algunas falla al inicio. - Configurar
CB_MCP_OAUTH_MCP_BASE_URLadicionalmente publica metadatos de recursos protegidos RFC 9728 para que los clientes compatibles con PRM puedan descubrir el servidor de autorización. - El acceso está controlado por dos alcances leídos del reclamo
scope/scpdel token:couchbase-mcp:read(herramientas de lectura, incluyendo SQL++) ycouchbase-mcp:write(herramientas de escritura: mutaciones de KV, gestión de ámbitos/colecciones y gestión de índices). El acceso completo requiere ambos. Si tu IdP no puede emitir esas etiquetas canónicas, anúlalas conCB_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>'
Para detalles completos, consulta la documentación.
Imagen Docker
El servidor MCP también se puede compilar y ejecutar como un contenedor Docker. Las imágenes precompiladas se pueden encontrar en DockerHub o se pueden extraer mediante docker pull docker.io/couchbase/mcp-server:latest.
Alternativamente, formamos parte del Catálogo MCP de Docker.
Compilación de la imagen
docker build -t mcp/couchbase-src .
Compilación con argumentos
Si deseas compilar con los argumentos de compilación para el hash de confirmación y el tiempo de compilación, puedes compilar usando: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 .
Alternativamente, usa el script de compilación proporcionado:
# Build with default image name (mcp/couchbase-src)
./build.sh
# Build with custom image name
./build.sh my-custom/image-name
Este script automáticamente:
- Acepta un parámetro de nombre de imagen opcional (por defecto
mcp/couchbase-src) - Genera el hash de confirmación de git y la marca de tiempo de compilación
- Crea múltiples etiquetas útiles (
latest,<short-commit>) - Muestra información de compilación y resultados
- Usa los mismos argumentos que las compilaciones de CI/CD
Verificar etiquetas de imagen:
# 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
Ejecución
El servidor MCP se puede ejecutar con las variables de entorno utilizadas para configurar los ajustes de Couchbase. Las variables de entorno son las mismas que se describen en la sección de Configuración adicional.
Contenedor Docker independiente
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
Las variables de entorno CB_MCP_PORT y CB_MCP_HOST solo son aplicables en el caso de modos de transporte HTTP como http y sse.
Docker: Configuración de cliente MCP
La imagen Docker se puede usar en modo de transporte stdio con la siguiente configuración.
{
"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"
]
}
}
}
Notas
- El valor de
couchbase_connection_stringdepende de si el servidor de Couchbase se está ejecutando en la misma máquina host, en otro contenedor Docker, o en un host remoto. Si tu servidor de Couchbase se está ejecutando en tu máquina host, tu cadena de conexión probablemente tendría la formacouchbase://host.docker.internal. Para detalles, consulta la documentación de Docker. - Puedes especificar la red del contenedor usando la opción
--network=<your_network>. La red que elijas depende de tu entorno; el valor predeterminado esbridge. Para detalles, consulta los controladores de red en Docker.
Riesgos asociados con los LLM
- El uso de modelos de lenguaje de gran tamaño y tecnología similar implica riesgos, incluida la posibilidad de salidas inexactas o dañinas.
- Couchbase no revisa ni evalúa la calidad o precisión de dichas salidas, y tales salidas pueden no reflejar las opiniones de Couchbase.
- Eres el único responsable de decidir si usar modelos de lenguaje de gran tamaño y tecnología relacionada, y de cumplir con cualquier término de licencia, términos de uso y las políticas de tu organización que regulan su uso.
Recolección de datos de uso
Este producto recopila automáticamente datos de uso y rendimiento (como el nombre y la versión del producto) e información del navegador (como la dirección IP) (colectivamente, "Datos de uso"). Couchbase utiliza los Datos de uso, junto con otros datos que puedas proporcionar a Couchbase (como tu nombre de usuario o dirección de correo electrónico), para desarrollar y mejorar nuestros productos, así como para informar nuestros programas de ventas y marketing. No accedemos ni recopilamos ningún dato que almacenes en los productos de Couchbase. Usamos los Datos de uso para comprender los patrones de uso agregados y hacer que nuestros productos sean más útiles para ti. Para obtener más información sobre cómo Couchbase recopila, protege y procesa la información, consulta la Política de Privacidad de Couchbase disponible en https://www.couchbase.com/privacy-policy.
Consejos para la resolución de problemas
- Asegúrate de que la ruta a tu repositorio del servidor MCP sea correcta en la configuración si se ejecuta desde el código fuente.
- Verifica que tu cadena de conexión de Couchbase, el nombre de usuario de la base de datos, la contraseña o la ruta a los certificados sean correctos.
- Si usas Couchbase Capella, asegúrate de que el clúster sea accesible desde la máquina donde se ejecuta el servidor MCP.
- Comprueba que el usuario de la base de datos tenga los permisos adecuados para acceder al menos a un bucket.
- Confirma que el gestor de paquetes
uvesté correctamente instalado y accesible. Es posible que debas proporcionar la ruta absoluta auv/uvxen el campocommandde la configuración. - Revisa los registros para detectar errores o advertencias que puedan indicar problemas con el servidor MCP. La ubicación de los registros depende de tu cliente MCP.
- Si observas problemas al ejecutar tu servidor MCP desde el código fuente después de actualizar tu repositorio local del servidor MCP, intenta ejecutar
uv syncpara actualizar las dependencias.
Pruebas de integración
Proporcionamos pruebas de integración MCP de alto nivel para verificar que el servidor expone las herramientas esperadas y que se pueden invocar contra un clúster de demostración de Couchbase.
- Exporta las credenciales del clúster de demostración:
CB_CONNECTION_STRINGCB_USERNAMECB_PASSWORD- Opcional:
CB_MCP_TEST_BUCKET(un bucket para sondear durante las pruebas)
- Ejecuta las pruebas:
uv run pytest tests/ -v
👩💻 Contribuciones
¡Agradecemos las contribuciones de la comunidad! Ya sea que quieras corregir errores, agregar funciones o mejorar la documentación, tu ayuda es apreciada.
Si necesitas ayuda, has encontrado un error o quieres contribuir con mejoras, el mejor lugar para hacerlo es aquí mismo: abriendo un issue en GitHub.
Para desarrolladores
Si te interesa contribuir con código o configurar un entorno de desarrollo:
📖 Consulta CONTRIBUTING.md para obtener instrucciones completas de configuración para desarrolladores, que incluyen:
- Configuración del entorno de desarrollo con
uv - Linting y formato de código con Ruff
- Instalación de hooks de pre-commit
- Resumen de la estructura del proyecto
- Flujo de trabajo y prácticas de desarrollo
Inicio rápido para contribuyentes
# 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
📢 Política de soporte
¡Apreciamos sinceramente tu interés en este proyecto! Este proyecto es mantenido por la comunidad de Couchbase, lo que significa que no cuenta con soporte oficial de nuestro equipo de soporte. Sin embargo, nuestros ingenieros están monitoreando y manteniendo activamente este repositorio e intentarán resolver los problemas en la medida de lo posible.
Nuestro portal de soporte no puede ayudar con solicitudes relacionadas con este proyecto, por lo que solicitamos amablemente que todas las consultas se realicen dentro de GitHub.
¡Tu colaboración nos ayuda a avanzar juntos: gracias!