Couchbase

offiziell

Interagieren Sie mit den in Couchbase-Clustern gespeicherten Daten mithilfe natürlicher Sprache.

Was kann man mit Couchbase MCP machen?

  • Clusterstruktur erkunden — Buckets, Scopes und Collections auflisten sowie Schemas über get_buckets_in_cluster, get_scopes_in_bucket und get_schema_for_collection prüfen.
  • SQL++-Abfragen ausführen — Schreibgeschützte Abfragen gegen einen Scope mit run_sql_plus_plus_query ausführen oder Ausführungspläne über explain_sql_plus_plus_query abrufen.
  • Clusterzustand prüfen — Verbindung und Servicestatus mit test_cluster_connection und get_cluster_health_and_services verifizieren oder Diagnosedaten über get_cluster_diagnostics_report abrufen.
  • Abfrageleistung analysieren — Langsame oder ineffiziente Abfragen mit get_longest_running_queries und get_queries_using_primary_index identifizieren.
  • Dokumente verwalten — Dokumente nach ID mit get_document_by_id und upsert_document_by_id abrufen oder ändern (Schreibwerkzeuge erfordern CB_MCP_READ_ONLY_MODE=false).
  • Indizes optimieren — Indexempfehlungen mit get_index_advisor_recommendations abrufen oder vorhandene Indizes über list_indexes auflisten.

Dokumentation

Couchbase MCP Server

Couchbase MCP Server ist ein selbst gehosteter Model Context Protocol (MCP)-Server, der KI-Agenten und LLM-gestützte Assistenten – Claude, Cursor, Windsurf, VS Code Copilot und andere MCP-Clients – mit Daten in Couchbase-Clustern verbindet, egal ob auf Capella gehostet oder selbst verwaltet. MCP ist ein offener Standard, der es KI-Assistenten ermöglicht, Tools aufzurufen und externe Datenquellen abzufragen; dieser Server implementiert diesen Standard für Couchbase, sodass ein KI-Agent Ihren Cluster inspizieren, SQL++-Abfragen ausführen, Dokumente lesen und schreiben und die Abfrageleistung in natürlicher Sprache statt mit handgeschriebenem Code analysieren kann.

Er bietet Tools in Kategorien wie Cluster-Gesundheit, Datenschema, Key-Value, Abfrage und Leistung – mit Sicherheitskontrollen über den Nur-Lese-Modus (standardmäßig aktiviert) und feingranularer Tool-Deaktivierung, sodass Sie einem KI-Agenten erlauben können, Ihre Daten zu erkunden und abzufragen, ohne unbeabsichtigte Schreibvorgänge zu riskieren. Er unterstützt sowohl STDIO- als auch Streamable-HTTP-Transports.

Couchbase MCP Server wird als Python Package Index (PyPI)-Paket und über Docker verteilt. Enterprise-Support für Couchbase MCP Server ist durch die Lizenzierung von Couchbase AI Data Plane verfügbar, die auch die Nutzung und den Enterprise-Support von Couchbase Agent Memory und Couchbase Agent Catalog umfasst.

Für die vollständige Dokumentation besuchen Sie mcp-server.couchbase.com.

Docs License Python 3.10+ PyPI version Install in Cursor Verified on MseeP Trust Score

Für die vollständige Dokumentation besuchen Sie docs.couchbase.com/mcp-server.

Couchbase Server MCP server

Inhaltsverzeichnis

Warum Couchbase MCP Server

  • Standardmäßig sicher – Schreiboperationen (Dokument-Upserts/Inserts/Deletes und datenmodifizierende SQL++-Abfragen) sind blockiert, es sei denn, Sie setzen explizit CB_MCP_READ_ONLY_MODE=false, und einzelne Tools können deaktiviert oder hinter einer Benutzerbestätigung gesperrt werden.
  • Funktioniert mit Capella und selbst verwalteten Clustern – dieselbe Konfiguration verbindet sich mit Couchbase Capella (vollständig verwaltet) oder einem selbst gehosteten Couchbase-Server-Cluster.
  • RBAC-bewusst – Die Tool-Deaktivierung ist eine Komfortebene zur Steuerung des LLM-Verhaltens; die rollenbasierte Zugriffskontrolle des zugrunde liegenden Couchbase-Benutzers bleibt die maßgebliche Sicherheitsgrenze.
  • Produktionstransporte – Ausführung über STDIO für lokale Desktop-Clients oder Streamable HTTP mit optionaler OAuth 2.1 (JWT/JWKS, anbieterunabhängig – Auth0, Okta, Keycloak, Entra, Cognito usw.) für gemeinsame/Remote-Bereitstellungen.
  • Beliebiger MCP-Client – getestet mit Claude Desktop, Cursor, Windsurf, VS Code und JetBrains AI Assistant/Junie; funktioniert mit jedem Client, der die MCP-Spezifikation implementiert.

Beispiel-Prompts

Sobald der Server verbunden ist, können Sie über Ihren KI-Assistenten in natürlicher Sprache mit Ihrem Couchbase-Cluster sprechen. Zum Beispiel:

  • „Welche Buckets, Scopes und Collections habe ich in diesem Cluster, und wie ist das Schema der orders-Collection?"
  • „Führen Sie eine SQL++-Abfrage aus, um die 10 neuesten Dokumente in der users-Collection where status = 'active' zu finden."
  • „Was sind die 5 langsamsten Abfragen auf diesem Cluster in der letzten Stunde, und fehlt einer davon ein abdeckender Index?"
  • „Prüfen Sie, ob dieser Cluster gesund ist, und sagen Sie mir, welche Dienste ausgeführt werden."
  • „Fügen Sie ein neues Dokument in die products-Collection mit diesen Feldern ein: ..." (erfordert CB_MCP_READ_ONLY_MODE=false)

Funktionen/Tools

Diese Distribution enthält zwei Server: den operationalen Server (Standard – die Tabellen direkt unten) kommuniziert mit einem regulären Couchbase-Cluster über das couchbase SDK, und der Operational Insights- Server (seine eigene Tabelle weiter unten) kommuniziert mit Operational-Insights-Clustern über das couchbase-operational-insights SDK.

Tools für Cluster-Setup und -Gesundheit

Tool-NameBeschreibung
get_server_configuration_statusServerstatus und -konfiguration abrufen, ohne eine Verbindung zum Cluster herzustellen – meldet Nur-Lese-Modus, deaktivierte/bestätigungspflichtige Tools, OAuth-Einstellungen und die aufgelöste Protokollierungskonfiguration
test_cluster_connectionCluster-Anmeldeinformationen durch Verbindung zum Cluster prüfen
get_cluster_health_and_servicesCluster-Gesundheitsstatus und Liste aller laufenden Dienste abrufen, optional gefiltert auf bestimmte Dienste über service_types
get_cluster_diagnostics_reportDie zwischengespeicherten Verbindungsdiagnosen des SDK abrufen – ob Verbindungen bereits unterbrochen waren und wie lange, ohne aktive Netzwerkprüfung
get_cluster_metricsEine oder mehrere Cluster-Statistiken über ein historisches Zeitfenster über den Stats-Range-Endpunkt der Management-REST-API abrufen. Nur selbst verwalteter Couchbase Server 7.6+ – nicht auf Capella verfügbar.
discover_tool_input_valuesDie genauen Eingabewerte nachschlagen, die ein anderes Tool benötigt, aus Referenzdaten, die mit dem Server gebündelt sind – derzeit jeden Couchbase-Server-Metriknamen (Typ, Einheit, hinzugefügte Version, Beschreibung) für get_cluster_metrics. Nach Kategorie durchsuchen oder per Stichwort fuzzysuchen. Funktioniert offline, ohne Cluster-Verbindung.

Tools zur Datenmodell- und Schema-Erkennung

Tool-NameBeschreibung
get_buckets_in_clusterEine Liste aller Buckets im Cluster abrufen
get_scopes_in_bucketEine Liste aller Scopes im angegebenen Bucket abrufen
get_collections_in_scopeEine Liste aller Collections in einem angegebenen Scope und Bucket abrufen. Beachten Sie, dass dieses Tool den Query-Dienst im Cluster erfordert.
get_scopes_and_collections_in_bucketEine Liste aller Scopes und Collections im angegebenen Bucket abrufen
get_schema_for_collectionDie Struktur für eine Collection abrufen
create_scopeEinen neuen Scope in einem Bucket erstellen (Couchbase Server 7.6+ und Capella). Standardmäßig deaktiviert, wenn CB_MCP_READ_ONLY_MODE=true.
create_collectionEine neue Collection in einem vorhandenen Scope erstellen (Couchbase Server 7.6+ und Capella). Standardmäßig deaktiviert, wenn CB_MCP_READ_ONLY_MODE=true.
delete_scopeEinen Scope und alle seine Collections aus einem Bucket löschen – dauerhaft. Standardmäßig deaktiviert, wenn CB_MCP_READ_ONLY_MODE=true.
delete_collectionEine Collection und alle ihre Dokumente aus einem Scope löschen – dauerhaft. Standardmäßig deaktiviert, wenn CB_MCP_READ_ONLY_MODE=true.

Tools für Dokument-KV-Operationen

Tool-NameBeschreibung
get_document_by_idEin Dokument nach ID aus einem angegebenen Scope und einer Collection abrufen
lookup_subdocumentTeile eines Dokuments (bestimmte Felder, Existenzprüfungen oder Array/Objekt-Zählungen) nach Pfad nachschlagen, ohne das gesamte Dokument abzurufen
upsert_document_by_idEin Dokument per Upsert nach ID in einen angegebenen Scope und eine Collection einfügen. Standardmäßig deaktiviert, wenn CB_MCP_READ_ONLY_MODE=true.
insert_document_by_idEin neues Dokument nach ID einfügen (schlägt fehl, wenn das Dokument existiert). Standardmäßig deaktiviert, wenn CB_MCP_READ_ONLY_MODE=true.
replace_document_by_idEin vorhandenes Dokument nach ID ersetzen (schlägt fehl, wenn das Dokument nicht existiert). Standardmäßig deaktiviert, wenn CB_MCP_READ_ONLY_MODE=true.
delete_document_by_idEin Dokument nach ID aus einem angegebenen Scope und einer Collection löschen. Standardmäßig deaktiviert, wenn CB_MCP_READ_ONLY_MODE=true.
mutate_subdocumentTeile eines vorhandenen Dokuments (Upsert, Insert, Replace, Remove, Array-Operationen, Zähler) nach Pfad ändern, ohne das gesamte Dokument neu zu schreiben. Standardmäßig deaktiviert, wenn CB_MCP_READ_ONLY_MODE=true.

Abfrage- und Indextools

Tool-NameBeschreibung
list_indexesAlle Indizes im Cluster mit ihren Definitionen auflisten, mit optionaler Filterung nach Bucket, Scope, Collection und Indexname. Setzen Sie return_raw_index_stats=true, um die unverarbeiteten Indexinformationen zurückzugeben.
get_index_advisor_recommendationsIndexempfehlungen vom Couchbase Index Advisor für eine bestimmte SQL++-Abfrage abrufen, um die Abfrageleistung zu optimieren
create_indexEinen skalaren (nicht-Vektor) GSI-Sekundärindex auf einer Collection erstellen. Standardmäßig verzögert – rufen Sie danach build_index auf, um ihn zu erstellen. Standardmäßig deaktiviert, wenn CB_MCP_READ_ONLY_MODE=true.
build_indexDen Build aller verzögerten Indizes auf einer Collection auslösen. Standardmäßig deaktiviert, wenn CB_MCP_READ_ONLY_MODE=true.
drop_indexEinen GSI-Index (skalar oder Vektor) aus einer Collection entfernen. Standardmäßig deaktiviert, wenn CB_MCP_READ_ONLY_MODE=true.
run_sql_plus_plus_queryEine SQL++-Abfrage auf einem angegebenen Scope ausführen.

Abfragen werden automatisch auf den angegebenen Bucket und Scope begrenzt, verwenden Sie also Collection-Namen direkt (z. B. SELECT * FROM users statt SELECT * FROM bucket.scope.users).

CB_MCP_READ_ONLY_MODE ist standardmäßig true, was bedeutet, dass alle Schreiboperationen (KV, Query, Scope/Collection-Verwaltung und Indexverwaltung) deaktiviert sind. Wenn aktiviert (d. h. CB_MCP_READ_ONLY_MODE=true), werden Schreib-Tools nicht geladen und SQL++-Abfragen, die Daten ändern, werden blockiert.
explain_sql_plus_plus_queryEinen EXPLAIN-Plan für eine SQL++-Abfrage generieren und auswerten. Gibt Abfragemetadaten, extrahierten Plan und Planbewertungsergebnisse zurück.

Tools für die Volltextsuche (FTS)

Erfordert Couchbase Server 7.6+ und den Search-Dienst. Die Vektorsuche wird von diesen Tools nicht unterstützt (siehe die separaten Vektorsuch-Tools).

Tool-NameBeschreibung
list_fts_indexesSearch- (FTS-) Indizes auflisten. Ohne Filter werden Cluster-Ebene (Legacy-) Indizes aufgelistet; mit bucket_name werden Scope-Ebene (bereichsbezogene) Indizes über jeden Scope in diesem Bucket aufgelistet; mit bucket_name und scope_name werden Scope-Ebene-Indizes in diesem einen Scope aufgelistet.
get_fts_index_definitionDie vollständige Definition eines einzelnen Search-Index abrufen (Mappings, Analyzer, Plan-Parameter). Übergeben Sie bucket_name und scope_name zusammen für einen Scope-Ebene-Index oder lassen Sie beide weg für einen Cluster-Ebene (Legacy-) Index.
run_fts_queryEine FTS-Abfrage gegen einen Search-Index ausführen oder seinen Ausführungsplan abrufen. query ist der rohe FTS-Abfrage-JSON-Body, der jeden Nicht-Vektor-Abfragetyp unterstützt (match, match_phrase, term, conjuncts, disjuncts, geo, date/numeric range, query_string, ...). Übergeben Sie explain=true, um den Ausführungsplan statt der Ergebnisse abzurufen – dies führt die Abfrage weiterhin aus (limit standardmäßig 1), da der Search-Dienst den Plan nur pro übereinstimmendem Treffer bereitstellt, nicht als separaten Dry-Run-Aufruf.

Tools zur Abfrageleistungsanalyse

Tool-NameBeschreibung
get_longest_running_queriesAm längsten laufende Abfragen nach durchschnittlicher Dienstzeit abrufen
get_most_frequent_queriesAm häufigsten ausgeführte Abfragen abrufen
get_queries_with_largest_response_sizesAbfragen mit den größten Antwortgrößen abrufen
get_queries_with_large_result_countAbfragen mit den größten Ergebnismengen abrufen
get_queries_using_primary_indexAbfragen abrufen, die einen Primärindex verwenden (potenzielles Leistungsproblem)
get_queries_not_using_covering_indexAbfragen abrufen, die keinen abdeckenden Index verwenden
get_queries_not_selectiveAbfragen abrufen, die nicht selektiv sind (Index-Scans geben viel mehr Dokumente zurück als das Endergebnis)

Operational Insights Tools

Registriert durch den separaten operational-insights-Server (siehe Operational Insights Server unten), nicht durch den Standard-operational-Server.

Tool-NameBeschreibung
get_server_configuration_statusStatus und Konfiguration dieses Servers abrufen, ohne eine Verbindung zu einem Cluster herzustellen – Nur-Lese-Modus, deaktivierte/bestätigungspflichtige Tools, OAuth-Einstellungen und die aufgelöste Logging-Konfiguration. Wird mit dem operativen Server geteilt: dasselbe Tool, von beiden registriert.
get_databases_in_clusterAlle Datenbanken im Operational-Insights-Cluster auflisten.
get_scopes_in_databaseAlle Scopes in einer Datenbank auflisten.
get_collections_in_scopeAlle Collections (Datensätze) in einem Scope auflisten. Teilt seinen Namen mit dem gleichnamigen Tool des operativen Servers – siehe Hinweis unten.
get_schema_for_collectionDas JSON-Schema einer Collection durch Stichproben von Dokumenten ableiten. Teilt seinen Namen mit dem gleichnamigen Tool des operativen Servers – siehe Hinweis unten.
list_indexesSekundärindizes über den System.Metadata.Index-Katalog auflisten (das SDK hat keinen Index-Manager). Teilt seinen Namen mit dem gleichnamigen Tool des operativen Servers – siehe Hinweis unten.
run_query_syncEine SQL++-Anweisung (SELECT, DML oder DDL) ausführen und alle Ergebniszeilen zurückgeben. Erzwingt den Nur-Lese-Modus serverseitig über QueryOptions(readonly=True) – es gibt hier keinen clientseitigen SQL++-Parser.
explain_queryDen Abfrageplan für eine SQL++-Anweisung über EXPLAIN generieren, ohne sie auszuführen.
create_indexEinen Sekundärindex über CREATE INDEX erstellen (das SDK hat keinen Index-Manager). Standardmäßig deaktiviert, wenn CB_MCP_READ_ONLY_MODE=true. Teilt seinen Namen mit dem gleichnamigen Tool des operativen Servers – siehe Hinweis unten.
run_query_asyncEine SQL++-Anweisung starten, ohne auf deren Abschluss zu warten, und ein query_handle-Token zurückgeben. Gleiche Nur-Lese-Durchsetzung wie run_query_sync.
get_async_query_resultsPrüfen, ob eine asynchrone Abfrage abgeschlossen ist, und falls ja, ihre Zeilen zurückgeben. Dient auch als Statusprüfung – später erneut aufrufen, wenn noch nicht bereit.
discard_async_query_resultsDie Ergebnispuffer einer abgeschlossenen asynchronen Abfrage auf dem Server freigeben. Normaler Bereinigungsschritt nach get_async_query_results.
cancel_async_queryEine noch laufende asynchrone Abfrage stoppen. Standardmäßig deaktiviert, wenn CB_MCP_READ_ONLY_MODE=true. Eine abgeschlossene Abfrage kann nicht abgebrochen werden – verwerfen Sie stattdessen ihre Ergebnisse.

Die Server-Async-Request-API-Tools bilden einen Ablauf von Start → Abfragen → Verwerfen-oder-Abrechen für langlaufende Abfragen: run_query_async gibt ein query_handle zurück, get_async_query_results wird abgefragt, bis es Bereitschaft meldet (und die Zeilen zurückgibt), dann gibt entweder discard_async_query_results die Ergebnisse frei oder, bei einer noch laufenden Abfrage, stoppt cancel_async_query sie.

Hinweis: get_collections_in_scope, get_schema_for_collection, create_index und list_indexes existieren mit unterschiedlichem Verhalten auf beiden Servern. (get_server_configuration_status erscheint ebenfalls auf beiden, ist aber bewusst ein gemeinsames Tool – gleiche Implementierung, gleiche Ergebnisstruktur – daher ist keine Unterscheidung erforderlich.) Jeder Server ist ein separater Prozess, daher ist dies nur ein Problem, wenn ein einzelner MCP-Client sowohl operational als auch operational-insights gleichzeitig registriert – in diesem Fall unterscheiden Sie auf der Client-Konfigurationsebene (z. B. indem Sie den beiden Servereinträgen in der eigenen Konfiguration des Clients unterschiedliche Namen geben).

Voraussetzungen

  • Python 3.10 oder höher.
  • Ein laufender Couchbase-Cluster. Der einfachste Einstieg ist die Nutzung des Capella-Kostenlos-Tarifs, der eine vollständig verwaltete Version des Couchbase-Servers ist. Sie können den Anweisungen folgen, um einen der Beispieldatensätze zu importieren oder eigene Daten zu importieren.
  • uv installiert, um den Server auszuführen.
  • Ein MCP-Client wie Claude Desktop installiert, um den Server mit Claude zu verbinden. Die Anweisungen werden für Claude Desktop und Cursor bereitgestellt. Andere MCP-Clients können ebenfalls verwendet werden.

Konfiguration

Der MCP-Server kann entweder aus dem vorgefertigten PyPI-Paket oder aus dem Quellcode mit uv ausgeführt werden.

Ausführen von PyPI

Wir veröffentlichen ein vorgefertigtes PyPI-Paket für den MCP-Server.

Serverkonfiguration mit vorgefertigtem Paket für MCP-Clients

Basisauthentifizierung

{
  "mcpServers": {
    "couchbase": {
      "command": "uvx",
      "args": ["couchbase-mcp-server"],
      "env": {
        "CB_CONNECTION_STRING": "couchbases://connection-string",
        "CB_USERNAME": "username",
        "CB_PASSWORD": "password"
      }
    }
  }
}

oder

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"
      }
    }
  }
}

Hinweis: Wenn Sie andere MCP-Server im Client verwenden, können Sie ihn zum vorhandenen mcpServers-Objekt hinzufügen.

Ausführen aus dem Quellcode

Der MCP-Server kann aus dem Quellcode mit diesem Repository ausgeführt werden.

Repository auf Ihren lokalen Rechner klonen

git clone https://github.com/couchbase/mcp-server-couchbase.git

Serverkonfiguration mit Quellcode für MCP-Clients

Dies ist die allgemeine Konfiguration für MCP-Clients wie 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"
      }
    }
  }
}

Hinweis: path/to/cloned/repo/mcp-server-couchbase/ sollte der Pfad zum geklonten Repository auf Ihrem lokalen Rechner sein. Vergessen Sie nicht den abschließenden Schrägstrich am Ende!

Hinweis: Wenn Sie andere MCP-Server im Client verwenden, können Sie ihn zum vorhandenen mcpServers-Objekt hinzufügen.

Zusätzliche Konfiguration für den MCP-Server

Der Server kann über Umgebungsvariablen oder Befehlszeilenargumente konfiguriert werden:

UmgebungsvariableCLI-ArgumentBeschreibungStandard
CB_CONNECTION_STRING--connection-stringVerbindungszeichenfolge zum Couchbase-ClusterErforderlich
CB_USERNAME--usernameBenutzername mit Zugriff auf die erforderlichen Buckets für die BasisauthentifizierungErforderlich (oder Clientzertifikat und -schlüssel für mTLS erforderlich)
CB_PASSWORD--passwordPasswort für die BasisauthentifizierungErforderlich (oder Clientzertifikat und -schlüssel für mTLS erforderlich)
CB_CLIENT_CERT_PATH--client-cert-pathPfad zur Clientzertifikatsdatei für die mTLS-AuthentifizierungErforderlich bei Verwendung von mTLS (oder Benutzername und Passwort erforderlich)
CB_CLIENT_KEY_PATH--client-key-pathPfad zur Clientschlüsseldatei für die mTLS-AuthentifizierungErforderlich bei Verwendung von mTLS (oder Benutzername und Passwort erforderlich)
CB_CA_CERT_PATH--ca-cert-pathPfad zum Server-Root-Zertifikat für TLS, wenn der Server mit einem selbstsignierten/nicht vertrauenswürdigen Zertifikat konfiguriert ist. Dies ist nicht erforderlich, wenn Sie eine Verbindung zu Capella herstellen
CB_MCP_READ_ONLY_MODE--read-only-modeAlle Datenänderungen verhindern (KV, Query, Scope/Collection-Verwaltung und Indexverwaltung). Wenn aktiviert, werden Schreib-Tools nicht geladen.true
CB_MCP_TRANSPORT--transportTransportmodus: stdio, http, ssestdio
CB_MCP_HOST--hostHost für HTTP/SSE-Transportmodi127.0.0.1
CB_MCP_PORT--portPort für HTTP/SSE-Transportmodi8000
CB_MCP_DISABLED_TOOLS--disabled-toolsZu deaktivierende Tools (siehe Deaktivieren von Tools)Keine
CB_MCP_CONFIRMATION_REQUIRED_TOOLS--confirmation-required-toolsTools, die vor der Ausführung eine explizite Benutzerbestätigung über die MCP-Elicitation erfordern (siehe Elicitation/Bestätigungspflichtige Tools)Keine
CB_MCP_LOG_LEVEL--log-levelProtokollierungsstufe für den MCP-Server: off, debug, info, warning, error (siehe Protokollierung)info
CB_MCP_LOG_SINKS--log-sinksKommagetrennte Protokollziele: stderr, file oder beide (siehe Protokollierung)stderr
CB_MCP_LOG_FILE--log-fileBasispfad für Protokolldateien pro Ebene (nur verwendet, wenn das file-Ziel aktiviert ist)mcp_server.log
CB_MCP_LOG_ROTATION_MAX_SIZE_MB--log-rotation-max-size-mbGlobale maximale Größe in MB pro Protokolldatei vor der Rotation, von jeder Ebene geerbt, sofern nicht überschrieben. 0 ist ungültig und fällt mit einer Startwarnung auf den Standard zurück1 (1 MB)
CB_MCP_LOG_MAX_BYTES--log-max-bytesVeraltet – verwenden Sie CB_MCP_LOG_ROTATION_MAX_SIZE_MB (MB). Globale Rotationsgröße in Bytes, weiterhin aus Kompatibilitätsgründen berücksichtigt; ignoriert, wenn CB_MCP_LOG_ROTATION_MAX_SIZE_MB ebenfalls gesetzt istNicht gesetzt
CB_MCP_LOG_ERROR_ROTATION_MAX_SIZE_MB--log-error-rotation-max-size-mbRotationsgröße in MB für die ERROR-Protokolldatei; überschreibt CB_MCP_LOG_ROTATION_MAX_SIZE_MB für ERRORErbt CB_MCP_LOG_ROTATION_MAX_SIZE_MB
CB_MCP_LOG_WARNING_ROTATION_MAX_SIZE_MB--log-warning-rotation-max-size-mbRotationsgröße in MB für die WARNING-Protokolldatei; überschreibt CB_MCP_LOG_ROTATION_MAX_SIZE_MB für WARNINGErbt CB_MCP_LOG_ROTATION_MAX_SIZE_MB
CB_MCP_LOG_INFO_ROTATION_MAX_SIZE_MB--log-info-rotation-max-size-mbRotationsgröße in MB für die INFO-Protokolldatei; überschreibt CB_MCP_LOG_ROTATION_MAX_SIZE_MB für INFOErbt CB_MCP_LOG_ROTATION_MAX_SIZE_MB
CB_MCP_LOG_DEBUG_ROTATION_MAX_SIZE_MB--log-debug-rotation-max-size-mbRotationsgröße in MB für die DEBUG-Protokolldatei; überschreibt CB_MCP_LOG_ROTATION_MAX_SIZE_MB für DEBUGErbt CB_MCP_LOG_ROTATION_MAX_SIZE_MB
CB_MCP_LOG_RETENTION_BACKUP_COUNT--log-retention-backup-countRotierte Sicherungsdateien, die pro Ebenen-Protokolldatei aufbewahrt werden (ohne die aktive Datei), auf jede Ebene angewendet, sofern nicht überschrieben. 0 behält nur die aktive Datei (siehe Protokollierung)1
CB_MCP_LOG_ERROR_RETENTION_BACKUP_COUNT--log-error-retention-backup-countRotierte Sicherungen für die ERROR-Protokolldatei; überschreibt die globale Anzahl für ERRORErbt CB_MCP_LOG_RETENTION_BACKUP_COUNT
CB_MCP_LOG_WARNING_RETENTION_BACKUP_COUNT--log-warning-retention-backup-countRotierte Sicherungen für die WARNING-Protokolldatei; überschreibt die globale Anzahl für WARNINGErbt CB_MCP_LOG_RETENTION_BACKUP_COUNT
CB_MCP_LOG_INFO_RETENTION_BACKUP_COUNT--log-info-retention-backup-countRotierte Sicherungen für die INFO-Protokolldatei; überschreibt die globale Anzahl für INFOErbt CB_MCP_LOG_RETENTION_BACKUP_COUNT
CB_MCP_LOG_DEBUG_RETENTION_BACKUP_COUNT--log-debug-retention-backup-countRotierte Sicherungen für die DEBUG-Protokolldatei; überschreibt die globale Anzahl für DEBUGErbt CB_MCP_LOG_RETENTION_BACKUP_COUNT
CB_MCP_OAUTH_JWT_JWKS_URI--oauth-jwks-uriJWKS-Endpunkt des Identitätsanbieters, der zur Überprüfung von Bearer-JWTs verwendet wird. Aktiviert OAuth, wenn zusammen mit Aussteller und Zielgruppe gesetzt (siehe OAuth 2.1-Autorisierung)Keine
CB_MCP_OAUTH_JWT_ISSUER--oauth-issuerErwarteter JWT-iss-Anspruch. Erforderlich zur Aktivierung von OAuthKeine
CB_MCP_OAUTH_JWT_AUDIENCE--oauth-audienceErwarteter JWT-aud-Anspruch. Erforderlich zur Aktivierung von OAuthKeine
CB_MCP_OAUTH_JWT_ALGORITHM--oauth-algorithmJWT-Signaturalgorithmus: einer von RS256/384/512, ES256/384/512, PS256/384/512RS256
CB_MCP_OAUTH_MCP_BASE_URL--oauth-mcp-base-urlÖffentliche Basis-URL dieses Servers. Wenn gesetzt, veröffentlicht RFC 9728 Protected Resource Metadata, damit PRM-fähige Clients den IdP erkennen könnenKeine
CB_MCP_OAUTH_SCOPE_READ_LABEL--oauth-scope-read-labelDie OAuth-Scope-Bezeichnung überschreiben, die als 'Lese'-Zugriff behandelt wird (in PRM beworben und mit dem scope/scp-Anspruch des Tokens abgeglichen). Verwenden Sie dies, wenn Ihr IdP die kanonische Form nicht ausgeben kanncouchbase-mcp:read
CB_MCP_OAUTH_SCOPE_WRITE_LABEL--oauth-scope-write-labelDie OAuth-Scope-Bezeichnung überschreiben, die als 'Schreib'-Zugriff behandelt wird; gleiche Semantik wie die Lese-Bezeichnungcouchbase-mcp:write

Konfiguration des Nur-Lese-Modus

CB_MCP_READ_ONLY_MODE ist der einzige Schalter, der Schreiboperationen steuert:

  • Wenn true (Standard): Alle Schreiboperationen (KV, Query, Scope/Collection-Verwaltung und Indexverwaltung) sind deaktiviert. Alle Schreib-Tools (KV: upsert, insert, replace, delete, sub-document mutate; Scope/Collection-Verwaltung: create_scope, create_collection, delete_scope, delete_collection; Indexverwaltung: create_index, build_index, drop_index) werden nicht geladen und stehen dem LLM nicht zur Verfügung, und SQL++-Abfragen, die Daten oder Strukturen ändern, werden blockiert.
  • Wenn false: Alle Schreib-Tools werden geladen und SQL++-Daten-/Strukturänderungsabfragen sind erlaubt.

Dies ist die empfohlene sichere Standardeinstellung, um unbeabsichtigte Datenänderungen durch LLMs zu verhindern.

Hinweis: Für die Authentifizierung benötigen Sie entweder Benutzername und Passwort oder die Pfade zum Clientzertifikat und -schlüssel. Optional können Sie den Pfad zum CA-Root-Zertifikat angeben, das zur Validierung der Serverzertifikate verwendet wird. Wenn sowohl der Pfad zum Clientzertifikat & -schlüssel als auch Benutzername und Passwort angegeben sind, werden die Clientzertifikate für die Authentifizierung verwendet.

Deaktivieren von Tools

Sie können bestimmte Tools deaktivieren, um zu verhindern, dass sie geladen und dem MCP-Client bereitgestellt werden. Deaktivierte Tools erscheinen nicht in der Tool-Erkennung und können nicht vom LLM aufgerufen werden.

Unterstützte Formate

Kommagetrennte Liste:

# 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

Dateipfad (ein Tool-Name pro Zeile):

# Environment variable
CB_MCP_DISABLED_TOOLS=disabled_tools.txt

# Command line
uvx couchbase-mcp-server --disabled-tools disabled_tools.txt

Dateiformat (z. B. disabled_tools.txt):

# Write operations
upsert_document_by_id
delete_document_by_id

# Index advisor
get_index_advisor_recommendations

Zeilen, die mit # beginnen, werden als Kommentare behandelt und ignoriert.

Beispiele für MCP-Client-Konfiguration

Verwendung einer kommagetrennten Liste:

{
  "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"
      }
    }
  }
}

Verwendung eines Dateipfads (empfohlen für viele Tools):

{
  "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"
      }
    }
  }
}

Wichtiger Sicherheitshinweis

Warnung: Das alleinige Deaktivieren von Tools garantiert nicht, dass bestimmte Operationen nicht ausgeführt werden können. Die RBAC-Berechtigungen (Role-Based Access Control) des zugrunde liegenden Datenbankbenutzers sind die maßgebliche Sicherheitskontrolle.

Beispielsweise können Datenänderungen auch dann über das Tool run_sql_plus_plus_query mit SQL++-DML-Anweisungen (INSERT, UPDATE, DELETE, MERGE) erfolgen, wenn Sie upsert_document_by_id und delete_document_by_id deaktivieren, es sei denn:

  • CB_MCP_READ_ONLY_MODE ist auf true gesetzt (Standard), ODER
  • Dem Datenbankbenutzer fehlen die erforderlichen RBAC-Berechtigungen für Datenänderungen

Bewährte Vorgehensweise: Konfigurieren Sie immer geeignete RBAC-Berechtigungen für Ihre Couchbase-Benutzeranmeldeinformationen als primäre Sicherheitsmaßnahme. Verwenden Sie die Tool-Deaktivierung als zusätzliche Ebene, um das LLM-Verhalten zu steuern und die Angriffsfläche zu verringern – nicht als alleinige Sicherheitskontrolle.

Abfrage/Bestätigung für Tool-Aufrufe

Sie können für bestimmte Tools vor der Ausführung eine explizite Benutzerbestätigung verlangen (wenn der MCP-Client Abfragen unterstützt).

CB_MCP_CONFIRMATION_REQUIRED_TOOLS / --confirmation-required-tools unterstützt diese Formate:

  • Kommagetrennte Liste
  • Dateipfad (ein Tool-Name pro Zeile, #-Kommentare werden unterstützt)

Beispiel:

# 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

Wenn ein aufgelistetes Tool aufgerufen wird:

  • Wenn der Client Abfragen unterstützt, wird der Benutzer zur Bestätigung aufgefordert.
  • Wenn der Client keine Abfragen unterstützt, wird das Tool ohne Bestätigung ausgeführt, um Abwärtskompatibilität zu gewährleisten.

Sie können auch die Version des Servers überprüfen mit:

uvx couchbase-mcp-server --version

Protokollierung

Der MCP-Server protokolliert standardmäßig in stderr. Die Protokollierung wird mit den CB_MCP_LOG_*-Variablen konfiguriert, die in Zusätzliche Konfiguration aufgelistet sind:

  • CB_MCP_LOG_LEVEL – wie viel protokolliert wird: info (Standard) protokolliert Lebenszyklusereignisse und Tool-Aufrufe, debug fügt ausführliche interne Details hinzu und off deaktiviert die gesamte Protokollierung.
  • CB_MCP_LOG_SINKS – wohin Protokolle gehen: stderr (Standard), rotierende Dateien pro Ebene (file) oder beides. Mit file wird eine Datei pro Ebene geschrieben (z. B. mcp_server.info.log und mcp_server.error.log) unter dem Pfad, der durch CB_MCP_LOG_FILE festgelegt ist.
  • Rotationsgröße – CB_MCP_LOG_ROTATION_MAX_SIZE_MB ist die globale Größe (in MB), bei der jede Datei pro Ebene rotiert. Überschreiben Sie einzelne Ebenen mit CB_MCP_LOG_<LEVEL>_ROTATION_MAX_SIZE_MB (ERROR/WARNING/INFO/DEBUG), ebenfalls in MB, die den globalen Wert erben, wenn nicht gesetzt. Eine Größe von 0 (global oder pro Ebene) ist ungültig und fällt mit einer Startwarnung auf den Standardwert (1 MB) zurück. CB_MCP_LOG_MAX_BYTES (Bytes) ist veraltet, wird aber aus Gründen der Abwärtskompatibilität weiterhin berücksichtigt; es wird ignoriert, wenn CB_MCP_LOG_ROTATION_MAX_SIZE_MB ebenfalls gesetzt ist, und gibt beim Start eine Veraltungswarnung aus.
  • Aufbewahrung – CB_MCP_LOG_RETENTION_BACKUP_COUNT legt fest, wie viele rotierte Sicherungskopien pro Ebene aufbewahrt werden (ohne die aktive Datei); der Standardwert von 1 bewahrt das bisherige Verhalten. Überschreiben Sie einzelne Ebenen mit CB_MCP_LOG_<LEVEL>_RETENTION_BACKUP_COUNT (ERROR/WARNING/INFO/DEBUG), die den globalen Wert erben, wenn nicht gesetzt. Setzen Sie eine Anzahl auf 0, um nur die aktive Datei für diese Ebene aufzubewahren – sie ist weiterhin durch die Rotationsgröße begrenzt (wird beim Rollover zurückgesetzt, nicht gesichert).
  • Server-Konfigurations-Snapshot – wenn der file-Sink aktiv ist, wird ein einmaliger Datensatz (Betriebssystem, Python, Abhängigkeitsversionen, Transport, aufgelöste Protokollierungskonfiguration und redigierte Serverkonfiguration) als JSON in eine dedizierte mcp_server_config.log.json-Datei geschrieben (abgeleitet von der CB_MCP_LOG_FILE-Basis). Sie wird bei jedem Start überschrieben, sodass der Support immer die aktuelle Konfiguration hat und sie nie aus einem rotierenden Protokoll herausfällt.
# 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

Weitere Details finden Sie in der Dokumentation.

Clientspezifische Konfiguration

Claude Desktop

Befolgen Sie die folgenden Schritte, um den Couchbase-MCP-Server mit dem Claude-Desktop-MCP-Client zu verwenden:

  1. Der MCP-Server kann jetzt zu Claude Desktop hinzugefügt werden, indem Sie die Konfigurationsdatei bearbeiten. Detailliertere Anweisungen finden Sie im MCP-Schnellstartleitfaden.

    • Auf dem Mac befindet sich die Konfigurationsdatei unter ~/Library/Application Support/Claude/claude_desktop_config.json
    • Unter Windows befindet sich die Konfigurationsdatei unter %APPDATA%\Claude\claude_desktop_config.json

    Öffnen Sie die Konfigurationsdatei und fügen Sie die Konfiguration zum Abschnitt mcpServers hinzu.

  2. Starten Sie Claude Desktop neu, um die Änderungen zu übernehmen.

  3. Sie können den Server jetzt in Claude Desktop verwenden, um Abfragen am Couchbase-Cluster in natürlicher Sprache auszuführen und CRUD-Operationen an Dokumenten durchzuführen.

Protokolle

Die Protokolle für Claude Desktop finden Sie an den folgenden Speicherorten:

  • macOS: ~/Library/Logs/Claude
  • Windows: %APPDATA%\Claude\Logs

Die Protokolle können verwendet werden, um Verbindungsprobleme oder andere Probleme mit Ihrer MCP-Serverkonfiguration zu diagnostizieren. Weitere Details finden Sie in der offiziellen Dokumentation.

Cursor

Befolgen Sie die folgenden Schritte, um den Couchbase-MCP-Server mit Cursor zu verwenden:

  1. Installieren Sie Cursor auf Ihrem Rechner.

  2. Gehen Sie in Cursor zu Cursor > Cursor-Einstellungen > Tools & Integrationen > MCP-Tools. Lesen Sie auch die Dokumentation zum Einrichten der MCP-Serverkonfiguration von Cursor.

  3. Geben Sie dieselbe Konfiguration manuell an oder verwenden Sie den Ein-Klick-Link In Cursor installieren. Möglicherweise müssen Sie die Serverkonfiguration unter einem übergeordneten Schlüssel mcpServers hinzufügen.

    Hinweis: Der Installationslink verwendet Platzhalterwerte aus den Konfigurationsbeispielen oben. Aktualisieren Sie die Verbindungszeichenfolge und die Anmeldeinformationen nach der Installation.

  4. Speichern Sie die Konfiguration.

  5. Sie sehen couchbase als hinzugefügten Server in der MCP-Serverliste. Aktualisieren Sie, um zu sehen, ob der Server aktiviert ist.

  6. Sie können den Couchbase-MCP-Server jetzt in Cursor verwenden, um Ihren Couchbase-Cluster in natürlicher Sprache abzufragen und CRUD-Operationen an Dokumenten durchzuführen.

Weitere Details zur MCP-Integration mit Cursor finden Sie in der offiziellen Cursor-MCP-Dokumentation.

Protokolle

Klicken Sie im unteren Bereich von Cursor auf „Ausgabe" und wählen Sie „Cursor MCP" aus dem Dropdown-Menü, um Serverprotokolle anzuzeigen. Dies kann bei der Diagnose von Verbindungsproblemen oder anderen Problemen mit Ihrer MCP-Serverkonfiguration helfen.

Windsurf Editor

Befolgen Sie die folgenden Schritte, um den Couchbase-MCP-Server mit dem Windsurf Editor zu verwenden.

  1. Installieren Sie den Windsurf Editor auf Ihrem Rechner.

  2. Navigieren Sie im Windsurf Editor zur Befehlspalette > Windsurf-MCP-Konfigurationsbereich oder zu Windsurf - Einstellungen > Erweitert > Cascade > Model Context Protocol (MCP)-Server. Weitere Details zur Konfiguration finden Sie in der offiziellen Dokumentation.

  3. Klicken Sie auf Server hinzufügen und dann auf Benutzerdefinierten Server hinzufügen. Fügen Sie in der Konfiguration, die sich im Editor öffnet, die Konfiguration des Couchbase-MCP-Servers von oben hinzu.

  4. Speichern Sie die Konfiguration.

  5. Sie sehen couchbase als hinzugefügten Server in der MCP-Serverliste unter Erweiterte Einstellungen. Aktualisieren Sie, um zu sehen, ob der Server aktiviert ist.

  6. Sie können den Couchbase-MCP-Server jetzt im Windsurf Editor verwenden, um Ihren Couchbase-Cluster in natürlicher Sprache abzufragen und CRUD-Operationen an Dokumenten durchzuführen.

Weitere Details zur MCP-Integration mit dem Windsurf Editor finden Sie in der offiziellen Windsurf-MCP-Dokumentation.

VS Code

Befolgen Sie die folgenden Schritte, um den Couchbase-MCP-Server mit VS Code zu verwenden.

  1. Installieren Sie VS Code

  2. Es gibt mehrere Möglichkeiten, den MCP-Server zu konfigurieren.

    • Für eine Workspace-Serverkonfiguration

      • Erstellen Sie eine neue Datei im Workspace als .vscode/mcp.json.
      • Fügen Sie die Konfiguration hinzu und speichern Sie die Datei.
    • Für die globale Serverkonfiguration:

      • Führen Sie MCP: Benutzerkonfiguration öffnen in der Befehlspalette aus (Ctrl+Shift+P oder Cmd+Shift+P)
      • Fügen Sie die Konfiguration hinzu und speichern Sie die Datei.
    • Hinweis: VS Code verwendet servers als JSON-Eigenschaft der obersten Ebene in mcp.json-Dateien, um MCP-Server (Model Context Protocol) zu definieren, während Cursor mcpServers für die entsprechende Konfiguration verwendet. Weitere Änderungen oder Details finden Sie in den VS-Code-Clientkonfigurationen. Ein Beispiel für eine VS-Code-Konfiguration finden Sie unten.

        {
          "servers": {
            "couchbase": {
              "command": "uvx",
              "args": ["couchbase-mcp-server"],
              "env": {
                "CB_CONNECTION_STRING": "couchbases://connection-string",
                "CB_USERNAME": "username",
                "CB_PASSWORD": "password"
              }
            }
          }
        }
      
  3. Sobald Sie die Datei speichern, startet der Server und eine kleine Aktionsliste mit Running|Stop|n Tools|More.. erscheint.

  4. Klicken Sie auf die Optionen in der Optionsliste, um den Server zu Start/Stop/verwalten.

  5. Sie können den Couchbase-MCP-Server jetzt in VS Code verwenden, um Ihren Couchbase-Cluster in natürlicher Sprache abzufragen und CRUD-Operationen an Dokumenten durchzuführen.

Protokolle: In der Befehlspalette (Ctrl+Shift+P oder Cmd+Shift+P),

  • führen Sie den Befehl MCP: Server auflisten aus und wählen Sie den Couchbase-Server
  • wählen Sie „Ausgabe anzeigen", um seine Protokolle im Tab „Ausgabe" zu sehen.
JetBrains-IDEs

Befolgen Sie die folgenden Schritte, um den Couchbase-MCP-Server mit JetBrains-IDEs zu verwenden:

  1. Installieren Sie eine der JetBrains-IDEs
  2. Installieren Sie eines der JetBrains-Plugins – AI Assistant oder Junie
  3. Navigieren Sie zu Einstellungen > Tools > AI Assistant oder Junie > MCP-Server
  4. Klicken Sie auf „+", um die Couchbase-MCP-Konfiguration hinzuzufügen, und klicken Sie auf Speichern.
  5. Sie sehen den Couchbase-MCP-Server zur Serverliste hinzugefügt. Sobald Sie auf Übernehmen klicken, startet der Couchbase-MCP-Server und beim Überfahren mit der Maus zeigt der Status alle verfügbaren Tools an.
  6. Sie können den Couchbase-MCP-Server jetzt in JetBrains-IDEs verwenden, um Ihren Couchbase-Cluster in natürlicher Sprache abzufragen und CRUD-Operationen an Dokumenten durchzuführen.

Protokolle: Die Protokolldatei kann unter Hilfe > Protokoll im Finder anzeigen (Explorer) > mcp > couchbase eingesehen werden.

Operational-Insights-Server

Neben dem Standard-operational-Server (dem Server, den jeder Abschnitt oben beschreibt), enthält diese Distribution einen zweiten Server für Operational Insights-Cluster, der das separate couchbase-operational-insights-SDK verwendet. Es handelt sich um ein anderes Produkt als ein regulärer Couchbase-Cluster, und er läuft als unabhängiger Prozess auf einem eigenen Port.

Führen Sie ihn aus, indem Sie operational-insights als CLI-Unterbefehl übergeben (oder ihn als Befehl des Containers anhängen):

uvx couchbase-mcp-server operational-insights
# or, from source:
uv run src/mcp_server.py operational-insights
# or, via Docker:
docker run --rm -i \
  -e CB_OI_CONNECTION_STRING=http://localhost:8095 \
  -e CB_OI_USERNAME=Administrator \
  -e CB_OI_PASSWORD=password \
  couchbase/mcp-server:<version> operational-insights

--connection-string ist eine HTTP(S)-URL, keine couchbase://-Verbindungszeichenfolge – z. B. http://localhost:8095 für einen lokalen Operational-Insights-Server oder https://<host>:18095 für Capella. Dies ist die häufigste Fehlkonfiguration, wenn dieser Server auf einen Cluster ausgerichtet wird.

CLI-ArgumentUmgebungsvariableBeschreibungStandard
--connection-stringCB_OI_CONNECTION_STRINGEndpunkt-URL für Operational Insights (HTTP/HTTPS, nicht couchbase://)Keine
--usernameCB_OI_USERNAMEBenutzername für Operational InsightsKeine
--passwordCB_OI_PASSWORDPasswort für Operational InsightsKeine
--ca-cert-pathCB_OI_CA_CERT_PATHPfad zum Stammzertifikat des Servers (PEM), zur Überprüfung eines selbstsignierten/nicht vertrauenswürdigen ServerzertifikatsKeine
--client-cert-pathCB_OI_CLIENT_CERT_PATHPfad zum Clientzertifikat für die mTLS-Authentifizierung – ein PEM-Zertifikat (gepaart mit --client-key-path) oder ein PKCS#12-Bundle (.p12/.pfx, --client-key-path nicht gesetzt). Erfordert eine https:// --connection-string; überschreibt --username/--password, wenn gesetztKeine
--client-key-pathCB_OI_CLIENT_KEY_PATHPfad zum privaten Schlüssel des Clientzertifikats (PEM). Nicht setzen, wenn --client-cert-path ein PKCS#12-Bundle istKeine
--client-cert-passwordCB_OI_CLIENT_CERT_PASSWORDEntschlüsselungspasswort für einen verschlüsselten Clientschlüssel oder ein PKCS#12-BundleKeine

Jedes andere Flag (--read-only-mode, --transport, --host, --port, --disabled-tools, --confirmation-required-tools, --log-*, --oauth-*) ist identisch mit dem des operativen Servers – siehe Zusätzliche Konfiguration für den MCP-Server – mit Ausnahme der Standardwerte für Port (8001, nicht 8000) und Logdatei (mcp_server_operational_insights.log, nicht mcp_server.log), da zwei Server sich keines von beidem teilen können. OAuth verwendet dieselben Bereichsbezeichnungen (couchbase-mcp:read / couchbase-mcp:write) wie der operative Server, sodass eine bestehende IdP-Konfiguration ohne Änderungen für beide funktioniert.

Beispielkonfiguration für einen MCP-Client:

{
  "mcpServers": {
    "couchbase-operational-insights": {
      "command": "uvx",
      "args": ["couchbase-mcp-server", "operational-insights"],
      "env": {
        "CB_OI_CONNECTION_STRING": "http://localhost:8095",
        "CB_OI_USERNAME": "Administrator",
        "CB_OI_PASSWORD": "password"
      }
    }
  }
}

Siehe Operational-Insights-Tools oben für die Tool-Liste sowie den Hinweis dort zu den drei Tool-Namen, die mit dem operativen Server geteilt werden.

Beide Server teilen sich einen einzigen MCP-Registry- Eintrag, io.github.couchbase/mcp-server-couchbase, veröffentlicht über server.json. Der Eintrag enthält einen separaten Paketeintrag für jeden Server (PyPI und Docker). Jeder Eintrag übergibt seinen Unterbefehl (operational oder operational-insights) und deklariert nur die Argumente und Umgebungsvariablen dieses Servers.

Streamable-HTTP-Transportmodus

Der MCP-Server kann im Streamable-HTTP-Transportmodus ausgeführt werden, der es mehreren Clients ermöglicht, über HTTP eine Verbindung zur selben Serverinstanz herzustellen. Prüfen Sie, ob Ihr MCP-Client den Streamable-HTTP-Transport unterstützt, bevor Sie versuchen, sich in diesem Modus mit dem MCP-Server zu verbinden.

Hinweis: Die OAuth-2.1-Autorisierung wird bei diesem Transport unterstützt. Siehe OAuth-2.1-Autorisierung. Ohne konfiguriertes OAuth ist der HTTP-Endpunkt nicht authentifiziert.

Verwendung

Standardmäßig läuft der MCP-Server auf Port 8000, dies kann jedoch über die Umgebungsvariable --port oder CB_MCP_PORT konfiguriert werden.

uvx couchbase-mcp-server \
  --connection-string='<couchbase_connection_string>' \
  --username='<database_username>' \
  --password='<database_password>' \
  --read-only-mode=true \
  --transport=http

Der Server ist unter http://localhost:8000/mcp verfügbar. Dies kann in MCP-Clients verwendet werden, die den Streamable-HTTP-Transportmodus unterstützen, wie z. B. Cursor.

MCP-Client-Konfiguration

{
  "mcpServers": {
    "couchbase-http": {
      "url": "http://localhost:8000/mcp"
    }
  }
}

SSE-Transportmodus

Es gibt die Option, den MCP-Server im Server-Sent-Events (SSE)-Transportmodus auszuführen.

Hinweis: Der SSE-Modus wurde von MCP als veraltet eingestuft. Wir unterstützen Streamable HTTP.

SSE: Verwendung

Standardmäßig läuft der MCP-Server auf Port 8000, dies kann jedoch über die Umgebungsvariable --port oder CB_MCP_PORT konfiguriert werden.

uvx couchbase-mcp-server \
  --connection-string='<couchbase_connection_string>' \
  --username='<database_username>' \
  --password='<database_password>' \
  --read-only-mode=true \
  --transport=sse

Der Server ist unter http://localhost:8000/sse verfügbar. Dies kann in MCP-Clients verwendet werden, die den SSE-Transportmodus unterstützen, wie z. B. Cursor.

SSE: MCP-Client-Konfiguration

{
  "mcpServers": {
    "couchbase-sse": {
      "url": "http://localhost:8000/sse"
    }
  }
}

OAuth-2.1-Autorisierung

Bei Ausführung mit --transport=http kann der MCP-Server als OAuth-2.1-Ressourcenserver fungieren: Er validiert eingehende Bearer-JWTs gegen die JWKS Ihres Identitätsanbieters. Er ist anbieterunabhängig (jeder OAuth-2.1-/OIDC-Anbieter, der eine JWKS veröffentlicht – Auth0, Okta, Keycloak, AWS Cognito, Microsoft Entra usw.) und stellt keine Token aus und verwaltet keine Benutzer. OAuth-Einstellungen werden bei stdio ignoriert.

OAuth wird mit den CB_MCP_OAUTH_*-Variablen konfiguriert, die in Zusätzliche Konfiguration aufgeführt sind:

  • OAuth wird nur aktiviert, wenn alle drei von CB_MCP_OAUTH_JWT_JWKS_URI, CB_MCP_OAUTH_JWT_ISSUER und CB_MCP_OAUTH_JWT_AUDIENCE gesetzt sind; wenn nur einige davon gesetzt sind, schlägt der Start fehl.
  • Das Setzen von CB_MCP_OAUTH_MCP_BASE_URL veröffentlicht zusätzlich RFC-9728-Protected-Resource-Metadaten, sodass PRM-fähige Clients den Autorisierungsserver erkennen können.
  • Der Zugriff wird durch zwei Bereiche gesteuert, die aus dem scope/scp-Anspruch des Tokens gelesen werden: couchbase-mcp:read (Lesetools, einschließlich SQL++) und couchbase-mcp:write (Schreibtools: KV-Mutationen, Scope-/Collection-Verwaltung und Indexverwaltung). Für den vollständigen Zugriff sind beide erforderlich. Wenn Ihr IdP diese kanonischen Bezeichnungen nicht ausgeben kann, überschreiben Sie sie mit CB_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>'

Ausführliche Details finden Sie in der Dokumentation.

Docker-Image

Der MCP-Server kann auch als Docker-Container erstellt und ausgeführt werden. Vorgefertigte Images finden Sie auf DockerHub oder können über docker pull docker.io/couchbase/mcp-server:latest bezogen werden.

Alternativ sind wir Teil des Docker-MCP-Katalogs.

Image erstellen

docker build -t mcp/couchbase-src .
Erstellen mit Argumenten Wenn Sie mit den Build-Argumenten für Commit-Hash und Build-Zeit erstellen möchten, können Sie wie folgt erstellen:
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 .

Alternativ können Sie das bereitgestellte Build-Skript verwenden:

# Build with default image name (mcp/couchbase-src)
./build.sh

# Build with custom image name
./build.sh my-custom/image-name

Dieses Skript automatisiert:

  • Akzeptiert einen optionalen Imagenamen-Parameter (Standard: mcp/couchbase-src)
  • Generiert Git-Commit-Hash und Build-Zeitstempel
  • Erstellt mehrere nützliche Tags (latest, <short-commit>)
  • Zeigt Build-Informationen und -Ergebnisse an
  • Verwendet dieselben Argumente wie CI/CD-Builds

Image-Labels überprüfen:

# 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

Ausführen

Der MCP-Server kann mit den Umgebungsvariablen ausgeführt werden, die zur Konfiguration der Couchbase-Einstellungen verwendet werden. Die Umgebungsvariablen sind dieselben wie im Abschnitt „Zusätzliche Konfiguration“ beschrieben.

Unabhängiger Docker-Container

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

Die Umgebungsvariablen CB_MCP_PORT und CB_MCP_HOST gelten nur für HTTP-Transportmodi wie http und sse.

Docker: MCP-Client-Konfiguration

Das Docker-Image kann im stdio-Transportmodus mit der folgenden Konfiguration verwendet werden.

{
  "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"
      ]
    }
  }
}

Hinweise

  • Der couchbase_connection_string-Wert hängt davon ab, ob der Couchbase-Server auf demselben Host-Rechner, in einem anderen Docker-Container oder auf einem Remote-Host ausgeführt wird. Wenn Ihr Couchbase-Server auf Ihrem Host-Rechner läuft, hat Ihre Verbindungszeichenfolge wahrscheinlich die Form couchbase://host.docker.internal. Details finden Sie in der Docker-Dokumentation.
  • Sie können die Netzwerkkonfiguration des Containers über die Option --network=<your_network> festlegen. Das von Ihnen gewählte Netzwerk hängt von Ihrer Umgebung ab; der Standard ist bridge. Details finden Sie unter Netzwerktreiber in Docker.

Risiken im Zusammenhang mit LLMs

  • Die Verwendung großer Sprachmodelle und ähnlicher Technologien birgt Risiken, einschließlich der Möglichkeit ungenauer oder schädlicher Ausgaben.
  • Couchbase überprüft oder bewertet nicht die Qualität oder Genauigkeit solcher Ausgaben, und solche Ausgaben geben möglicherweise nicht die Ansichten von Couchbase wieder.
  • Sie sind allein dafür verantwortlich zu entscheiden, ob Sie große Sprachmodelle und verwandte Technologien verwenden, und alle Lizenzbedingungen, Nutzungsbedingungen und Richtlinien Ihrer Organisation für deren Verwendung einzuhalten.

Erfassung von Nutzungsdaten

Dieses Produkt erfasst automatisch Nutzungs- und Leistungsdaten (wie Produktname und -version) sowie Browserinformationen (wie IP-Adresse) (zusammen „Nutzungsdaten“). Couchbase verwendet Nutzungsdaten zusammen mit anderen Daten, die Sie Couchbase möglicherweise zur Verfügung stellen (wie Ihren Benutzernamen oder Ihre E-Mail-Adresse), um unsere Produkte zu entwickeln und zu verbessern sowie unsere Vertriebs- und Marketingprogramme zu informieren. Wir greifen nicht auf Daten zu, die Sie in Couchbase-Produkten speichern, und sammeln diese auch nicht. Wir verwenden Nutzungsdaten, um aggregierte Nutzungsmuster zu verstehen und unsere Produkte für Sie nützlicher zu machen. Weitere Informationen darüber, wie Couchbase Informationen erfasst, schützt und verarbeitet, finden Sie in der Couchbase-Datenschutzrichtlinie unter https://www.couchbase.com/privacy-policy.

Tipps zur Fehlerbehebung

  • Stellen Sie sicher, dass der Pfad zu Ihrem MCP-Server-Repository in der Konfiguration korrekt ist, wenn Sie aus dem Quellcode ausführen.
  • Überprüfen Sie, ob Ihre Couchbase-Verbindungszeichenfolge, der Datenbankbenutzername, das Passwort oder der Pfad zu den Zertifikaten korrekt sind.
  • Wenn Sie Couchbase Capella verwenden, stellen Sie sicher, dass der Cluster von dem Rechner aus zugänglich ist, auf dem der MCP-Server ausgeführt wird.
  • Stellen Sie sicher, dass der Datenbankbenutzer über die entsprechenden Berechtigungen verfügt, um auf mindestens einen Bucket zuzugreifen.
  • Bestätigen Sie, dass der Paketmanager uv ordnungsgemäß installiert und zugänglich ist. Möglicherweise müssen Sie den absoluten Pfad zu uv/uvx im Feld command in der Konfiguration angeben.
  • Überprüfen Sie die Protokolle auf Fehler oder Warnungen, die auf Probleme mit dem MCP-Server hinweisen könnten. Der Speicherort der Protokolle hängt von Ihrem MCP-Client ab.
  • Wenn Sie Probleme bei der Ausführung Ihres MCP-Servers aus dem Quellcode nach der Aktualisierung Ihres lokalen MCP-Server-Repositorys feststellen, versuchen Sie, uv sync auszuführen, um die Abhängigkeiten zu aktualisieren.

Integrationstests

Wir stellen hochrangige MCP-Integrationstests bereit, um zu überprüfen, ob der Server die erwarteten Tools verfügbar macht und ob diese gegen einen Demo-Couchbase-Cluster aufgerufen werden können.

  1. Exportieren Sie die Anmeldeinformationen des Demo-Clusters:
    • CB_CONNECTION_STRING
    • CB_USERNAME
    • CB_PASSWORD
    • Optional: CB_MCP_TEST_BUCKET (ein Bucket, der während der Tests untersucht werden soll)
    • Optional, für die eigenen Tests des Operational-Insights-Servers: CB_OI_CONNECTION_STRING / CB_OI_USERNAME / CB_OI_PASSWORD. Diese Tests werden automatisch übersprungen (nicht fehlgeschlagen), wenn sie nicht gesetzt sind.
  2. Führen Sie die Tests aus:
uv run --extra dev pytest tests/integration -v

FAQ

Was ist der Couchbase-MCP-Server? Es ist eine selbst gehostete Implementierung des Model Context Protocol, die es KI-Assistenten und -Agenten (Claude, Cursor, Windsurf, VS Code Copilot, JetBrains AI Assistant/Junie und jedem anderen MCP-Client) ermöglicht, Daten in einem Couchbase-Cluster mithilfe natürlicher Sprache abzufragen und optional zu ändern.

Wie verbinde ich Claude Desktop mit Couchbase? Installieren Sie den Server mit uvx couchbase-mcp-server (oder führen Sie ihn aus dem Quellcode oder Docker aus) und fügen Sie dann seine Konfiguration zur claude_desktop_config.json von Claude Desktop hinzu, wie in Konfiguration gezeigt. Starten Sie Claude Desktop neu, und es übernimmt die neuen Tools.

Kann ich dies mit Couchbase Capella verwenden? Ja. Dieselbe CB_CONNECTION_STRING/CB_USERNAME/CB_PASSWORD-Konfiguration (oder das mTLS-Zertifikat) funktioniert sowohl für Couchbase Capella als auch für selbst verwaltete Couchbase-Server-Cluster.

Ist es sicher, einem KI-Agenten das Schreiben in meine Datenbank zu erlauben? Standardmäßig ist CB_MCP_READ_ONLY_MODE true, sodass alle Schreibvorgänge – Dokument-Upserts/Einfügungen/Ersetzungen/Löschungen und datenändernde SQL++-Anweisungen – deaktiviert sind und die Schreib-Tools nicht einmal geladen werden. Sie können auch einzelne Tools deaktivieren (siehe Tools deaktivieren) oder eine explizite Benutzerbestätigung verlangen, bevor bestimmte Tools ausgeführt werden (siehe Elicitation/Bestätigung). Tool-Ebene-Steuerungen leiten das LLM-Verhalten; die RBAC-Berechtigungen Ihres Couchbase-Benutzers bleiben die eigentliche Sicherheitsgrenze.

Kann ich natürliche Sprachabfragen gegen meine Daten ausführen, ohne SQL++ selbst zu schreiben? Ja – stellen Sie Ihrem KI-Assistenten eine Frage in einfachem Englisch (z. B. „zeig mir die 10 neuesten Bestellungen über 100 $“), und er kann dies mithilfe des run_sql_plus_plus_query-Tools in eine SQL++-Abfrage übersetzen. Sie können den Assistenten auch bitten, eine Abfrage zu explain_sql_plus_plus_query oder den Indexberater um Empfehlungen zu bitten. Was ist der Unterschied zwischen STDIO-, Streamable-HTTP- und SSE-Transport? STDIO ist für einen einzelnen lokalen MCP-Client (z. B. Claude Desktop) gedacht, der den Server als Unterprozess startet. Streamable HTTP ermöglicht mehreren Clients, eine gemeinsam genutzte Serverinstanz über HTTP zu verwenden, und unterstützt OAuth 2.1. SSE ist der ältere HTTP-Transport, der von der MCP-Spezifikation zugunsten von Streamable HTTP als veraltet eingestuft wurde – siehe Streamable-HTTP-Transportmodus.

Wird dies offiziell von Couchbase unterstützt? Dieses Projekt wird von der Couchbase-Community gepflegt – siehe Support-Richtlinie. Enterprise-Support ist separat über Couchbase AI Data Plane verfügbar.

Mitwirken

Wir freuen uns über Beiträge aus der Community! Ob Sie Fehler beheben, Funktionen hinzufügen oder die Dokumentation verbessern möchten – Ihre Hilfe ist willkommen.

Wenn Sie Hilfe benötigen, einen Fehler gefunden haben oder Verbesserungen beitragen möchten, ist der beste Ort dafür genau hier – indem Sie ein GitHub-Issue eröffnen.

Für Entwickler

Wenn Sie daran interessiert sind, Code beizutragen oder eine Entwicklungsumgebung einzurichten:

📖 Siehe CONTRIBUTING.md für umfassende Entwickler-Setup-Anweisungen, einschließlich:

  • Einrichtung der Entwicklungsumgebung mit uv
  • Code-Linting und -Formatierung mit Ruff
  • Installation von Pre-Commit-Hooks
  • Überblick über die Projektstruktur
  • Entwicklungsworkflow und -praktiken

Schnellstart für Mitwirkende

# 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

📢 Support-Richtlinie

Wir schätzen Ihr Interesse an diesem Projekt sehr! Dieses Projekt wird von der Couchbase-Community gepflegt, was bedeutet, dass es nicht offiziell von unserem Support-Team unterstützt wird. Unsere Ingenieure überwachen und pflegen dieses Repository jedoch aktiv und werden sich nach besten Kräften bemühen, Probleme zu lösen.

Unser Support-Portal kann bei Anfragen zu diesem Projekt nicht helfen. Daher bitten wir Sie, alle Anfragen innerhalb von GitHub zu halten.

Ihre Zusammenarbeit hilft uns allen, gemeinsam voranzukommen – vielen Dank!