Utiliser Cloud SQL pour PostgreSQL avec MCP, l'interface de ligne de commande Gemini et d'autres agents

Cette page vous explique comment connecter votre instance Cloud SQL à différents outils d'assistance aux développeurs d'IA, y compris les suivants :

Pour une expérience intégrée, nous vous recommandons d'utiliser l'extension Gemini CLI dédiée pour Cloud SQL pour PostgreSQL.

En tant qu'interface de ligne de commande de nouvelle génération pour As Google Cloud, la CLI Gemini regroupe le serveur MCP sous-jacent directement dans l'extension, ce qui simplifie la configuration. Vous pouvez configurer Gemini Code Assist pour qu'il utilise la CLI Gemini, ce qui offre des avantages de configuration similaires dans votre IDE.

Pour les autres outils pour les développeurs compatibles avec le Model Context Protocol (MCP), vous pouvez vous connecter en configurant manuellement la MCP Toolbox pour les bases de données (Toolbox). Toolbox est un serveur MCP Open Source qui connecte les agents d'IA à vos données en gérant des tâches telles que l'authentification et le regroupement de connexions. Cela vous permet d'interagir avec vos données en langage naturel directement depuis votre IDE. Pour ces outils, cette méthode fournit des fonctionnalités d'interaction de base avec la base de données.

Pour en savoir plus, consultez Outils prédéfinis et MCP Toolbox for Databases sur GitHub.

À propos de la CLI Gemini et des extensions

La CLI Gemini est un agent d'IA Open Source conçu pour vous aider dans vos workflows de développement en vous assistant pour le codage, le débogage, l'exploration de données et la création de contenu. Il fournit une interface agentique pour interagir avec les services de base de données et d'analyse, ainsi qu'avec les bases de données Open Source populaires.

Fonctionnement des extensions

La CLI Gemini est très extensible et permet d'ajouter de nouveaux outils et de nouvelles fonctionnalités grâce aux extensions. Vous pouvez charger les extensions à partir d'une URL GitHub, d'un répertoire local ou d'un registre configurable. Ils fournissent de nouveaux outils, des commandes slash et des requêtes pour vous aider dans votre workflow.

Utiliser les extensions de l'interface de ligne de commande Gemini dans Cloud SQL pour PostgreSQL

L'extension CLI Gemini pour Cloud SQL est basée sur MCP Toolbox pour les bases de données. MCP Toolbox for Databases est actuellement en version bêta (avant la version 1.0) et peut subir des modifications incompatibles jusqu'à la première version stable (v1.0).

L'intégration à la CLI Gemini se fait via une extension dédiée qui offre des fonctionnalités supplémentaires par rapport à la connexion standard à la boîte à outils. L'extension offre un processus d'installation simplifié et un ensemble d'outils.

Pour en savoir plus, consultez la documentation GitHub sur l'extension Gemini CLI pour Cloud SQL pour PostgreSQL.

Extension Gemini CLI pour les bases de données Cloud SQL pour PostgreSQL

L'extension cloud-sql-postgresql inclut des outils permettant d'interroger la base de données, de gérer les ressources Cloud SQL et de surveiller l'état de la base de données.

Catégorie Outils
Opérations de base de données
  • list_tables : liste toutes les tables et leurs descriptions correspondantes dans une base de données.
  • execute_sql : exécute n'importe quelle instruction SQL.
  • list_active_queries : liste les requêtes en cours d'exécution sur une instance Cloud SQL.
  • list_available_extensions : liste les extensions PostgreSQL disponibles pour l'installation sur une instance Cloud SQL.
  • list_installed_extensions : liste les extensions PostgreSQL installées sur une instance Cloud SQL.
  • get_query_plan : récupère le plan de requête pour une seule instruction à partir d'une instance Cloud SQL.
Gestion des ressources pour les instances et les utilisateurs
  • create_user : crée un utilisateur dans une instance Cloud SQL.
  • list_databases : liste toutes les bases de données d'une instance Cloud SQL.
  • create_database : crée une base de données dans une instance Cloud SQL.
  • list_instances : liste les instances Cloud SQL d'un projet donné.
  • get_instance : obtenir des informations sur une instance Cloud SQL spécifique.
  • create_instance : crée une instance Cloud SQL.
  • wait_for_operation : interroge l'API Operations jusqu'à ce qu'une opération soit terminée.
État et maintenance de la base de données
  • list_autovacuum_configurations : liste les paramètres d'autovacuum sur une instance Cloud SQL. Les opérations de nettoyage suppriment les tuples morts pour libérer de l'espace disque, éviter le gonflement des tables et améliorer les performances de lecture et d'écriture.
  • list_memory_configurations : liste les paramètres de mémoire au niveau de l'instance sur une instance Cloud SQL. Affiche des paramètres tels que shared_buffers et work_mem pour vous aider à évaluer et à optimiser l'allocation des ressources pour l'exécution et la mise en cache des requêtes.
  • list_top_bloated_tables : Liste les tables d'une instance Cloud SQL présentant le plus d'espace inutilisé (gonflement). Ces informations peuvent vous aider à planifier la maintenance, y compris le nettoyage ou la réindexation, pour récupérer de l'espace disque et améliorer la vitesse des requêtes.
  • list_replication_slots : liste les détails des emplacements de réplication, tels que la journalisation write-ahead (WAL) sur une instance Cloud SQL. Aide à la gestion et à la résolution des problèmes liés à la réplication.
  • list_invalid_indexes : liste les index non valides sur une instance Cloud SQL. Vous pouvez utiliser ces informations pour reconstruire ou supprimer les index non valides afin d'améliorer les performances des requêtes.

L'extension cloud-sql-postgresql-observability fournit une interface unifiée pour gérer et surveiller les performances et l'état des bases de données directement depuis la CLI Gemini.

Catégorie Outils
Observabilité
  • get_system_metrics : récupère les métriques système d'une instance Cloud SQL.
  • get_query_metrics : récupère les métriques liées aux requêtes pour une instance Cloud SQL.

Extension Gemini CLI pour les bases de données PostgreSQL

Pour obtenir la liste de ces opérations, consultez MCP Toolbox for Databases et Extension CLI Gemini pour PostgreSQL.

Avant de commencer

Installer la boîte à outils MCP

  1. Pour installer la boîte à outils, téléchargez le fichier binaire correspondant à votre système d'exploitation et à l'architecture de votre processeur.

    linux/amd64

    curl -O https://storage.googleapis.com/genai-toolbox/v0.7.0/linux/amd64/toolbox

    darwin/arm64

    curl -O https://storage.googleapis.com/genai-toolbox/v0.7.0/darwin/arm64/toolbox

    darwin/amd64

    curl -O https://storage.googleapis.com/genai-toolbox/v0.7.0/darwin/amd64/toolbox

    windows/amd64

    curl -O https://storage.googleapis.com/genai-toolbox/v0.7.0/windows/amd64/toolbox
  2. Rendez le binaire exécutable :

    chmod +x toolbox
    
  3. Vérifiez l'installation à l'aide de la commande suivante :

    ./toolbox --version
    

Configurer le client MCP

Cette section explique comment configurer différents outils pour les développeurs afin de se connecter à votre instance Cloud SQL à l'aide de Toolbox. Toolbox agit en tant que serveur MCP (Model Context Protocol) Open Source qui se trouve entre votre IDE et votre base de données. Il fournit un plan de contrôle sécurisé et efficace pour vos outils d'IA. Sélectionnez l'onglet correspondant à votre outil pour afficher les instructions de configuration.

Interface de ligne de commande Gemini pour Cloud SQL pour PostgreSQL


  1. Installez la Gemini CLI.
  2. Installez l'extension Cloud SQL pour PostgreSQL pour Gemini CLI à partir du dépôt GitHub à l'aide de la commande suivante :
      gemini extensions install https://github.com/gemini-cli-extensions/cloud-sql-postgresql
      
  3. Définissez des variables d'environnement pour vous connecter à votre instance Cloud SQL :
      export CLOUD_SQL_POSTGRES_PROJECT="PROJECT_NAME"
      export CLOUD_SQL_POSTGRES_REGION="REGION"
      export CLOUD_SQL_POSTGRES_INSTANCE="INSTANCE_NAME"
      export CLOUD_SQL_POSTGRES_DATABASE="DATABASE_NAME"
      export CLOUD_SQL_POSTGRES_USER="DATABASE_USER_NAME"
      export CLOUD_SQL_POSTGRES_PASSWORD="PASSWORD"
      export CLOUD_SQL_POSTGRES_IP_TYPE="IP_TYPE"
      
    Remplacez les éléments suivants :
    • PROJECT_NAME : ID du projet Google Cloud .
    • REGION : région de votre instance Cloud SQL.
    • INSTANCE_NAME : ID de votre instance Cloud SQL.
    • DATABASE_NAME : nom de la base de données à laquelle se connecter
    • DATABASE_USER_NAME : nom d'utilisateur de la base de données (facultatif). Si aucune valeur n'est spécifiée, l'authentification IAM est utilisée par défaut.
    • PASSWORD : facultatif : mot de passe de l'utilisateur de la base de données. Si aucune valeur n'est spécifiée, l'authentification IAM est utilisée par défaut.
    • IP_TYPE : facultatif, type d'adresse IP, tel que "Public" (par défaut) ou "Private".
  4. Démarrez la CLI Gemini en mode interactif :
      gemini
      

    La CLI charge automatiquement l'extension CLI Gemini pour Cloud SQL et ses outils, que vous pouvez utiliser pour interagir avec votre base de données.

    Dans la Gemini CLI, exécutez la commande /extensions pour vérifier que l'extension est installée et la commande /mcp list pour afficher les outils.

CLI Gemini pour PostgreSQL


1. Installez la Gemini CLI.
2. Installez l'extension logicielle PostgreSQL pour l'CLI Gemini à partir du dépôt GitHub à l'aide de la commande suivante :
      gemini extensions install https://github.com/gemini-cli-extensions/postgres
      
3. Définissez des variables d'environnement pour vous connecter à votre instance PostgreSQL :
      export POSTGRES_HOST="HOST"
      export POSTGRES_PORT="PORT"
      export POSTGRES_DATABASE="DATABASE"
      export POSTGRES_USER="USER"
      export POSTGRES_PASSWORD="PASSWORD"
      export POSTGRES_QUERY_PARAMETERS="QUERY_PARAMETERS"
      
Remplacez les éléments suivants :
  • HOST : nom d'hôte ou adresse IP du serveur PostgreSQL.
  • PORT : numéro de port du serveur PostgreSQL.
  • DATABASE : nom de la base de données à laquelle se connecter
  • USER : nom d'utilisateur de la base de données.
  • PASSWORD : mot de passe de l'utilisateur de la base de données.
  • QUERY_PARAMETERS : (facultatif) requête brute à ajouter à la chaîne de connexion db.
4. Démarrez la CLI Gemini en mode interactif :
      gemini
      

La CLI charge automatiquement l'extension CLI Gemini pour PostgreSQL et ses outils, que vous pouvez utiliser pour interagir avec votre base de données.

Gemini Code Assist


1. Installez l'extension Gemini Code Assist dans Visual Studio Code.
2. Activez le mode Agent dans le chat Gemini Code Assist.
3. Dans votre répertoire de travail, créez un dossier nommé .gemini. Dans ce dossier, créez un fichier settings.json.
4. Ajoutez la configuration suivante, remplacez les variables d'environnement par vos valeurs, puis enregistrez :


{
  "mcpServers": {
    "cloud-sql-postgres": {
      "command": "./PATH/TO/toolbox",
      "args": ["--prebuilt","cloud-sql-postgres","--stdio"],
      "env": {
        "CLOUD_SQL_POSTGRES_PROJECT": "PROJECT_ID",
        "CLOUD_SQL_POSTGRES_REGION": "REGION",
        "CLOUD_SQL_POSTGRES_INSTANCE": "INSTANCE_ID",
        "CLOUD_SQL_POSTGRES_DATABASE": "DATABASE_NAME",
        "CLOUD_SQL_POSTGRES_USER": "USER_ID",
        "CLOUD_SQL_POSTGRES_PASSWORD": "PASSWORD"
      }
    }
  }
}

Code Claude


1. Installez Claude Code.
2. Créez un fichier .mcp.json à la racine de votre projet s'il n'existe pas.
3. Ajoutez la configuration, remplacez les variables d'environnement par vos valeurs et enregistrez :


{
  "mcpServers": {
    "cloud-sql-postgres": {
      "command": "./PATH/TO/toolbox",
      "args": ["--prebuilt","cloud-sql-postgres","--stdio"],
      "env": {
        "CLOUD_SQL_POSTGRES_PROJECT": "PROJECT_ID",
        "CLOUD_SQL_POSTGRES_REGION": "REGION",
        "CLOUD_SQL_POSTGRES_INSTANCE": "INSTANCE_ID",
        "CLOUD_SQL_POSTGRES_DATABASE": "DATABASE_NAME",
        "CLOUD_SQL_POSTGRES_USER": "USER_ID",
        "CLOUD_SQL_POSTGRES_PASSWORD": "PASSWORD"
      }
    }
  }
}

Claude sur ordinateur


1. Ouvrez Claude Desktop et accédez aux paramètres.
2. Dans l'onglet "Développeur", appuyez sur "Modifier la configuration" pour ouvrir le fichier de configuration.
3. Ajoutez la configuration, remplacez les variables d'environnement par vos valeurs et enregistrez :


{
  "mcpServers": {
    "cloud-sql-postgres": {
      "command": "./PATH/TO/toolbox",
      "args": ["--prebuilt","cloud-sql-postgres","--stdio"],
      "env": {
        "CLOUD_SQL_POSTGRES_PROJECT": "PROJECT_ID",
        "CLOUD_SQL_POSTGRES_REGION": "REGION",
        "CLOUD_SQL_POSTGRES_INSTANCE": "INSTANCE_ID",
        "CLOUD_SQL_POSTGRES_DATABASE": "DATABASE_NAME",
        "CLOUD_SQL_POSTGRES_USER": "USER_ID",
        "CLOUD_SQL_POSTGRES_PASSWORD": "PASSWORD"
    }
  }
}


5. Redémarrez Claude Desktop.
6. Le nouvel écran de chat affiche une icône en forme de marteau (MCP) avec le nouveau serveur MCP disponible.

Cline


1. Ouvrez l'extension Cline dans VS Code, puis appuyez sur l'icône Serveurs MCP.
2. Appuyez sur "Configurer les serveurs MCP" pour ouvrir le fichier de configuration.
3. Ajoutez la configuration suivante, remplacez les variables d'environnement par vos valeurs, puis enregistrez :


{
  "mcpServers": {
    "cloud-sql-postgres": {
      "command": "./PATH/TO/toolbox",
      "args": ["--prebuilt","cloud-sql-postgres","--stdio"],
      "env": {
        "CLOUD_SQL_POSTGRES_PROJECT": "PROJECT_ID",
        "CLOUD_SQL_POSTGRES_REGION": "REGION",
        "CLOUD_SQL_POSTGRES_INSTANCE": "INSTANCE_ID",
        "CLOUD_SQL_POSTGRES_DATABASE": "DATABASE_NAME",
        "CLOUD_SQL_POSTGRES_USER": "USER_ID",
        "CLOUD_SQL_POSTGRES_PASSWORD": "PASSWORD"
      }
    }
  }
}


4. Un état actif vert s'affiche une fois que le serveur est connecté.

Cursor


1. Créez le répertoire .cursor dans la racine de votre projet s'il n'existe pas.
2. Créez le fichier .cursor/mcp.json s'il n'existe pas et ouvrez-le.
3. Ajoutez la configuration suivante, remplacez les variables d'environnement par vos valeurs, puis enregistrez :


{
  "mcpServers": {
    "cloud-sql-postgres": {
      "command": "./PATH/TO/toolbox",
      "args": ["--prebuilt","cloud-sql-postgres","--stdio"],
      "env": {
        "CLOUD_SQL_POSTGRES_PROJECT": "PROJECT_ID",
        "CLOUD_SQL_POSTGRES_REGION": "REGION",
        "CLOUD_SQL_POSTGRES_INSTANCE": "INSTANCE_ID",
        "CLOUD_SQL_POSTGRES_DATABASE": "DATABASE_NAME",
        "CLOUD_SQL_POSTGRES_USER": "USER_ID",
        "CLOUD_SQL_POSTGRES_PASSWORD": "PASSWORD"
      }
    }
  }
}


4. Ouvrez Cursor, puis accédez à Settings > Cursor Settings > MCP (Paramètres > Paramètres du curseur > MCP). Un état actif vert s'affiche lorsque le serveur se connecte.

Visual Studio Code (Copilot)


1. Ouvrez VS Code et créez le répertoire .vscode à la racine de votre projet s'il n'existe pas.
2. Créez le fichier .vscode/mcp.json s'il n'existe pas, puis ouvrez-le.
3. Ajoutez la configuration suivante, remplacez les variables d'environnement par vos valeurs, puis enregistrez :


{
  "servers": {
    "cloud-sql-postgres": {
      "command": "./PATH/TO/toolbox",
      "args": ["--prebuilt","cloud-sql-postgres","--stdio"],
      "env": {
        "CLOUD_SQL_POSTGRES_PROJECT": "PROJECT_ID",
        "CLOUD_SQL_POSTGRES_REGION": "REGION",
        "CLOUD_SQL_POSTGRES_INSTANCE": "INSTANCE_ID",
        "CLOUD_SQL_POSTGRES_DATABASE": "DATABASE_NAME",
        "CLOUD_SQL_POSTGRES_USER": "USER_ID",
        "CLOUD_SQL_POSTGRES_PASSWORD": "PASSWORD"
      }
    }
  }
}

Windsurf


1. Ouvrez Windsurf et accédez à l'assistant Cascade.
2. Appuyez sur l'icône MCP, puis sur Configurer pour ouvrir le fichier de configuration.
3. Ajoutez la configuration suivante, remplacez les variables d'environnement par vos valeurs, puis enregistrez :


{
  "mcpServers": {
    "cloud-sql-postgres": {
      "command": "./PATH/TO/toolbox",
      "args": ["--prebuilt","cloud-sql-postgres","--stdio"],
      "env": {
        "CLOUD_SQL_POSTGRES_PROJECT": "PROJECT_ID",
        "CLOUD_SQL_POSTGRES_REGION": "REGION",
        "CLOUD_SQL_POSTGRES_INSTANCE": "INSTANCE_ID",
        "CLOUD_SQL_POSTGRES_DATABASE": "DATABASE_NAME",
        "CLOUD_SQL_POSTGRES_USER": "USER_ID",
        "CLOUD_SQL_POSTGRES_PASSWORD": "PASSWORD"
      }
    }
  }
}