Couchbase

officiel

Interagissez avec les données stockées dans les clusters Couchbase en utilisant le langage naturel.

Que pouvez-vous faire avec Couchbase MCP ?

Demandez à votre assistant d'inspecter la santé du cluster, d'explorer les schémas, d'exécuter des requêtes SQL++ et de gérer les documents dans votre cluster Couchbase.

  • Exécuter des requêtes SQL++ — Demandez à votre assistant d'interroger les données avec run_sql_plus_plus_query, automatiquement limité à un bucket et une collection.
  • Explorer le schéma — Découvrez les buckets, scopes et collections via get_buckets_in_cluster et get_schema_for_collection.
  • Gérer les documents — Lisez, insérez ou supprimez des documents par ID avec get_document_by_id et upsert_document_by_id.
  • Vérifier la santé du cluster — Vérifiez la connectivité et l'état des services avec test_cluster_connection et get_cluster_health_and_services.
  • Optimiser les index — Listez les index et obtenez des recommandations via list_indexes et get_index_advisor_recommendations.
  • Analyser les performances des requêtes — Trouvez les requêtes lentes ou non sélectives avec get_longest_running_queries et get_queries_using_primary_index.

Documentation

Couchbase MCP Server est un serveur MCP auto-hébergé qui permet aux agents IA de se connecter et d'interagir avec les données dans les clusters Couchbase, qu'ils soient hébergés sur Capella ou auto-gérés. Il fournit des outils dans plusieurs catégories, notamment Cluster Health, Data Schema, Key-Value, Query et Performance — avec des contrôles de sécurité via le mode lecture seule et la désactivation fine des outils. Il prend en charge les transports STDIO et HTTP Streamable.

Couchbase MCP server est distribué sous forme de paquet Python Package Index (PyPI) et via Docker. Le support Entreprise pour Couchbase MCP Server est disponible en concédant la licence Couchbase AI Data Plane, qui donne également droit à l'utilisation et au support Entreprise de Couchbase Agent Memory et Couchbase Agent Catalog.

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

Pour la documentation complète, consultez mcp-server.couchbase.com.

Couchbase Server MCP server

Fonctionnalités/Outils

Outils de configuration et de santé du cluster

Nom de l'outilDescription
get_server_configuration_statusObtenir le statut du serveur et la configuration sans se connecter au cluster — rapporte le mode lecture seule, les outils désactivés/nécessitant confirmation, les paramètres OAuth et la configuration de journalisation résolue
test_cluster_connectionVérifier les informations d'identification du cluster en se connectant au cluster
get_cluster_health_and_servicesObtenir l'état de santé du cluster et la liste de tous les services en cours d'exécution

Outils de découverte du modèle de données et du schéma

Nom de l'outilDescription
get_buckets_in_clusterObtenir la liste de tous les buckets du cluster
get_scopes_in_bucketObtenir la liste de tous les scopes du bucket spécifié
get_collections_in_scopeObtenir la liste de toutes les collections d'un scope et d'un bucket spécifiés. Notez que cet outil nécessite que le cluster dispose du service Query.
get_scopes_and_collections_in_bucketObtenir la liste de tous les scopes et collections du bucket spécifié
get_schema_for_collectionObtenir la structure d'une collection
create_scopeCréer un nouveau scope dans un bucket (Couchbase Server 7.6+ et Capella). Désactivé par défaut lorsque CB_MCP_READ_ONLY_MODE=true.
create_collectionCréer une nouvelle collection dans un scope existant (Couchbase Server 7.6+ et Capella). Désactivé par défaut lorsque CB_MCP_READ_ONLY_MODE=true.
delete_scopeSupprimer un scope et toutes ses collections d'un bucket — permanent. Désactivé par défaut lorsque CB_MCP_READ_ONLY_MODE=true.
delete_collectionSupprimer une collection et tous ses documents d'un scope — permanent. Désactivé par défaut lorsque CB_MCP_READ_ONLY_MODE=true.

Outils d'opérations KV sur documents

Nom de l'outilDescription
get_document_by_idObtenir un document par ID depuis un scope et une collection spécifiés
lookup_subdocumentRechercher des parties d'un document (champs spécifiques, vérifications d'existence ou comptages de tableaux/objets) par chemin sans récupérer tout le document
upsert_document_by_idUpsert d'un document par ID dans un scope et une collection spécifiés. Désactivé par défaut lorsque CB_MCP_READ_ONLY_MODE=true.
insert_document_by_idInsérer un nouveau document par ID (échoue si le document existe). Désactivé par défaut lorsque CB_MCP_READ_ONLY_MODE=true.
replace_document_by_idRemplacer un document existant par ID (échoue si le document n'existe pas). Désactivé par défaut lorsque CB_MCP_READ_ONLY_MODE=true.
delete_document_by_idSupprimer un document par ID depuis un scope et une collection spécifiés. Désactivé par défaut lorsque CB_MCP_READ_ONLY_MODE=true.
mutate_subdocumentModifier des parties d'un document existant (upsert, insertion, remplacement, suppression, opérations sur tableaux, compteurs) par chemin sans réécrire tout le document. Désactivé par défaut lorsque CB_MCP_READ_ONLY_MODE=true.

Outils de requête et d'indexation

Nom de l'outilDescription
list_indexesLister tous les index du cluster avec leurs définitions, avec filtrage optionnel par bucket, scope, collection et nom d'index. Définissez return_raw_index_stats=true pour renvoyer les informations d'index non traitées.
get_index_advisor_recommendationsObtenir des recommandations d'index de Couchbase Index Advisor pour une requête SQL++ donnée afin d'optimiser les performances des requêtes
create_indexCréer un index secondaire GSI scalaire (non vectoriel) sur une collection. Différé par défaut — appelez build_index ensuite pour le construire. Désactivé par défaut lorsque CB_MCP_READ_ONLY_MODE=true.
build_indexDéclencher la construction de tous les index différés sur une collection. Désactivé par défaut lorsque CB_MCP_READ_ONLY_MODE=true.
drop_indexSupprimer un index GSI (scalaire ou vectoriel) d'une collection. Désactivé par défaut lorsque CB_MCP_READ_ONLY_MODE=true.
run_sql_plus_plus_queryExécuter une requête SQL++ sur un scope spécifié.

Les requêtes sont automatiquement limitées au bucket et au scope spécifiés, utilisez donc directement les noms de collections (par exemple SELECT * FROM users au lieu de SELECT * FROM bucket.scope.users).

CB_MCP_READ_ONLY_MODE est true par défaut, ce qui signifie que toutes les opérations d'écriture (KV, Query, gestion des scopes/collections et gestion des index) sont désactivées. Lorsqu'il est activé, les outils d'écriture KV, de gestion des collections et d'index ne sont pas chargés et les requêtes SQL++ qui modifient les données sont bloquées.
explain_sql_plus_plus_queryGénérer et évaluer un plan EXPLAIN pour une requête SQL++. Renvoie les métadonnées de la requête, le plan extrait et les conclusions de l'évaluation du plan.

Outils d'analyse des performances des requêtes

Nom de l'outilDescription
get_longest_running_queriesObtenir les requêtes les plus longues par temps de service moyen
get_most_frequent_queriesObtenir les requêtes les plus fréquemment exécutées
get_queries_with_largest_response_sizesObtenir les requêtes avec les tailles de réponse les plus importantes
get_queries_with_large_result_countObtenir les requêtes avec les plus grands nombres de résultats
get_queries_using_primary_indexObtenir les requêtes qui utilisent un index primaire (problème de performance potentiel)
get_queries_not_using_covering_indexObtenir les requêtes qui n'utilisent pas d'index couvrant
get_queries_not_selectiveObtenir les requêtes qui ne sont pas sélectives (les analyses d'index renvoient beaucoup plus de documents que le résultat final)

Prérequis

  • Python 3.10 ou supérieur.
  • Un cluster Couchbase en cours d'exécution. Le moyen le plus simple de commencer est d'utiliser Capella avec son offre gratuite, qui est une version entièrement gérée du serveur Couchbase. Vous pouvez suivre les instructions pour importer l'un des ensembles de données d'exemple ou importer les vôtres.
  • uv installé pour exécuter le serveur.
  • Un client MCP tel que Claude Desktop installé pour connecter le serveur à Claude. Les instructions sont fournies pour Claude Desktop et Cursor. D'autres clients MCP peuvent également être utilisés.

Configuration

Le serveur MCP peut être exécuté soit à partir du paquet PyPI prédéfini, soit à partir du code source en utilisant uv.

Exécution depuis PyPI

Nous publions un paquet PyPI prédéfini pour le serveur MCP.

Configuration du serveur à l'aide du paquet prédéfini pour les clients MCP

Authentification de base

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

ou

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

Remarque : Si vous utilisez d'autres serveurs MCP dans le client, vous pouvez l'ajouter à l'objet mcpServers existant.

Exécution depuis le code source

Le serveur MCP peut être exécuté à partir du code source en utilisant ce dépôt.

Clonez le dépôt sur votre machine locale

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

Configuration du serveur à l'aide du code source pour les clients MCP

Ceci est la configuration courante pour les clients MCP tels que 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"
      }
    }
  }
}

Remarque : path/to/cloned/repo/mcp-server-couchbase/ doit être le chemin du dépôt cloné sur votre machine locale. N'oubliez pas la barre oblique finale à la fin !

Remarque : Si vous utilisez d'autres serveurs MCP dans le client, vous pouvez l'ajouter à l'objet mcpServers existant.

Configuration supplémentaire pour le serveur MCP

Le serveur peut être configuré à l'aide de variables d'environnement ou d'arguments de ligne de commande :

Variable d'environnementArgument CLIDescriptionDéfaut
CB_CONNECTION_STRING--connection-stringChaîne de connexion au cluster CouchbaseRequis
CB_USERNAME--usernameNom d'utilisateur avec accès aux buckets requis pour l'authentification de baseRequis (ou certificat client et clé nécessaires pour mTLS)
CB_PASSWORD--passwordMot de passe pour l'authentification de baseRequis (ou certificat client et clé nécessaires pour mTLS)
CB_CLIENT_CERT_PATH--client-cert-pathChemin vers le fichier de certificat client pour l'authentification mTLSRequis si mTLS (ou nom d'utilisateur et mot de passe requis)
CB_CLIENT_KEY_PATH--client-key-pathChemin vers le fichier de clé client pour l'authentification mTLSRequis si mTLS (ou nom d'utilisateur et mot de passe requis)
CB_CA_CERT_PATH--ca-cert-pathChemin vers le certificat racine du serveur pour TLS si le serveur est configuré avec un certificat auto-signé/non fiable. Cela ne sera pas requis si vous vous connectez à Capella
CB_MCP_READ_ONLY_MODE--read-only-modeEmpêcher toutes les modifications de données (KV, Query, gestion des scopes/collections et gestion des index). Lorsque activé, les outils d'écriture KV, de gestion de collections et d'index ne sont pas chargés.true
CB_MCP_TRANSPORT--transportMode de transport : stdio, http, ssestdio
CB_MCP_HOST--hostHôte pour les modes de transport HTTP/SSE127.0.0.1
CB_MCP_PORT--portPort pour les modes de transport HTTP/SSE8000
CB_MCP_DISABLED_TOOLS--disabled-toolsOutils à désactiver (voir Désactivation des outils)Aucun
CB_MCP_CONFIRMATION_REQUIRED_TOOLS--confirmation-required-toolsOutils nécessitant une confirmation explicite de l'utilisateur avant exécution via l'élicitation MCP (voir Outils nécessitant élicitation/confirmation)Aucun
CB_MCP_LOG_LEVEL--log-levelNiveau de journalisation pour le serveur MCP : off, debug, info, warning, error (voir Journalisation)info
CB_MCP_LOG_SINKS--log-sinksDestinations de journalisation séparées par des virgules : stderr, file, ou les deux (voir Journalisation)stderr
CB_MCP_LOG_FILE--log-fileChemin de base pour les fichiers de journalisation par niveau (utilisé uniquement lorsque le sink file est activé)mcp_server.log
CB_MCP_LOG_ROTATION_MAX_SIZE_MB--log-rotation-max-size-mbTaille maximale globale en Mo par fichier de journal avant rotation, héritée par chaque niveau sauf si remplacée. 0 est invalide et revient au défaut avec un avertissement au démarrage1 (1 Mo)
CB_MCP_LOG_MAX_BYTES--log-max-bytesObsolète — utilisez CB_MCP_LOG_ROTATION_MAX_SIZE_MB (Mo). Taille de rotation globale en octets, toujours honorée pour la rétrocompatibilité ; ignorée si CB_MCP_LOG_ROTATION_MAX_SIZE_MB est également définiNon défini
CB_MCP_LOG_ERROR_ROTATION_MAX_SIZE_MB--log-error-rotation-max-size-mbTaille de rotation en Mo pour le fichier de journal ERROR ; remplace CB_MCP_LOG_ROTATION_MAX_SIZE_MB pour ERRORHérite de CB_MCP_LOG_ROTATION_MAX_SIZE_MB
CB_MCP_LOG_WARNING_ROTATION_MAX_SIZE_MB--log-warning-rotation-max-size-mbTaille de rotation en Mo pour le fichier de journal WARNING ; remplace CB_MCP_LOG_ROTATION_MAX_SIZE_MB pour WARNINGHérite de CB_MCP_LOG_ROTATION_MAX_SIZE_MB
CB_MCP_LOG_INFO_ROTATION_MAX_SIZE_MB--log-info-rotation-max-size-mbTaille de rotation en Mo pour le fichier de journal INFO ; remplace CB_MCP_LOG_ROTATION_MAX_SIZE_MB pour INFOHérite de CB_MCP_LOG_ROTATION_MAX_SIZE_MB
CB_MCP_LOG_DEBUG_ROTATION_MAX_SIZE_MB--log-debug-rotation-max-size-mbTaille de rotation en Mo pour le fichier de journal DEBUG ; remplace CB_MCP_LOG_ROTATION_MAX_SIZE_MB pour DEBUGHérite de CB_MCP_LOG_ROTATION_MAX_SIZE_MB
CB_MCP_LOG_RETENTION_BACKUP_COUNT--log-retention-backup-countFichiers de sauvegarde de rotation conservés par fichier de journal par niveau (hors fichier actif), appliqué à chaque niveau sauf si remplacé. 0 conserve uniquement le fichier actif (voir Journalisation)1
CB_MCP_LOG_ERROR_RETENTION_BACKUP_COUNT--log-error-retention-backup-countSauvegardes de rotation conservées pour le fichier de journal ERROR ; remplace le nombre global pour ERRORHérite de CB_MCP_LOG_RETENTION_BACKUP_COUNT
CB_MCP_LOG_WARNING_RETENTION_BACKUP_COUNT--log-warning-retention-backup-countSauvegardes de rotation conservées pour le fichier de journal WARNING ; remplace le nombre global pour WARNINGHérite de CB_MCP_LOG_RETENTION_BACKUP_COUNT
CB_MCP_LOG_INFO_RETENTION_BACKUP_COUNT--log-info-retention-backup-countSauvegardes de rotation conservées pour le fichier de journal INFO ; remplace le nombre global pour INFOHérite de CB_MCP_LOG_RETENTION_BACKUP_COUNT
CB_MCP_LOG_DEBUG_RETENTION_BACKUP_COUNT--log-debug-retention-backup-countSauvegardes de rotation conservées pour le fichier de journal DEBUG ; remplace le nombre global pour DEBUGHérite de CB_MCP_LOG_RETENTION_BACKUP_COUNT
CB_MCP_OAUTH_JWT_JWKS_URI--oauth-jwks-uriPoint de terminaison JWKS du fournisseur d'identité utilisé pour vérifier les JWT de porteur. Active OAuth lorsqu'il est défini avec l'émetteur et l'audience (voir Autorisation OAuth 2.1)Aucun
CB_MCP_OAUTH_JWT_ISSUER--oauth-issuerRevendication JWT attendue iss. Requis pour activer OAuthAucun
CB_MCP_OAUTH_JWT_AUDIENCE--oauth-audienceRevendication JWT attendue aud. Requis pour activer OAuthAucun
CB_MCP_OAUTH_JWT_ALGORITHM--oauth-algorithmAlgorithme de signature JWT : un parmi RS256/384/512, ES256/384/512, PS256/384/512RS256
CB_MCP_OAUTH_MCP_BASE_URL--oauth-mcp-base-urlURL de base publique de ce serveur. Lorsqu'elle est définie, publie les métadonnées de ressource protégée RFC 9728 afin que les clients compatibles PRM puissent découvrir l'IdPAucun
CB_MCP_OAUTH_SCOPE_READ_LABEL--oauth-scope-read-labelRemplace l'étiquette de portée OAuth traitée comme accès 'lecture' (annoncée dans PRM et comparée à la revendication scope/scp du jeton). Utilisez ceci si votre IdP ne peut pas émettre la forme canoniquecouchbase-mcp:read
CB_MCP_OAUTH_SCOPE_WRITE_LABEL--oauth-scope-write-labelRemplace l'étiquette de portée OAuth traitée comme accès 'écriture' ; mêmes sémantiques que l'étiquette de lecturecouchbase-mcp:write

Configuration du mode lecture seule

CB_MCP_READ_ONLY_MODE est l'interrupteur unique contrôlant les opérations d'écriture :

  • Lorsque true (par défaut) : Toutes les opérations d'écriture (KV, Query, gestion des scopes/collections et gestion des index) sont désactivées. Les outils d'écriture KV (upsert, insert, replace, delete, mutation de sous-document), les outils d'écriture de gestion des scopes/collections (create_scope, create_collection, delete_scope, delete_collection) et les outils d'écriture d'index (create_index, build_index, drop_index) ne sont pas chargés et ne seront pas disponibles pour le LLM, et les requêtes SQL++ qui modifient des données ou la structure sont bloquées.
  • Lorsque false : Les outils d'écriture KV, de gestion des scopes/collections et d'index sont chargés et les requêtes SQL++ de modification de données/structure sont autorisées.

C'est le défaut sûr recommandé pour éviter les modifications involontaires de données par les LLM.

Note : Pour l'authentification, vous avez besoin soit du nom d'utilisateur et du mot de passe, soit du certificat client et des chemins de clé. Vous pouvez éventuellement spécifier le chemin du certificat racine de l'AC qui sera utilisé pour valider les certificats du serveur. Si le chemin du certificat client & clé et le nom d'utilisateur et le mot de passe sont tous deux spécifiés, les certificats clients seront utilisés pour l'authentification.

Désactivation des outils

Vous pouvez désactiver des outils spécifiques pour les empêcher d'être chargés et exposés au client MCP. Les outils désactivés n'apparaîtront pas dans la découverte d'outils et ne peuvent pas être invoqués par le LLM.

Formats pris en charge

Liste séparée par des virgules :

# 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

Chemin de fichier (un nom d'outil par ligne) :

# Environment variable
CB_MCP_DISABLED_TOOLS=disabled_tools.txt

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

Format de fichier (par exemple, disabled_tools.txt) :

# Write operations
upsert_document_by_id
delete_document_by_id

# Index advisor
get_index_advisor_recommendations

Les lignes commençant par # sont traitées comme des commentaires et ignorées.

Exemples de configuration client MCP

Utilisation d'une liste séparée par des virgules :

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

Utilisation d'un chemin de fichier (recommandé pour de nombreux outils) :

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

Note de sécurité importante

Avertissement : Désactiver des outils ne garantit pas à lui seul que certaines opérations ne peuvent pas être effectuées. Les permissions RBAC (contrôle d'accès basé sur les rôles) de l'utilisateur de base de données sous-jacent sont le contrôle de sécurité faisant autorité.

Par exemple, même si vous désactivez upsert_document_by_id et delete_document_by_id, les modifications de données peuvent toujours se produire via l'outil run_sql_plus_plus_query en utilisant les instructions DML SQL++ (INSERT, UPDATE, DELETE, MERGE) sauf si :

  • Le CB_MCP_READ_ONLY_MODE est défini sur true (par défaut), OU
  • L'utilisateur de la base de données ne dispose pas des permissions RBAC nécessaires pour la modification de données

Meilleure pratique : Configurez toujours des permissions RBAC appropriées sur vos identifiants utilisateur Couchbase comme mesure de sécurité principale. Utilisez la désactivation d'outils comme couche supplémentaire pour guider le comportement du LLM et réduire la surface d'attaque, et non comme seul contrôle de sécurité.

Élicitation/Confirmation pour les appels d'outils

Vous pouvez exiger une confirmation explicite de l'utilisateur pour des outils spécifiques avant l'exécution (lorsque le client MCP prend en charge l'élicitation).

CB_MCP_CONFIRMATION_REQUIRED_TOOLS / --confirmation-required-tools prend en charge ces formats :

  • Liste séparée par des virgules
  • Chemin de fichier (un nom d'outil par ligne, commentaires # pris en charge)

Exemple :

# 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

Lorsqu'un outil répertorié est invoqué :

  • Si le client prend en charge l'élicitation, l'utilisateur est invité à confirmer.
  • Si le client ne prend pas en charge l'élicitation, l'outil s'exécute sans confirmation pour la rétrocompatibilité.

Vous pouvez également vérifier la version du serveur en utilisant :

uvx couchbase-mcp-server --version

Journalisation

Le serveur MCP journalise dans stderr par défaut. La journalisation est configurée avec les variables CB_MCP_LOG_* listées dans Configuration supplémentaire :

  • CB_MCP_LOG_LEVEL — combien est journalisé : info (le défaut) journalise les événements de cycle de vie et les invocations d'outils, debug ajoute des détails internes verbeux, et off désactive toute journalisation.
  • CB_MCP_LOG_SINKS — où vont les journaux : stderr (le défaut), fichiers rotatifs par niveau (file), ou les deux. Avec file, un fichier est écrit par niveau (par exemple mcp_server.info.log et mcp_server.error.log) au chemin défini par CB_MCP_LOG_FILE.
  • Taille de rotationCB_MCP_LOG_ROTATION_MAX_SIZE_MB est la taille globale (en Mo) à laquelle chaque fichier par niveau tourne. Remplacez les niveaux individuels avec CB_MCP_LOG_<LEVEL>_ROTATION_MAX_SIZE_MB (ERROR/WARNING/INFO/DEBUG), également en Mo, qui héritent du global lorsqu'ils ne sont pas définis. Une taille de 0 (globale ou par niveau) est invalide et revient au défaut (1 Mo) avec un avertissement au démarrage. CB_MCP_LOG_MAX_BYTES (octets) est obsolète mais toujours honoré pour la rétrocompatibilité ; il est ignoré lorsque CB_MCP_LOG_ROTATION_MAX_SIZE_MB est également défini, et imprime un avertissement de dépréciation au démarrage.
  • RétentionCB_MCP_LOG_RETENTION_BACKUP_COUNT définit combien de sauvegardes de rotation sont conservées par niveau (hors fichier actif) ; le défaut de 1 préserve le comportement précédent. Remplacez les niveaux individuels avec CB_MCP_LOG_<LEVEL>_RETENTION_BACKUP_COUNT (ERROR/WARNING/INFO/DEBUG), qui héritent de la valeur globale lorsqu'ils ne sont pas définis. Définissez un compte à 0 pour conserver uniquement le fichier actif pour ce niveau — il est toujours plafonné par la taille de rotation (réinitialisé au roulement plutôt que sauvegardé).
  • Instantané de configuration du serveur — lorsque le sink file est actif, un enregistrement unique (système d'exploitation, Python, versions de dépendances, transport, configuration de journalisation résolue et configuration serveur expurgée) est écrit en JSON dans un fichier mcp_server_config.log.json dédié (dérivé de la base CB_MCP_LOG_FILE). Il est écrasé à chaque démarrage, donc le support dispose toujours de la configuration actuelle et elle ne sort jamais d'un journal rotatif.
# 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

Pour plus de détails, voir la documentation.

Configuration spécifique au client

Claude Desktop

Suivez les étapes ci-dessous pour utiliser le serveur MCP Couchbase avec le client MCP Claude Desktop

  1. Le serveur MCP peut maintenant être ajouté à Claude Desktop en modifiant le fichier de configuration. Des instructions plus détaillées se trouvent dans le guide de démarrage rapide MCP.

    • Sur Mac, le fichier de configuration se trouve à ~/Library/Application Support/Claude/claude_desktop_config.json
    • Sur Windows, le fichier de configuration se trouve à %APPDATA%\Claude\claude_desktop_config.json
Ouvrez le fichier de configuration et ajoutez la [configuration](#configuration) à la section `mcpServers`.
  1. Redémarrez Claude Desktop pour appliquer les modifications.

  2. Vous pouvez maintenant utiliser le serveur dans Claude Desktop pour exécuter des requêtes sur le cluster Couchbase en langage naturel et effectuer des opérations CRUD sur les documents.

Logs

Les logs de Claude Desktop se trouvent aux emplacements suivants :

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

Les logs peuvent être utilisés pour diagnostiquer les problèmes de connexion ou d'autres problèmes avec la configuration de votre serveur MCP. Pour plus de détails, reportez-vous à la documentation officielle.

Cursor

Suivez les étapes ci-dessous pour utiliser le serveur Couchbase MCP avec Cursor :

  1. Installez Cursor sur votre machine.

  2. Dans Cursor, allez dans Cursor > Paramètres de Cursor > Outils et intégrations > Outils MCP. Consultez également la documentation sur la configuration du serveur MCP de Cursor.

  3. Spécifiez manuellement la même configuration, ou utilisez le lien en un clic Installer dans Cursor. Vous devrez peut-être ajouter la configuration du serveur sous une clé parente mcpServers.

    Remarque : Le lien d'installation utilise des valeurs d'espace réservé à partir des exemples de configuration ci-dessus. Mettez à jour la chaîne de connexion et les identifiants après l'installation.

  4. Enregistrez la configuration.

  5. Vous verrez couchbase comme serveur ajouté dans la liste des serveurs MCP. Actualisez pour vérifier que le serveur est activé.

  6. Vous pouvez maintenant utiliser le serveur Couchbase MCP dans Cursor pour interroger votre cluster Couchbase en langage naturel et effectuer des opérations CRUD sur les documents.

Pour plus de détails sur l'intégration MCP avec Cursor, reportez-vous à la documentation officielle de Cursor MCP.

Logs

Dans le panneau inférieur de Cursor, cliquez sur « Output » et sélectionnez « Cursor MCP » dans le menu déroulant pour afficher les logs du serveur. Cela peut aider à diagnostiquer les problèmes de connexion ou d'autres problèmes avec la configuration de votre serveur MCP.

Windsurf Editor

Suivez les étapes ci-dessous pour utiliser le serveur Couchbase MCP avec Windsurf Editor.

  1. Installez Windsurf Editor sur votre machine.

  2. Dans Windsurf Editor, accédez à la Palette de commandes > Panneau de configuration MCP Windsurf ou à Windsurf - Paramètres > Avancé > Cascade > Serveurs Model Context Protocol (MCP). Pour plus de détails sur la configuration, veuillez consulter la documentation officielle.

  3. Cliquez sur Ajouter un serveur puis Ajouter un serveur personnalisé. Sur la configuration qui s'ouvre dans l'éditeur, ajoutez la configuration du serveur Couchbase MCP ci-dessus.

  4. Enregistrez la configuration.

  5. Vous verrez couchbase comme serveur ajouté dans la liste des serveurs MCP sous Paramètres avancés. Actualisez pour vérifier que le serveur est activé.

  6. Vous pouvez maintenant utiliser le serveur Couchbase MCP dans Windsurf Editor pour interroger votre cluster Couchbase en langage naturel et effectuer des opérations CRUD sur les documents.

Pour plus de détails sur l'intégration MCP avec Windsurf Editor, reportez-vous à la documentation officielle de Windsurf MCP.

VS Code

Suivez les étapes ci-dessous pour utiliser le serveur Couchbase MCP avec VS Code.

  1. Installez VS Code

  2. Voici quelques façons de configurer le serveur MCP.

    • Pour une configuration de serveur d'espace de travail

      • Créez un nouveau fichier dans l'espace de travail sous le nom .vscode/mcp.json.
      • Ajoutez la configuration et enregistrez le fichier.
    • Pour la configuration globale du serveur :

      • Exécutez MCP : Ouvrir la configuration utilisateur dans la palette de commandes (Ctrl+Shift+P ou Cmd+Shift+P)
      • Ajoutez la configuration et enregistrez le fichier.
    • Remarque : VS Code utilise servers comme propriété JSON de premier niveau dans les fichiers mcp.json pour définir les serveurs MCP, tandis que Cursor utilise mcpServers pour la configuration équivalente. Consultez les configurations client VS Code pour toute modification ou détail supplémentaire. Un exemple de configuration VS Code est fourni ci-dessous.

        {
          "servers": {
            "couchbase": {
              "command": "uvx",
              "args": ["couchbase-mcp-server"],
              "env": {
                "CB_CONNECTION_STRING": "couchbases://connection-string",
                "CB_USERNAME": "username",
                "CB_PASSWORD": "password"
              }
            }
          }
        }
      
  3. Une fois le fichier enregistré, le serveur démarre et une petite liste d'actions apparaît avec Running|Stop|n Tools|More...

  4. Cliquez sur les options de la liste pour Start/Stop/gérer le serveur.

  5. Vous pouvez maintenant utiliser le serveur Couchbase MCP dans VS Code pour interroger votre cluster Couchbase en langage naturel et effectuer des opérations CRUD sur les documents.

Logs : Dans la palette de commandes (Ctrl+Shift+P ou Cmd+Shift+P),

  • exécutez la commande MCP : Lister les serveurs et sélectionnez le serveur couchbase
  • choisissez « Afficher la sortie » pour voir ses logs dans l'onglet Sortie.
IDE JetBrains

Suivez les étapes ci-dessous pour utiliser le serveur Couchbase MCP avec les IDE JetBrains

  1. Installez l'un des IDE JetBrains
  2. Installez l'un des plugins JetBrains - AI Assistant ou Junie
  3. Accédez à Paramètres > Outils > AI Assistant ou Junie > Serveur MCP
  4. Cliquez sur « + » pour ajouter la configuration Couchbase MCP et cliquez sur Enregistrer.
  5. Vous verrez le serveur Couchbase MCP ajouté à la liste des serveurs. Une fois que vous cliquez sur Appliquer, le serveur Couchbase MCP démarre et au survol du statut, il affiche tous les outils disponibles.
  6. Vous pouvez maintenant utiliser le serveur Couchbase MCP dans les IDE JetBrains pour interroger votre cluster Couchbase en langage naturel et effectuer des opérations CRUD sur les documents.

Logs : Le fichier journal peut être consulté dans Aide > Afficher le journal dans le Finder (Explorer) > mcp > couchbase

Mode de transport HTTP Streamable

Le serveur MCP peut être exécuté en mode de transport HTTP Streamable, ce qui permet à plusieurs clients de se connecter à la même instance de serveur via HTTP. Vérifiez si votre client MCP prend en charge le transport HTTP streamable avant d'essayer de vous connecter au serveur MCP dans ce mode.

Remarque : L'autorisation OAuth 2.1 est prise en charge sur ce transport. Voir Autorisation OAuth 2.1. Sans OAuth configuré, le point de terminaison HTTP n'est pas authentifié.

Utilisation

Par défaut, le serveur MCP s'exécute sur le port 8000, mais cela peut être configuré à l'aide de la variable d'environnement --port ou CB_MCP_PORT.

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

Le serveur sera disponible sur http://localhost:8000/mcp. Cela peut être utilisé dans les clients MCP prenant en charge le mode de transport HTTP streamable, tels que Cursor.

Configuration du client MCP

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

Mode de transport SSE

Il existe une option pour exécuter le serveur MCP en mode de transport Server-Sent Events (SSE).

Remarque : Le mode SSE a été déprécié par MCP. Nous prenons en charge HTTP Streamable.

SSE : Utilisation

Par défaut, le serveur MCP s'exécute sur le port 8000, mais cela peut être configuré à l'aide de la variable d'environnement --port ou CB_MCP_PORT.

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

Le serveur sera disponible sur http://localhost:8000/sse. Cela peut être utilisé dans les clients MCP prenant en charge le mode de transport SSE, tels que Cursor.

SSE : Configuration du client MCP

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

Autorisation OAuth 2.1

Lorsqu'il est exécuté avec --transport=http, le serveur MCP peut agir en tant que serveur de ressources OAuth 2.1 : il valide les JWT porteurs entrants par rapport au JWKS de votre fournisseur d'identité. Il est indépendant du fournisseur (tout fournisseur OAuth 2.1 / OIDC qui publie un JWKS - Auth0, Okta, Keycloak, AWS Cognito, Microsoft Entra, etc.) et n'émet pas de jetons ni ne gère les utilisateurs. Les paramètres OAuth sont ignorés sur stdio.

OAuth est configuré avec les variables CB_MCP_OAUTH_* répertoriées dans la Configuration supplémentaire :

  • OAuth ne s'active que lorsque les trois **CB_MCP_OAUTH_JWT_JWKS_URI, CB_MCP_OAUTH_JWT_ISSUER et CB_MCP_OAUTH_JWT_AUDIENCE sont définies ; si seulement certaines sont définies, le démarrage échoue.
  • La définition de CB_MCP_OAUTH_MCP_BASE_URL publie en outre les métadonnées de ressource protégée RFC 9728 afin que les clients compatibles PRM puissent découvrir le serveur d'autorisation.
  • L'accès est contrôlé par deux portées lues à partir de la revendication scope/scp du jeton : couchbase-mcp:read (outils de lecture, y compris SQL++) et couchbase-mcp:write (outils d'écriture : mutations KV, gestion des portées/collections et gestion des index). Un accès complet nécessite les deux. Si votre IdP ne peut pas émettre ces étiquettes canoniques, remplacez-les par 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>'

Pour tous les détails, consultez la documentation.

Image Docker

Le serveur MCP peut également être construit et exécuté comme un conteneur Docker. Des images pré-construites sont disponibles sur DockerHub ou peuvent être récupérées via docker pull docker.io/couchbase/mcp-server:latest.

Alternativement, nous faisons partie du Catalogue MCP Docker.

Construction de l'image

docker build -t mcp/couchbase-src .
Construction avec des arguments Si vous souhaitez construire avec les arguments de construction pour le hash de commit et l'heure de construction, vous pouvez construire en utilisant :
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 .

Alternativement, utilisez le script de construction fourni :

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

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

Ce script automatise :

  • Accepte un paramètre optionnel de nom d'image (par défaut mcp/couchbase-src)
  • Génère le hash de commit git et l'horodatage de construction
  • Crée plusieurs étiquettes utiles (latest, <short-commit>)
  • Affiche les informations de construction et les résultats
  • Utilise les mêmes arguments que les constructions CI/CD

Vérifier les étiquettes de l'image :

# 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

Exécution

Le serveur MCP peut être exécuté avec les variables d'environnement utilisées pour configurer les paramètres Couchbase. Les variables d'environnement sont les mêmes que celles décrites dans la section Configuration supplémentaire.

Conteneur Docker indépendant

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

Les variables d'environnement CB_MCP_PORT et CB_MCP_HOST ne s'appliquent que dans le cas des modes de transport HTTP comme http et sse.

Docker : Configuration du client MCP

L'image Docker peut être utilisée en mode de transport stdio avec la configuration suivante.

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

Notes

  • La valeur de couchbase_connection_string dépend du fait que le serveur Couchbase s'exécute sur la même machine hôte, dans un autre conteneur Docker ou sur un hôte distant. Si votre serveur Couchbase s'exécute sur votre machine hôte, votre chaîne de connexion serait probablement de la forme couchbase://host.docker.internal. Pour plus de détails, reportez-vous à la documentation Docker.
  • Vous pouvez spécifier le réseau du conteneur à l'aide de l'option --network=<your_network>. Le réseau choisi dépend de votre environnement ; la valeur par défaut est bridge. Pour plus de détails, reportez-vous aux pilotes réseau dans Docker.

Risques associés aux LLM

  • L'utilisation de grands modèles de langage et de technologies similaires comporte des risques, notamment la possibilité de sorties inexactes ou nuisibles.
  • Couchbase n'examine ni n'évalue la qualité ou l'exactitude de ces sorties, et ces sorties peuvent ne pas refléter les opinions de Couchbase.
  • Vous êtes seul responsable de la décision d'utiliser les grands modèles de langage et les technologies connexes, et de vous conformer à toutes conditions de licence, conditions d'utilisation et politiques de votre organisation régissant leur utilisation.

Collecte des données d'utilisation

Ce produit collecte automatiquement des données d'utilisation et de performance (telles que le nom et la version du produit) et des informations sur le navigateur (telles que l'adresse IP) (collectivement, les « données d'utilisation »). Couchbase utilise les données d'utilisation, ainsi que d'autres données que vous pouvez fournir à Couchbase (telles que votre nom d'utilisateur ou votre adresse e-mail), pour développer et améliorer nos produits ainsi que pour informer nos programmes de vente et de marketing. Nous n'accédons pas ni ne collectons les données que vous stockez dans les produits Couchbase. Nous utilisons les données d'utilisation pour comprendre les modèles d'utilisation agrégés et rendre nos produits plus utiles pour vous. Pour plus d'informations sur la façon dont Couchbase collecte, protège et traite les informations, veuillez vous référer à la politique de confidentialité de Couchbase consultable à l'adresse https://www.couchbase.com/privacy-policy.

Conseils de dépannage

  • Assurez-vous que le chemin vers votre dépôt de serveur MCP est correct dans la configuration si vous exécutez depuis la source.
  • Vérifiez que votre chaîne de connexion Couchbase, le nom d'utilisateur de la base de données, le mot de passe ou le chemin vers les certificats sont corrects.
  • Si vous utilisez Couchbase Capella, assurez-vous que le cluster est accessible depuis la machine où le serveur MCP est exécuté.
  • Vérifiez que l'utilisateur de la base de données dispose des autorisations appropriées pour accéder à au moins un bucket.
  • Confirmez que le gestionnaire de paquets uv est correctement installé et accessible. Vous devrez peut-être fournir le chemin absolu vers uv/uvx dans le champ command de la configuration.
  • Consultez les journaux pour détecter toute erreur ou avertissement pouvant indiquer des problèmes avec le serveur MCP. L'emplacement des journaux dépend de votre client MCP.
  • Si vous rencontrez des problèmes lors de l'exécution de votre serveur MCP depuis la source après avoir mis à jour votre dépôt local de serveur MCP, essayez d'exécuter uv sync pour mettre à jour les dépendances.

Tests d'intégration

Nous fournissons des tests d'intégration MCP de haut niveau pour vérifier que le serveur expose les outils attendus et qu'ils peuvent être invoqués contre un cluster Couchbase de démonstration.

  1. Exportez les informations d'identification du cluster de démonstration :
    • CB_CONNECTION_STRING
    • CB_USERNAME
    • CB_PASSWORD
    • Optionnel : CB_MCP_TEST_BUCKET (un bucket à sonder pendant les tests)
  2. Exécutez les tests :
uv run pytest tests/ -v

👩‍💻 Contribuer

Nous accueillons les contributions de la communauté ! Que vous souhaitiez corriger des bogues, ajouter des fonctionnalités ou améliorer la documentation, votre aide est appréciée.

Si vous avez besoin d'aide, avez trouvé un bogue ou souhaitez contribuer à des améliorations, le meilleur endroit pour le faire est ici même — en ouvrant un problème GitHub.

Pour les développeurs

Si vous êtes intéressé par la contribution de code ou la mise en place d'un environnement de développement :

📖 Voir CONTRIBUTING.md pour des instructions complètes de configuration pour les développeurs, notamment :

  • Configuration de l'environnement de développement avec uv
  • Linting et formatage du code avec Ruff
  • Installation des hooks pre-commit
  • Aperçu de la structure du projet
  • Flux de travail et pratiques de développement

Démarrage rapide pour les contributeurs

# 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

📢 Politique de support

Nous apprécions sincèrement votre intérêt pour ce projet ! Ce projet est maintenu par la communauté Couchbase, ce qui signifie qu'il n'est pas officiellement pris en charge par notre équipe de support. Cependant, nos ingénieurs surveillent et maintiennent activement ce dépôt et essaieront de résoudre les problèmes au mieux de leurs capacités.

Notre portail de support ne peut pas aider avec les demandes liées à ce projet, nous vous demandons donc de bien vouloir garder toutes les demandes dans GitHub.

Votre collaboration nous aide tous à avancer ensemble — merci !