Couchbase-Analytics-MCP
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 | ✅ |
Rastros de OpenTelemetry → Jaeger | ✅ |
Sondas | ✅ |
Consola GUI de React en | ✅ |
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:16686Ejecució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.jsIntegració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 |
| (requerido) |
|
| (requerido) | Nombre de usuario RBAC de Couchbase |
| (requerido) | Contraseña RBAC de Couchbase |
|
| Puerto REST de Analytics (18095 para TLS) |
|
| Habilitar TLS para llamadas REST |
|
|
|
|
| Puerto del servidor HTTP (SSE + salud + GUI) |
|
| Conexiones mínimas del grupo |
|
| Conexiones máximas del grupo |
|
| Umbral de eliminación de conexiones inactivas |
|
| Tiempo de espera predeterminado de la consulta |
|
|
|
|
|
|
|
| Habilitar transporte de archivos |
|
| Ruta del archivo de registro |
| (opcional) | Endpoint de envío de Loki |
|
| Exponer |
|
| Habilitar rastreo de OpenTelemetry |
|
| Colector HTTP de Jaeger |
| (opcional) | Secreto de firma JWT para autenticación SSE |
| (opcional) | Clave API estática para autenticación SSE |
|
| Servir GUI en |
Referencia de herramientas
Consulte docs/api/TOOLS.md para ver los esquemas completos de entrada/salida.
Herramienta | Grupo | Descripción |
| Consulta | Ejecutar sentencia SQL++ |
| Consulta | Devolver plan de ejecución de consulta |
| Consulta | Cancelar consulta en ejecución |
| Consulta | Comprobar estado de consulta asíncrona |
| Consulta | Retraso de replicación KV→Analytics |
| Esquema | Listar todos los dataverses |
| Esquema | Listar datasets |
| Esquema | Descripción del dataset a nivel de campo |
| Esquema | INFER DATASET → JSON Schema |
| Esquema | Listar índices secundarios de Analytics |
| Dataverse | CREATE DATAVERSE |
| Dataverse | DROP DATAVERSE |
| Dataverse | CREATE DATASET (colección sombra) |
| Dataverse | DROP DATASET |
| Dataverse | Modificar predicado WHERE del dataset |
| Enlaces | Listar enlaces de fuentes de datos |
| Enlaces | Crear enlace CB/S3/Azure/GCS |
| Enlaces | Actualizar configuración de enlace |
| Enlaces | Eliminar un enlace |
| Enlaces | Iniciar ingesta (CONNECT LINK) |
| Enlaces | Pausar ingesta (DISCONNECT LINK) |
| Índices | CREATE índice secundario de Analytics |
| Índices | DROP índice secundario de Analytics |
| Índices | Recopilar estadísticas del optimizador |
| Clúster | Estadísticas de recursos por nodo |
| Clúster | Resumen de salud compuesto |
| Clúster | Configuración del servicio Analytics |
| Clúster | Mutar parámetro de configuración (protegido) |
| 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 docsPolí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 issueSu 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.
This server cannot be installed
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
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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