Skip to main content
Glama
celticht32

Couchbase-Analytics-MCP

by celticht32

Couchbase-Analytics-MCP

Un servidor del Protocolo de Contexto de Modelo (MCP) de nivel de producción para el servicio Couchbase Enterprise Analytics. Expone toda la superficie de la API de Analytics como 25 herramientas MCP fuertemente tipadas, con una consola GUI integrada, registro estructurado, métricas de Prometheus, rastreo de OpenTelemetry y una cobertura de pruebas exhaustiva.

Importante: Este servidor está dirigido al servicio de Analytics (motor Apache AsterixDB, SQL++, puerto 8095), no al servicio de consultas de Couchbase (N1QL). Todas las herramientas llaman exclusivamente a cluster.analyticsQuery() y a los endpoints REST /analytics/*.


Matriz de características

Característica

Estado

25 herramientas MCP que cubren la API completa de Analytics

Transporte stdio (Claude Desktop)

Transporte SSE/HTTP (agentes remotos)

Grupo de conexiones (reaper de mín./máx./inactivos)

Autenticación JWT + clave API en endpoint SSE

Registro JSON estructurado (Pino)

Rotación diaria de registros (pino-roll)

Transporte de envío a Loki opcional

Endpoint /metrics de Prometheus

Rastros de OpenTelemetry → Jaeger

Sondas /health/live + /health/ready

Consola GUI de React en /console

Editor SQL++ de Monaco

Explorador de esquemas (árbol de dataverse → dataset)

Inspector de llamadas a herramientas en vivo

Pruebas unitarias (cobertura ≥90%)

Pruebas de integración (Couchbase real)

Pruebas E2E (transporte Supertest SSE)

Imagen Docker multietapa

Docker Compose (CB + Prometheus + Grafana + Jaeger)

Gráfico de Helm

CI/CD de GitHub Actions

Documentación de arquitectura + ADRs

Runbooks operativos


Inicio rápido

Requisitos previos

  • Node.js ≥ 20

  • Docker + Docker Compose

  • Couchbase Server Enterprise ≥ 7.2 con el servicio Analytics habilitado

Desarrollo local (Docker Compose)

git clone https://github.com/your-org/couchbase-analytics-mcp
cd couchbase-analytics-mcp

# Copy and edit environment
cp .env.example .env

# Start Couchbase + MCP server + Prometheus + Grafana + Jaeger
docker-compose up -d

# GUI console: http://localhost:3000/console
# Prometheus:  http://localhost:9091
# Grafana:     http://localhost:3001  (admin/admin)
# Jaeger:      http://localhost:16686

Ejecución contra un clúster de Couchbase existente

npm install

CB_CONNECTION_STRING=couchbase://my-cluster \
CB_USERNAME=Administrator \
CB_PASSWORD=password \
TRANSPORT=stdio \
node packages/mcp-server/dist/index.js

Integración con Claude Desktop

Añadir a ~/Library/Application Support/Claude/claude_desktop_config.json:

{
  "mcpServers": {
    "couchbase-analytics": {
      "command": "node",
      "args": ["/path/to/couchbase-analytics-mcp/packages/mcp-server/dist/index.js"],
      "env": {
        "CB_CONNECTION_STRING": "couchbase://your-cluster",
        "CB_USERNAME": "Administrator",
        "CB_PASSWORD": "your-password",
        "TRANSPORT": "stdio"
      }
    }
  }
}

Variables de entorno

Variable

Predeterminado

Descripción

CB_CONNECTION_STRING

(requerido)

couchbase://host o couchbases://host para TLS

CB_USERNAME

(requerido)

Nombre de usuario RBAC de Couchbase

CB_PASSWORD

(requerido)

Contraseña RBAC de Couchbase

CB_ANALYTICS_PORT

8095

Puerto REST de Analytics (18095 para TLS)

CB_ANALYTICS_TLS

false

Habilitar TLS para llamadas REST

TRANSPORT

stdio

stdio o sse

PORT

3000

Puerto del servidor HTTP (SSE + salud + GUI)

POOL_MIN

2

Conexiones mínimas del grupo

POOL_MAX

10

Conexiones máximas del grupo

POOL_IDLE_TIMEOUT_MS

30000

Umbral de eliminación de conexiones inactivas

QUERY_DEFAULT_TIMEOUT_MS

60000

Tiempo de espera predeterminado de la consulta

LOG_LEVEL

info

trace|debug|info|warn|error|fatal

LOG_FORMAT

json

json|pretty

LOG_FILE_ENABLED

false

Habilitar transporte de archivos

LOG_FILE_PATH

/var/log/cba-mcp/server.log

Ruta del archivo de registro

LOKI_HOST

(opcional)

Endpoint de envío de Loki

METRICS_ENABLED

true

Exponer /metrics

OTEL_ENABLED

false

Habilitar rastreo de OpenTelemetry

JAEGER_ENDPOINT

http://localhost:14268/api/traces

Colector HTTP de Jaeger

JWT_SECRET

(opcional)

Secreto de firma JWT para autenticación SSE

API_KEY

(opcional)

Clave API estática para autenticación SSE

GUI_ENABLED

true

Servir GUI en /console


Referencia de herramientas

Consulte docs/api/TOOLS.md para ver los esquemas completos de entrada/salida.

Herramienta

Grupo

Descripción

analytics_execute

Consulta

Ejecutar sentencia SQL++

analytics_explain

Consulta

Devolver plan de ejecución de consulta

analytics_cancel

Consulta

Cancelar consulta en ejecución

analytics_query_status

Consulta

Comprobar estado de consulta asíncrona

analytics_pending_mutations

Consulta

Retraso de replicación KV→Analytics

analytics_list_dataverses

Esquema

Listar todos los dataverses

analytics_list_datasets

Esquema

Listar datasets

analytics_describe_dataset

Esquema

Descripción del dataset a nivel de campo

analytics_infer_schema

Esquema

INFER DATASET → JSON Schema

analytics_list_indexes

Esquema

Listar índices secundarios de Analytics

analytics_create_dataverse

Dataverse

CREATE DATAVERSE

analytics_drop_dataverse

Dataverse

DROP DATAVERSE

analytics_create_dataset

Dataverse

CREATE DATASET (colección sombra)

analytics_drop_dataset

Dataverse

DROP DATASET

analytics_alter_dataset

Dataverse

Modificar predicado WHERE del dataset

analytics_list_links

Enlaces

Listar enlaces de fuentes de datos

analytics_create_link

Enlaces

Crear enlace CB/S3/Azure/GCS

analytics_alter_link

Enlaces

Actualizar configuración de enlace

analytics_drop_link

Enlaces

Eliminar un enlace

analytics_connect_link

Enlaces

Iniciar ingesta (CONNECT LINK)

analytics_disconnect_link

Enlaces

Pausar ingesta (DISCONNECT LINK)

analytics_create_index

Índices

CREATE índice secundario de Analytics

analytics_drop_index

Índices

DROP índice secundario de Analytics

analytics_analyze_dataset

Índices

Recopilar estadísticas del optimizador

analytics_node_agg_stats

Clúster

Estadísticas de recursos por nodo

analytics_service_health

Clúster

Resumen de salud compuesto

analytics_cluster_config

Clúster

Configuración del servicio Analytics

analytics_set_config_param

Clúster

Mutar parámetro de configuración (protegido)

analytics_restart_node

Clúster

Reiniciar nodo(s) de Analytics (protegido)


Desarrollo

# Install all workspace dependencies
npm install

# Build all packages
npm run build

# Run unit tests with coverage
npm run test:coverage

# Run integration tests (requires Couchbase)
docker-compose up -d couchbase
npm run test:integration -w packages/mcp-server

# Start dev server (hot reload)
npm run dev

# Generate API docs
npm run docs

Política de soporte

¡Agradezco sinceramente su interés en este proyecto! Este proyecto es mantenido por la comunidad. Sin embargo, superviso y mantengo activamente este repositorio e intentaré resolver los problemas de la mejor manera posible.

Todas las consultas deben realizarse a través de GitHub.

Bug reports: Open a GitHub issue
Feature requests: Open a GitHub issue with the "enhancement" label
Questions: Open a GitHub issue

Su colaboración me ayuda a avanzar juntos, ¡gracias! Las solicitudes de extracción y las contribuciones de la comunidad son bienvenidas y alentadas.


Arquitectura

Consulte docs/architecture/ARCHITECTURE.md para ver el diagrama completo de componentes, la descripción del flujo de datos y las decisiones de diseño.

A
license - permissive license
Not graded
quality - not tested
Not graded
maintenance - not tested

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

  • MCP server for managing Prisma Postgres.

  • MCP server providing access to the Scorecard API to evaluate and optimize LLM systems.

  • MCP server for InsForge BaaS — database, storage, edge functions, and deployments

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/celticht32/MCP-Couchbase-Analytics'

If you have feedback or need assistance with the MCP directory API, please join our Discord server