Usa Spanner con el kit de herramientas de MCP para bases de datos, Gemini CLI y otros agentes

En este documento, se describe cómo conectar tu instancia de Spanner a varias herramientas para desarrolladores que admiten el Protocolo de contexto del modelo (MCP).

Te recomendamos que uses la extensión de Spanner dedicada para Gemini CLI. Esta extensión abstrae la necesidad de configurar una conexión de servidor independiente. Puedes configurar Gemini Code Assist para usar la CLI de Gemini, lo que ofrece beneficios de configuración similares en tu IDE. Para obtener más información, consulta Extensión de Gemini CLI: Spanner.

También puedes usar otros IDE y herramientas para desarrolladores que admitan el MCP para conectarte a través de MCP Toolbox para bases de datos. MCP Toolbox es un servidor de MCP de código abierto diseñado para conectar agentes de IA a tus datos. Maneja tareas como la autenticación y la agrupación de conexiones, lo que te permite interactuar con tus datos en lenguaje natural directamente desde tu IDE.

Usa la extensión de Gemini CLI en Spanner

La integración de Spanner con Gemini CLI se realiza a través de una extensión de código abierto que ofrece capacidades adicionales en comparación con la conexión estándar de MCP Toolbox. La extensión ofrece un proceso de instalación y un conjunto de herramientas, además de proporcionar información detallada sobre la instalación, la configuración y ejemplos de uso. Si usas la extensión de Gemini CLI, no es necesario que instales MCP Toolbox. Para obtener más información, consulta Extensión de Gemini CLI: Spanner.

La extensión spanner incluye herramientas para enumerar tablas y ejecutar instrucciones SQL y DQL de SQL.

Herramientas Ejemplo de instrucción en lenguaje natural
list_tables ¿Qué tablas tengo en mi instancia de Spanner?
execute_sql Inserta datos de prueba en la tabla de productos.
execute_sql_dql ¿Qué productos de la categoría de electrónica se venden en América?

Antes de comenzar

  1. En la consola de Google Cloud , en la página del selector de proyectos, selecciona o crea un proyecto de Google Cloud .

  2. Asegúrate de tener habilitada la facturación para tu proyecto de Google Cloud .

Configura la instancia de Spanner

  1. Habilita la API de Spanner en el Google Cloud proyecto.

  2. Crea o selecciona una instancia y una base de datos de Spanner.

  3. Configura los roles y permisos necesarios para completar esta tarea. El usuario que invoca a los agentes de LLM necesita los siguientes roles a nivel de la base de datos:

    • Lector de base de datos de Cloud Spanner (roles/spanner.databaseReader) para ejecutar consultas de DQL y enumerar tablas

    • Usuario de base de datos de Cloud Spanner (roles/spanner.databaseUser) para ejecutar consultas de DML.

  4. Configura las credenciales predeterminadas de la aplicación (ADC) para tu entorno.

Instala MCP Toolbox

  1. Descarga la versión más reciente de MCP Toolbox como un objeto binario. Selecciona el objeto binario correspondiente a tu sistema operativo (SO) y a la arquitectura de CPU. Debes usar la versión 0.15.0 o posterior de MCP Toolbox:

    linux/amd64

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

    darwin/arm64

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

    darwin/amd64

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

    windows/amd64

    curl -O https://storage.googleapis.com/genai-toolbox/version/windows/amd64/toolbox

  2. Haz que el objeto binario sea ejecutable:

    chmod +x toolbox
    
  3. Verifica la instalación:

    ./toolbox --version
    

Configura la herramienta del agente

En esta sección, se describe cómo configurar varias herramientas para desarrolladores para conectarse a tu instancia de Spanner. Selecciona tu herramienta de agente entre las siguientes opciones:

CLI de Gemini

  1. Instala la Gemini CLI.
  2. Instala la extensión de Spanner para Gemini CLI desde el repositorio de GitHub con el siguiente comando:
  3.   gemini extensions install https://github.com/gemini-cli-extensions/spanner
      
  4. Configura las siguientes variables de entorno para conectarte a tu instancia de Spanner:
        export SPANNER_PROJECT="PROJECT_ID"
        export SPANNER_INSTANCE="INSTANCE_NAME"
        export SPANNER_DATABASE="DATABASE_NAME"
        export SPANNER_DIALECT="DIALECT_NAME"
        
    Reemplaza lo siguiente:
    • PROJECT_ID: Es el ID del proyecto de Google Cloud .
    • INSTANCE_NAME: Es el nombre de tu instancia de Spanner.
    • DATABASE_NAME: Es el nombre de tu base de datos de Spanner.
    • DIALECT_NAME: Es tu dialecto de SQL de Spanner. Se acepta googlesql o postgresql. El valor predeterminado es googlesql si no se define.
  5. Inicia Gemini CLI en modo interactivo:
        gemini
        
    La CLI carga automáticamente la extensión de Spanner para Gemini CLI y sus herramientas, que puedes usar para interactuar con tu base de datos.

Gemini Code Assist

Te recomendamos que configures Gemini Code Assist para que use la CLI de Gemini, ya que este enfoque elimina la necesidad de configurar manualmente un servidor de MCP. Sin embargo, las instrucciones para configurar manualmente un servidor de MCP aún están disponibles en la siguiente sección:


 1. Instala la extensión Gemini Code Assist en VS Code.
2. Habilita el modo agente y cambia el modelo del agente a Gemini.
3. En el directorio raíz del proyecto, crea una carpeta llamada .gemini y, dentro de ella, un archivo settings.json.
4. Agrega una de las siguientes configuraciones según tu dialecto de Spanner en el archivo settings.json.
5. Reemplaza las siguientes variables por tus valores:
  • PROJECT_ID: Es el ID del proyecto de Google Cloud .
  • INSTANCE_NAME: Es el nombre de tu instancia de Spanner.
  • DATABASE_NAME: Es el nombre de tu base de datos de Spanner.
6. Guarda el archivo.

Spanner con el dialecto GoogleSQL:

{
  "mcpServers": {
    "spanner": {
      "command": "./PATH/TO/toolbox",
      "args": ["--prebuilt","spanner","--stdio"],
      "env": {
          "SPANNER_PROJECT": "PROJECT_ID",
          "SPANNER_INSTANCE": "INSTANCE_NAME",
          "SPANNER_DATABASE": "DATABASE_NAME"
      }
    }
  }
}

Spanner con el dialecto de PostgreSQL:

{
  "mcpServers": {
    "spanner": {
      "command": "./PATH/TO/toolbox",
      "args": ["--prebuilt","spanner-postgres","--stdio"],
      "env": {
          "SPANNER_PROJECT": "PROJECT_ID",
          "SPANNER_INSTANCE": "INSTANCE_NAME",
          "SPANNER_DATABASE": "DATABASE_NAME"
      }
    }
  }
}

Claude Code


 1. Instala Claude Code.
2. Crea el archivo .mcp.json en la raíz de tu proyecto si no existe.
3. Agrega una de las siguientes configuraciones según tu dialecto de Spanner, reemplaza las variables de entorno por tus valores y guarda el archivo:

Spanner con dialecto de GoogleSQL:

{
  "mcpServers": {
    "spanner": {
      "command": "./PATH/TO/toolbox",
      "args": ["--prebuilt","spanner","--stdio"],
      "env": {
          "SPANNER_PROJECT": "PROJECT_ID",
          "SPANNER_INSTANCE": "INSTANCE_NAME",
          "SPANNER_DATABASE": "DATABASE_NAME"
      }
    }
  }
}

Spanner con el dialecto de PostgreSQL:

{
  "mcpServers": {
    "spanner": {
      "command": "./PATH/TO/toolbox",
      "args": ["--prebuilt","spanner-postgres","--stdio"],
      "env": {
          "SPANNER_PROJECT": "PROJECT_ID",
          "SPANNER_INSTANCE": "INSTANCE_NAME",
          "SPANNER_DATABASE": "DATABASE_NAME"
      }
    }
  }
}

Claude para computadoras


 1. Abre Claude para escritorio y navega a Configuración.
2. En la pestaña Desarrollador, haz clic en Editar configuración para abrir el archivo de configuración.
3. Agrega una de las siguientes configuraciones según tu dialecto de Spanner, reemplaza las variables de entorno por tus valores y guarda el archivo:

Spanner con dialecto de GoogleSQL:

{
  "mcpServers": {
    "spanner": {
      "command": "./PATH/TO/toolbox",
      "args": ["--prebuilt","spanner","--stdio"],
      "env": {
          "SPANNER_PROJECT": "PROJECT_ID",
          "SPANNER_INSTANCE": "INSTANCE_NAME",
          "SPANNER_DATABASE": "DATABASE_NAME"
      }
    }
  }
}

Spanner con el dialecto de PostgreSQL:

{
  "mcpServers": {
    "spanner": {
      "command": "./PATH/TO/toolbox",
      "args": ["--prebuilt","spanner-postgres","--stdio"],
      "env": {
          "SPANNER_PROJECT": "PROJECT_ID",
          "SPANNER_INSTANCE": "INSTANCE_NAME",
          "SPANNER_DATABASE": "DATABASE_NAME"
      }
    }
  }
}

4. Reinicia Claude para computadoras.
5. En la nueva pantalla de chat, se muestra un ícono de martillo (MCP) con el nuevo servidor de MCP.

Cline


 1. Abre la extensión Cline en VS Code y haz clic en el ícono MCP Servers.
2. Presiona Configure MCP Servers para abrir el archivo de configuración.
3. Agrega una de las siguientes configuraciones según tu dialecto de Spanner, reemplaza las variables de entorno por tus valores y guarda el archivo:

Spanner con dialecto de GoogleSQL:

{
  "mcpServers": {
    "spanner": {
      "command": "./PATH/TO/toolbox",
      "args": ["--prebuilt","spanner","--stdio"],
      "env": {
          "SPANNER_PROJECT": "PROJECT_ID",
          "SPANNER_INSTANCE": "INSTANCE_NAME",
          "SPANNER_DATABASE": "DATABASE_NAME"
      }
    }
  }
}

Spanner con el dialecto de PostgreSQL:

{
  "mcpServers": {
    "spanner": {
      "command": "./PATH/TO/toolbox",
      "args": ["--prebuilt","spanner-postgres","--stdio"],
      "env": {
          "SPANNER_PROJECT": "PROJECT_ID",
          "SPANNER_INSTANCE": "INSTANCE_NAME",
          "SPANNER_DATABASE": "DATABASE_NAME"
      }
    }
  }
}

Aparece un estado activo de color verde después de que el servidor se conecta correctamente.

Cursor


 1. Crea el directorio .cursor en la raíz del proyecto si no existe.
2. Crea el archivo .cursor/mcp.json si no existe y ábrelo.
3. Agrega una de las siguientes configuraciones según tu dialecto de Spanner, reemplaza las variables de entorno por tus valores y guarda el archivo:

Spanner con dialecto de GoogleSQL:

{
  "mcpServers": {
    "spanner": {
      "command": "./PATH/TO/toolbox",
      "args": ["--prebuilt","spanner","--stdio"],
      "env": {
          "SPANNER_PROJECT": "PROJECT_ID",
          "SPANNER_INSTANCE": "INSTANCE_NAME",
          "SPANNER_DATABASE": "DATABASE_NAME"
      }
    }
  }
}

Spanner con el dialecto de PostgreSQL:

{
  "mcpServers": {
    "spanner": {
      "command": "./PATH/TO/toolbox",
      "args": ["--prebuilt","spanner-postgres","--stdio"],
      "env": {
          "SPANNER_PROJECT": "PROJECT_ID",
          "SPANNER_INSTANCE": "INSTANCE_NAME",
          "SPANNER_DATABASE": "DATABASE_NAME"
      }
    }
  }
}

4. Abre Cursor y navega a Configuración > Configuración del cursor > MCP. Cuando el servidor se conecta, aparece un estado activo de color 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. Agrega una de las siguientes configuraciones según tu dialecto de Spanner, reemplaza las variables de entorno por tus valores y guarda el archivo:

Spanner con dialecto de GoogleSQL:

{
  "servers": {
    "spanner": {
      "command": "./PATH/TO/toolbox",
      "args": ["--prebuilt","spanner","--stdio"],
      "env": {
        "SPANNER_PROJECT": "PROJECT_ID",
        "SPANNER_INSTANCE": "INSTANCE_NAME",
        "SPANNER_DATABASE": "DATABASE_NAME"
      }
    }
  }
}

Spanner con el dialecto de PostgreSQL:

{
  "servers": {
    "spanner": {
      "command": "./PATH/TO/toolbox",
      "args": ["--prebuilt","spanner-postgres","--stdio"],
      "env": {
        "SPANNER_PROJECT": "PROJECT_ID",
        "SPANNER_INSTANCE": "INSTANCE_NAME",
        "SPANNER_DATABASE": "DATABASE_NAME"
      }
    }
  }
}

Windsurf


 1. Abre Windsurf y navega al asistente de Cascade.
2. Haz clic en el ícono de MCP y, luego, en Configurar para abrir el archivo de configuración.
3. Agrega una de las siguientes configuraciones según tu dialecto de Spanner, reemplaza las variables de entorno por tus valores y guarda el archivo:

Spanner con dialecto de GoogleSQL:

{
  "mcpServers": {
    "spanner": {
      "command": "./PATH/TO/toolbox",
      "args": ["--prebuilt","spanner","--stdio"],
      "env": {
          "SPANNER_PROJECT": "PROJECT_ID",
          "SPANNER_INSTANCE": "INSTANCE_NAME",
          "SPANNER_DATABASE": "DATABASE_NAME"
      }
    }
  }
}

Spanner con el dialecto de PostgreSQL:

{
  "mcpServers": {
    "spanner": {
      "command": "./PATH/TO/toolbox",
      "args": ["--prebuilt","spanner-postgres","--stdio"],
      "env": {
          "SPANNER_PROJECT": "PROJECT_ID",
          "SPANNER_INSTANCE": "INSTANCE_NAME",
          "SPANNER_DATABASE": "DATABASE_NAME"
      }
    }
  }
}

Conéctate con Antigravity

Puedes conectar Spanner a Antigravity de las siguientes maneras:

  • Cómo usar la tienda de MCP
  • Usa una configuración personalizada

Tienda de MCP

La forma más recomendada de conectarse a Antigravity es usar la MCP Store integrada.

  1. Abre Antigravity y el panel del agente del editor.
  2. Haz clic en el ícono de menú en la parte superior del panel y selecciona Servidores de MCP.
  3. Ubica Spanner en la lista de servidores disponibles y haz clic en Instalar.
  4. Sigue los pasos que aparecen en pantalla para autorizar a Antigravity a acceder a tu proyecto de Google Cloud. Esto permite que Antigravity acceda a la instancia de Spanner en tu proyecto.

Una vez que instales el servidor de Spanner en MCP Store, los recursos y las herramientas del servidor estarán disponibles para el editor.

Configuración personalizada

Para conectarte a un servidor de MCP personalizado, sigue estos pasos:

  1. Abre Antigravity y el panel del agente del editor.
  2. Haz clic en el ícono de menú en la parte superior del panel y selecciona Servidores de MCP.
  3. Haz clic en Manage MCP Servers > View raw config para abrir el archivo mcp_config.json.
  4. Agrega la siguiente configuración, reemplaza las variables de entorno por tus valores y guarda.
{
  "mcpServers": {
    "spanner": {
      "command": "npx",
      "args": ["-y","@toolbox-sdk/server","--prebuilt","spanner","--stdio"],
      "env": {
          "SPANNER_PROJECT": "PROJECT_ID",
          "SPANNER_INSTANCE": "INSTANCE_NAME",
          "SPANNER_DATABASE": "DATABASE_NAME",
          "SPANNER_DIALECT": "DIALECT_NAME"
      }
    }
  }
}

Una vez que configures el servidor de MCP personalizado, los recursos y las herramientas del servidor de Spanner estarán disponibles para el editor.

Reemplaza lo siguiente:

  • PROJECT_ID: Es el ID del proyecto de Google Cloud .
  • INSTANCE_NAME: Es el nombre de tu instancia de Spanner.
  • DATABASE_NAME: Es el nombre de tu base de datos de Spanner.
  • DIALECT_NAME: Es tu dialecto de SQL de Spanner. Se acepta googlesql o postgresql. Si no especificas un dialecto, el valor predeterminado es googlesql.