Usar Cloud SQL para MySQL con MCP, la CLI de Gemini y otros agentes

En esta página se explica cómo conectar tu instancia de Cloud SQL a varias herramientas de asistencia para desarrolladores de IA, entre las que se incluyen las siguientes:

Para disfrutar de una experiencia integrada, te recomendamos que uses la extensión de la CLI de Gemini para Cloud SQL para MySQL.

Como interfaz de línea de comandos de nueva generación de Google Cloud, Gemini CLI incluye el servidor MCP subyacente directamente en la extensión, lo que simplifica la configuración. Puedes configurar Gemini Code Assist para usar Gemini CLI, que ofrece ventajas de configuración similares en tu IDE.

Para otras herramientas para desarrolladores que admitan Model Context Protocol (MCP), puedes conectarte configurando manualmente MCP Toolbox for Databases (Toolbox). Toolbox es un servidor MCP de código abierto que conecta agentes de IA con tus datos gestionando tareas como la autenticación y la agrupación de conexiones. De esta forma, podrás interactuar con tus datos usando lenguaje natural directamente desde tu IDE. En el caso de estas herramientas, este método proporciona funciones básicas de interacción con la base de datos.

Para obtener más información, consulta Herramientas precompiladas y MCP Toolbox for Databases en GitHub.

Acerca de Gemini CLI y las extensiones

Gemini CLI es un agente de IA de código abierto diseñado para ayudar con los flujos de trabajo de desarrollo, como la programación, la depuración, la exploración de datos y la creación de contenido. Proporciona una interfaz de agente para interactuar con servicios de bases de datos y analíticas, así como con bases de datos de código abierto populares.

Cómo funcionan las extensiones

Gemini CLI es muy extensible, lo que permite añadir nuevas herramientas y funciones mediante extensiones. Puedes cargar las extensiones desde una URL de GitHub, un directorio local o un registro configurable. Ofrecen nuevas herramientas, comandos de barra y peticiones para ayudarte con tu flujo de trabajo.

Usar las extensiones de la CLI de Gemini en Cloud SQL para MySQL

La extensión de la CLI de Gemini de Cloud SQL se basa en MCP Toolbox for Databases. MCP Toolbox for Databases se encuentra en fase beta (anterior a la versión 1.0) y puede sufrir cambios importantes hasta el lanzamiento de la primera versión estable (1.0).

La integración con Gemini CLI se realiza a través de una extensión específica que ofrece funciones adicionales en comparación con la conexión estándar de Toolbox. La extensión ofrece un proceso de instalación optimizado y un conjunto de herramientas.

Para obtener más información, consulta la documentación de GitHub sobre la extensión de la CLI de Gemini para Cloud SQL para MySQL.

Extensión de la CLI de Gemini para bases de datos de Cloud SQL para MySQL

La extensión cloud-sql-mysql incluye herramientas para consultar la base de datos y monitorizar su estado.

Categoría Herramientas
Operaciones de base de datos
  • list_tables: muestra todas las tablas y sus descripciones correspondientes que se encuentran en una base de datos.
  • execute_sql: ejecuta cualquier instrucción SQL.
  • list_active_queries: muestra las consultas que se están ejecutando en una instancia de Cloud SQL.
  • list_tables_missing_unique_indexes: busca tablas que no tengan claves principales ni únicas.
  • list_table_fragmentation: obtiene información sobre la fragmentación de la tabla.
  • get_query_plan: obtiene el plan de consulta de una sola instrucción de una instancia de Cloud SQL.
Gestión de recursos para instancias y usuarios
  • create_user: crea un usuario en una instancia de Cloud SQL.
  • list_databases: muestra todas las bases de datos de una instancia de Cloud SQL.
  • create_database: crea una base de datos en una instancia de Cloud SQL.
  • list_instances: muestra las instancias de Cloud SQL de un proyecto determinado.
  • get_instance: obtiene los detalles de una instancia de Cloud SQL específica.
  • create_instance: crea una instancia de Cloud SQL.
  • wait_for_operation: sondea la API Operations hasta que se completa una operación.

La extensión cloud-sql-mysql-observability proporciona una interfaz unificada para gestionar y monitorizar el rendimiento y el estado de las bases de datos directamente desde la CLI de Gemini.

Categoría Herramientas
Observabilidad
  • get_system_metrics: obtiene métricas del sistema de una instancia de Cloud SQL.
  • get_query_metrics: obtiene métricas relacionadas con las consultas de una instancia de Cloud SQL.

Extensión de Gemini CLI para bases de datos MySQL

Para ver una lista de esas operaciones, consulta MCP Toolbox for Databases y Extensión de la CLI de Gemini para MySQL.

Antes de empezar

Instalar la caja de herramientas de MCP

  1. Para instalar la caja de herramientas, descarga el archivo binario que corresponda a tu sistema operativo y a la arquitectura de tu CPU.

    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. Haz que el archivo binario sea ejecutable:

    chmod +x toolbox
    
  3. Verifica la instalación con el siguiente comando:

    ./toolbox --version
    

Configurar el cliente de MCP

En esta sección se describe cómo configurar varias herramientas para desarrolladores para conectarse a tu instancia de Cloud SQL mediante Toolbox. Toolbox actúa como un servidor Model Context Protocol (MCP) de código abierto que se encuentra entre tu IDE y tu base de datos, lo que proporciona un plano de control seguro y eficiente para tus herramientas de IA. Selecciona la pestaña de la herramienta que quieras para ver las instrucciones de configuración.

CLI de Gemini para Cloud SQL para MySQL


1. Instala la CLI de Gemini.
2. Instala la extensión Cloud SQL para MySQL de la CLI de Gemini desde el repositorio de GitHub con el siguiente comando:
    gemini extensions install https://github.com/gemini-cli-extensions/cloud-sql-mysql
    
3. Define variables de entorno para conectarte a tu instancia de Cloud SQL:
    export CLOUD_SQL_MYSQL_PROJECT="PROJECT_NAME"
    export CLOUD_SQL_MYSQL_REGION="REGION"
    export CLOUD_SQL_MYSQL_INSTANCE="INSTANCE_NAME"
    export CLOUD_SQL_MYSQL_DATABASE="DATABASE_NAME"
    export CLOUD_SQL_MYSQL_USER="DATABASE_USER_NAME"
    export CLOUD_SQL_MYSQL_PASSWORD="PASSWORD"
    export CLOUD_SQL_MYSQL_IP_TYPE="IP_TYPE"
    
Sustituye lo siguiente:
  • PROJECT_NAME: el Google Cloud ID de proyecto.
  • REGION: la región de tu instancia de Cloud SQL.
  • INSTANCE_NAME: el ID de tu instancia de Cloud SQL.
  • DATABASE_NAME: nombre de la base de datos a la que se va a conectar.
  • DATABASE_USER_NAME: opcional. Nombre de usuario de la base de datos. Si no se especifica, se usa la autenticación de gestión de identidades y accesos de forma predeterminada.
  • PASSWORD: opcional. Contraseña del usuario de la base de datos. Si no se especifica, se usa la autenticación de gestión de identidades y accesos de forma predeterminada.
  • IP_TYPE: Opcional. Tipo de IP, como "Pública" (valor predeterminado) o "Privada".
4. Inicia la CLI de Gemini en modo interactivo:
      gemini
      

La CLI carga automáticamente la extensión de Gemini CLI para Cloud SQL y sus herramientas, que puedes usar para interactuar con tu base de datos.

En Gemini CLI, usa el comando /extensions para verificar que la extensión está instalada y el comando /mcp list para ver las herramientas.

Gemini CLI para MySQL


1. Instala la CLI de Gemini.
2. Instala la extensión de software MySQL para Gemini CLI desde el repositorio de GitHub con el siguiente comando:
      gemini extensions install https://github.com/gemini-cli-extensions/mysql
      
3. Define variables de entorno para conectarte a tu instancia de MySQL:
      export MYSQL_HOST="HOST"
      export MYSQL_PORT="PORT"
      export MYSQL_DATABASE="DATABASE"
      export MYSQL_USER="USER"
      export MYSQL_PASSWORD="PASSWORD"
      export MYSQL_QUERY_PARAMETERS="QUERY_PARAMETERS"
      
Sustituye lo siguiente:
  • HOST: el nombre de host o la dirección IP del servidor MySQL.
  • PORT: número de puerto del servidor MySQL.
  • DATABASE: nombre de la base de datos a la que se va a conectar.
  • USER: nombre de usuario de la base de datos.
  • PASSWORD: la contraseña del usuario de la base de datos.
  • QUERY_PARAMETERS: opcional. Consulta sin procesar que se añade a la cadena de conexión db.
4. Inicia la CLI de Gemini en modo interactivo:
      gemini
      

La CLI carga automáticamente la extensión de Gemini CLI para MySQL y sus herramientas, que puedes usar para interactuar con tu base de datos.

Gemini Code Assist


1. Instala la extensión Gemini Code Assist en Visual Studio Code.
2. Habilita el modo Agente en el chat de Gemini Code Assist.
3. En tu directorio de trabajo, crea una carpeta llamada .gemini. En ella, crea un archivo settings.json.
4. Añade la siguiente configuración, sustituye las variables de entorno por tus valores y, a continuación, guarda los cambios:


{
  "mcpServers": {
    "cloud-sql-mysql": {
      "command": "./PATH/TO/toolbox",
      "args": ["--prebuilt","cloud-sql-mysql","--stdio"],
      "env": {
          "CLOUD_SQL_MYSQL_PROJECT": "PROJECT_ID",
          "CLOUD_SQL_MYSQL_REGION": "REGION",
          "CLOUD_SQL_MYSQL_INSTANCE":"INSTANCE_ID",
          "CLOUD_SQL_MYSQL_DATABASE": "DATABASE_NAME",
          "CLOUD_SQL_MYSQL_USER": "USER_ID",
          "CLOUD_SQL_MYSQL_PASSWORD": "PASSWORD"
      }
    }
  }
}

Código de Claude


1. Instala Claude Code.
2. Crea el archivo .mcp.json en la raíz de tu proyecto si no existe.
3. Añade la configuración, sustituye las variables de entorno por tus valores y guarda los cambios:


{
  "mcpServers": {
    "cloud-sql-mysql": {
      "command": "./PATH/TO/toolbox",
      "args": ["--prebuilt","cloud-sql-mysql","--stdio"],
      "env": {
        "CLOUD_SQL_MYSQL_PROJECT": "PROJECT_ID",
        "CLOUD_SQL_MYSQL_REGION": "REGION",
        "CLOUD_SQL_MYSQL_INSTANCE":"INSTANCE_ID",
        "CLOUD_SQL_MYSQL_DATABASE": "DATABASE_NAME",
        "CLOUD_SQL_MYSQL_USER": "USER_ID",
        "CLOUD_SQL_MYSQL_PASSWORD": "PASSWORD"
      }
    }
  }
}

Claude para ordenadores


1. Abre Claude Desktop y ve a Configuración.
2. En la pestaña Desarrollador, toca Editar configuración para abrir el archivo de configuración.
3. Añade la configuración, sustituye las variables de entorno por tus valores y guarda los cambios:


{
  "mcpServers": {
    "cloud-sql-mysql": {
      "command": "./PATH/TO/toolbox",
      "args": ["--prebuilt","cloud-sql-mysql","--stdio"],
      "env": {
        "CLOUD_SQL_MYSQL_PROJECT": "PROJECT_ID",
        "CLOUD_SQL_MYSQL_REGION": "REGION",
        "CLOUD_SQL_MYSQL_INSTANCE":"INSTANCE_ID",
        "CLOUD_SQL_MYSQL_DATABASE": "DATABASE_NAME",
        "CLOUD_SQL_MYSQL_USER": "USER_ID",
        "CLOUD_SQL_MYSQL_PASSWORD": "PASSWORD"
      }
    }
  }
}


5. Reinicia Claude Desktop.
6. En la nueva pantalla de chat se muestra un icono de martillo (MCP) con el nuevo servidor de MCP disponible.

Cline


1. Abre la extensión Cline en VS Code y toca el icono Servidores MCP.
2. Toca Configurar servidores MCP para abrir el archivo de configuración.
3. Añade la siguiente configuración, sustituye las variables de entorno por tus valores y guarda los cambios:


{
  "mcpServers": {
    "cloud-sql-mysql": {
      "command": "./PATH/TO/toolbox",
      "args": ["--prebuilt","cloud-sql-mysql","--stdio"],
      "env": {
        "CLOUD_SQL_MYSQL_PROJECT": "PROJECT_ID",
        "CLOUD_SQL_MYSQL_REGION": "REGION",
        "CLOUD_SQL_MYSQL_INSTANCE":"INSTANCE_ID",
        "CLOUD_SQL_MYSQL_DATABASE": "DATABASE_NAME",
        "CLOUD_SQL_MYSQL_USER": "USER_ID",
        "CLOUD_SQL_MYSQL_PASSWORD": "PASSWORD"
      }
    }
  }
}


4. Si el servidor se conecta correctamente, aparecerá el estado activo en verde.

Cursor


1. Crea el directorio .cursor en la raíz de tu proyecto si no existe.
2. Crea el archivo .cursor/mcp.json si no existe y ábrelo.
3. Añade la siguiente configuración, sustituye las variables de entorno por tus valores y guarda los cambios:


{
  "mcpServers": {
    "cloud-sql-mysql": {
      "command": "./PATH/TO/toolbox",
      "args": ["--prebuilt","cloud-sql-mysql","--stdio"],
      "env": {
        "CLOUD_SQL_MYSQL_PROJECT": "PROJECT_ID",
        "CLOUD_SQL_MYSQL_REGION": "REGION",
        "CLOUD_SQL_MYSQL_INSTANCE":"INSTANCE_ID",
        "CLOUD_SQL_MYSQL_DATABASE": "DATABASE_NAME",
        "CLOUD_SQL_MYSQL_USER": "USER_ID",
        "CLOUD_SQL_MYSQL_PASSWORD": "PASSWORD"
      }
    }
  }
}


4. Abre Cursor y ve a Configuración > Configuración del cursor > MCP. Cuando el servidor se conecta, aparece el estado activo en verde.

Visual Studio Code (Copilot)


1. Abre VS Code y crea el directorio .vscode en la raíz de tu proyecto si no existe.
2. Crea el archivo .vscode/mcp.json si no existe y ábrelo.
3. Añade la siguiente configuración, sustituye las variables de entorno por tus valores y guarda los cambios:


{
  "servers": {
    "cloud-sql-mysql": {
      "command": "./PATH/TO/toolbox",
      "args": ["--prebuilt","cloud-sql-mysql","--stdio"],
      "env": {
        "CLOUD_SQL_MYSQL_PROJECT": "PROJECT_ID",
        "CLOUD_SQL_MYSQL_REGION": "REGION",
        "CLOUD_SQL_MYSQL_INSTANCE":"INSTANCE_ID",
        "CLOUD_SQL_MYSQL_DATABASE": "DATABASE_NAME",
        "CLOUD_SQL_MYSQL_USER": "USER_ID",
        "CLOUD_SQL_MYSQL_PASSWORD": "PASSWORD"
      }
    }
  }
}

Windsurf


1. Abre Windsurf y ve al asistente de Cascade.
2. Toca el icono de MCP y, a continuación, Configurar para abrir el archivo de configuración.
3. Añade la siguiente configuración, sustituye las variables de entorno por tus valores y guarda los cambios:


{
  "mcpServers": {
    "cloud-sql-mysql": {
      "command": "./PATH/TO/toolbox",
      "args": ["--prebuilt","cloud-sql-mysql","--stdio"],
      "env": {
          "CLOUD_SQL_MYSQL_PROJECT": "PROJECT_ID",
          "CLOUD_SQL_MYSQL_REGION": "REGION",
          "CLOUD_SQL_MYSQL_INSTANCE":"INSTANCE_ID",
          "CLOUD_SQL_MYSQL_DATABASE": "DATABASE_NAME",
          "CLOUD_SQL_MYSQL_USER": "USER_ID",
          "CLOUD_SQL_MYSQL_PASSWORD": "PASSWORD"
      }
    }
  }
}