Skip to main content
Glama
celticht32

Couchbase-Analytics-MCP

by celticht32

Couchbase-Analytics-MCP

Ein produktionsreifer Model Context Protocol (MCP) Server für den Couchbase Enterprise Analytics-Dienst. Er stellt die vollständige Analytics-API-Oberfläche als 25 stark typisierte MCP-Tools bereit, inklusive einer integrierten GUI-Konsole, strukturiertem Logging, Prometheus-Metriken, OpenTelemetry-Tracing und umfassender Testabdeckung.

Wichtig: Dieser Server zielt auf den Analytics-Dienst ab (Apache AsterixDB-Engine, SQL++, Port 8095) – nicht auf den Couchbase Query (N1QL)-Dienst. Alle Tools rufen ausschließlich cluster.analyticsQuery() und /analytics/* REST-Endpunkte auf.


Feature-Matrix

Feature

Status

25 MCP-Tools für die vollständige Analytics-API

stdio-Transport (Claude Desktop)

SSE/HTTP-Transport (Remote-Agenten)

Verbindungspool (min/max/idle reaper)

JWT + API-Key-Authentifizierung am SSE-Endpunkt

Strukturiertes JSON-Logging (Pino)

Tägliche Log-Rotation (pino-roll)

Optionaler Loki-Push-Transport

Prometheus /metrics-Endpunkt

OpenTelemetry-Traces → Jaeger

/health/live + /health/ready-Probes

React-GUI-Konsole unter /console

Monaco SQL++-Editor

Schema-Browser (Dataverse → Dataset-Baum)

Live-Tool-Call-Inspektor

Unit-Tests (≥90% Abdeckung)

Integrationstests (echtes Couchbase)

E2E-Tests (Supertest SSE-Transport)

Docker Multi-Stage-Image

Docker Compose (CB + Prometheus + Grafana + Jaeger)

Helm-Chart

GitHub Actions CI/CD

Architektur-Dokumentation + ADRs

Operative Runbooks


Schnellstart

Voraussetzungen

  • Node.js ≥ 20

  • Docker + Docker Compose

  • Couchbase Server Enterprise ≥ 7.2 mit aktiviertem Analytics-Dienst

Lokale Entwicklung (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

Ausführung gegen ein bestehendes Couchbase-Cluster

npm install

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

Claude Desktop-Integration

Hinzufügen zu ~/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"
      }
    }
  }
}

Umgebungsvariablen

Variable

Standard

Beschreibung

CB_CONNECTION_STRING

(erforderlich)

couchbase://host oder couchbases://host für TLS

CB_USERNAME

(erforderlich)

Couchbase RBAC-Benutzername

CB_PASSWORD

(erforderlich)

Couchbase RBAC-Passwort

CB_ANALYTICS_PORT

8095

Analytics REST-Port (18095 für TLS)

CB_ANALYTICS_TLS

false

TLS für REST-Aufrufe aktivieren

TRANSPORT

stdio

stdio oder sse

PORT

3000

HTTP-Server-Port (SSE + Health + GUI)

POOL_MIN

2

Minimale Pool-Verbindungen

POOL_MAX

10

Maximale Pool-Verbindungen

POOL_IDLE_TIMEOUT_MS

30000

Schwellenwert für das Schließen inaktiver Verbindungen

QUERY_DEFAULT_TIMEOUT_MS

60000

Standard-Abfrage-Timeout

LOG_LEVEL

info

trace|debug|info|warn|error|fatal

LOG_FORMAT

json

json|pretty

LOG_FILE_ENABLED

false

Datei-Transport aktivieren

LOG_FILE_PATH

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

Pfad zur Log-Datei

LOKI_HOST

(optional)

Loki-Push-Endpunkt

METRICS_ENABLED

true

/metrics bereitstellen

OTEL_ENABLED

false

OpenTelemetry-Tracing aktivieren

JAEGER_ENDPOINT

http://localhost:14268/api/traces

Jaeger HTTP-Collector

JWT_SECRET

(optional)

JWT-Signatur-Secret für SSE-Authentifizierung

API_KEY

(optional)

Statischer API-Key für SSE-Authentifizierung

GUI_ENABLED

true

GUI unter /console bereitstellen


Tool-Referenz

Siehe docs/api/TOOLS.md für vollständige Input/Output-Schemata.

Tool

Gruppe

Beschreibung

analytics_execute

Abfrage

SQL++-Anweisung ausführen

analytics_explain

Abfrage

Ausführungsplan der Abfrage zurückgeben

analytics_cancel

Abfrage

Laufende Abfrage abbrechen

analytics_query_status

Abfrage

Status asynchroner Abfragen prüfen

analytics_pending_mutations

Abfrage

KV→Analytics Replikationsverzögerung

analytics_list_dataverses

Schema

Alle Dataverses auflisten

analytics_list_datasets

Schema

Datasets auflisten

analytics_describe_dataset

Schema

Feld-basierte Dataset-Beschreibung

analytics_infer_schema

Schema

INFER DATASET → JSON-Schema

analytics_list_indexes

Schema

Analytics-Sekundärindizes auflisten

analytics_create_dataverse

Dataverse

DATAVERSE ERSTELLEN

analytics_drop_dataverse

Dataverse

DATAVERSE LÖSCHEN

analytics_create_dataset

Dataverse

DATASET ERSTELLEN (Shadow-Collection)

analytics_drop_dataset

Dataverse

DATASET LÖSCHEN

analytics_alter_dataset

Dataverse

Dataset WHERE-Prädikat ändern

analytics_list_links

Links

Datenquellen-Links auflisten

analytics_create_link

Links

CB/S3/Azure/GCS-Link erstellen

analytics_alter_link

Links

Link-Konfiguration aktualisieren

analytics_drop_link

Links

Link löschen

analytics_connect_link

Links

Ingestion starten (CONNECT LINK)

analytics_disconnect_link

Links

Ingestion pausieren (DISCONNECT LINK)

analytics_create_index

Indizes

Analytics-Sekundärindex erstellen

analytics_drop_index

Indizes

Analytics-Sekundärindex löschen

analytics_analyze_dataset

Indizes

Optimizer-Statistiken sammeln

analytics_node_agg_stats

Cluster

Ressourcen-Statistiken pro Knoten

analytics_service_health

Cluster

Zusammenfassung des Systemzustands

analytics_cluster_config

Cluster

Analytics-Dienstkonfiguration

analytics_set_config_param

Cluster

Konfigurationsparameter ändern (geschützt)

analytics_restart_node

Cluster

Analytics-Knoten neu starten (geschützt)


Entwicklung

# 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

Support-Richtlinie

Ich schätze Ihr Interesse an diesem Projekt sehr! Dieses Projekt wird von der Community gepflegt. Ich überwache und pflege dieses Repository jedoch aktiv und werde versuchen, Probleme nach bestem Wissen und Gewissen zu lösen.

Alle Anfragen sollten über GitHub erfolgen.

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

Ihre Zusammenarbeit hilft mir, gemeinsam voranzukommen – vielen Dank! Pull Requests und Beiträge aus der Community sind willkommen und werden ausdrücklich begrüßt.


Architektur

Siehe docs/architecture/ARCHITECTURE.md für das vollständige Komponentendiagramm, die Beschreibung des Datenflusses und Designentscheidungen.

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