Desenvolvimento acelerado orientado por dados com a caixa de ferramentas do MCP para AlloyDB usando a CLI do Gemini no Cloud Run

1. Visão geral

Lembra da nossa jornada para criar uma experiência de varejo híbrida dinâmica com o AlloyDB, combinando filtragem facetada e pesquisa vetorial? Esse aplicativo foi uma demonstração poderosa das necessidades do varejo moderno, mas chegar lá e fazer iterações exigiu um esforço significativo de desenvolvimento. Para desenvolvedores full-stack, a troca constante entre editores de código e ferramentas de banco de dados pode ser um gargalo, atrasando a inovação e o processo crucial de compreensão dos dados.

Solução

É exatamente aqui que o poder do desenvolvimento acelerado de aplicativos realmente brilha. Por isso, estou muito feliz em compartilhar como a caixa de ferramentas da MCP (Modern Cloud Platform), acessível pela CLI intuitiva do Gemini, se tornou uma parte indispensável do meu kit de ferramentas. Imagine interagir perfeitamente com sua instância do AlloyDB, escrever consultas e entender seu conjunto de dados, tudo diretamente no seu ambiente de desenvolvimento integrado (IDE). Não se trata apenas de conveniência, mas de reduzir fundamentalmente o atrito no ciclo de vida de desenvolvimento, permitindo que você se concentre na criação de recursos inovadores em vez de lidar com ferramentas externas.

No contexto do nosso app de e-commerce de varejo, em que precisávamos consultar dados de produtos com eficiência, processar filtragem complexa e aproveitar as nuances da pesquisa vetorial, a capacidade de iterar rapidamente nas interações com o banco de dados foi fundamental. A MCP Toolbox, com tecnologia da CLI do Gemini, não apenas simplifica esse processo, mas também o acelera, transformando a maneira como podemos explorar, testar e refinar a lógica de banco de dados que sustenta nossos aplicativos. Vamos entender como essa combinação inovadora está tornando o desenvolvimento full-stack mais rápido, inteligente e agradável.

O que você vai aprender e criar

Um aplicativo de pesquisa no varejo que usa a caixa de ferramentas do MCP no ambiente de desenvolvimento integrado, com tecnologia da CLI do Gemini. Abordaremos:

  1. Como integrar a caixa de ferramentas do MCP diretamente ao seu ambiente de desenvolvimento integrado para uma interação perfeita com o AlloyDB.
  2. Exemplos práticos de como usar a CLI do Gemini para escrever e executar consultas SQL nos seus dados de varejo.
  3. Use a CLI do Gemini para interagir com nosso conjunto de dados de e-commerce de varejo, escrevendo consultas que normalmente exigem ferramentas separadas e vendo os resultados instantaneamente.
  4. Descubra novas maneiras de analisar e entender os dados, desde a verificação das estruturas de tabelas até a realização de verificações rápidas de integridade dos dados, tudo isso usando interfaces de linha de comando conhecidas no nosso ambiente de desenvolvimento integrado.
  5. Como esse fluxo de trabalho acelerado de banco de dados contribui diretamente para ciclos de desenvolvimento full-stack mais rápidos, permitindo prototipagem e iteração rápidas.

Techstack

Estamos usando:

  • AlloyDB para banco de dados
  • MCP Toolbox para abstrair recursos avançados de IA e generativos de bancos de dados do aplicativo
  • Cloud Run para implantação sem servidor.
  • CLI Gemini para entender e analisar o conjunto de dados e criar a parte do banco de dados do aplicativo de e-commerce de varejo.

Requisitos

  • Use um navegador, como o Chrome ou o Firefox.
  • Ter um projeto do Google Cloud com o faturamento ativado.

2. Antes de começar

Criar um projeto

  1. No console do Google Cloud, na página de seletor de projetos, selecione ou crie um projeto do Google Cloud.
  2. Confira se o faturamento está ativado para seu projeto do Cloud. Saiba como verificar se o faturamento está ativado em um projeto.

Para créditos do Google Cloud: se você quiser receber créditos do Google Cloud para começar a usar, use este link para resgatar créditos. Siga as instruções neste link para resgatar o código.

  1. Você vai usar o Cloud Shell, um ambiente de linha de comando executado no Google Cloud. Clique em "Ativar o Cloud Shell" na parte de cima do console do Google Cloud.

Imagem do botão "Ativar o Cloud Shell"

  1. Depois de se conectar ao Cloud Shell, verifique se sua conta já está autenticada e se o projeto está configurado com seu ID do projeto usando o seguinte comando:
gcloud auth list
  1. Execute o comando a seguir no Cloud Shell para confirmar se o comando gcloud sabe sobre seu projeto.
gcloud config list project
  1. Se o projeto não estiver definido, use este comando:
gcloud config set project <YOUR_PROJECT_ID>
  1. Ative as APIs necessárias: siga o link e ative as APIs.

Como alternativa, use o comando gcloud. Consulte a documentação para ver o uso e os comandos gcloud.

3. Configuração do banco de dados

Neste laboratório, vamos usar o AlloyDB como banco de dados para os dados de e-commerce. Ele usa clusters para armazenar todos os recursos, como bancos de dados e registros. Cada cluster tem uma instância principal que fornece um ponto de acesso aos dados. As tabelas vão conter os dados reais.

Vamos criar um cluster, uma instância e uma tabela do AlloyDB em que o conjunto de dados de e-commerce será carregado.

Criar um cluster e uma instância

  1. Navegue até a página do AlloyDB no console do Cloud. Uma maneira fácil de encontrar a maioria das páginas no console do Cloud é pesquisar usando a barra de pesquisa do console.
  2. Selecione CRIAR CLUSTER nessa página:

f76ff480c8c889aa.png

  1. Você vai ver uma tela como a abaixo. Crie um cluster e uma instância com os seguintes valores. Verifique se os valores correspondem caso você esteja clonando o código do aplicativo do repositório:
  • ID do cluster: "vector-cluster"
  • password: "alloydb"
  • PostgreSQL 15 / mais recente recomendado
  • Região: "us-central1"
  • Rede: "default"

538dba58908162fb.png

  1. Ao selecionar a rede padrão, uma tela como a abaixo vai aparecer.

Selecione CONFIGURAR CONEXÃO.

7939bbb6802a91bf.png

  1. Em seguida, selecione Usar um intervalo de IP alocado automaticamente e clique em "Continuar". Depois de revisar as informações, selecione "CRIAR CONEXÃO". 768ff5210e79676f.png
  2. Depois que a rede for configurada, você poderá continuar criando o cluster. Clique em CRIAR CLUSTER para concluir a configuração do cluster, conforme mostrado abaixo:

e06623e55195e16e.png

OBSERVAÇÃO IMPORTANTE:

  1. Mude o ID da instância (que pode ser encontrado no momento da configuração do cluster / instância) para **vector-instance**. Se não for possível mudar, lembre-se de **usar o ID da instância** em todas as referências futuras.
  2. A criação do cluster leva cerca de 10 minutos. Se tudo der certo, uma tela vai mostrar a visão geral do cluster que você acabou de criar.

4. Ingestão de dados

Agora é hora de adicionar uma tabela com os dados da loja. Navegue até o AlloyDB, selecione o cluster principal e o AlloyDB Studio:

847e35f1bf8a8bd8.png

Talvez seja necessário aguardar a conclusão da criação da instância. Depois disso, faça login no AlloyDB usando as credenciais criadas ao criar o cluster. Use os seguintes dados para autenticar no PostgreSQL:

  • Nome de usuário : "postgres"
  • Banco de dados : "postgres"
  • Senha : "alloydb"

Depois de se autenticar no AlloyDB Studio, os comandos SQL são inseridos no editor. É possível adicionar várias janelas do Editor usando o sinal de mais à direita da última janela.

91a86d9469d499c4.png

Você vai inserir comandos para o AlloyDB nas janelas do editor, usando as opções "Executar", "Formatar" e "Limpar" conforme necessário.

Ativar extensões

Para criar esse app, vamos usar as extensões pgvector e google_ml_integration. A extensão pgvector permite armazenar e pesquisar embeddings de vetor. A extensão google_ml_integration oferece funções que você usa para acessar endpoints de previsão da Vertex AI e receber previsões em SQL. Ative essas extensões executando os seguintes DDLs:

CREATE EXTENSION IF NOT EXISTS google_ml_integration CASCADE;
CREATE EXTENSION IF NOT EXISTS vector;

Para verificar as extensões ativadas no seu banco de dados, execute este comando SQL:

select extname, extversion from pg_extension;

Criar uma tabela

É possível criar uma tabela usando a instrução DDL abaixo no AlloyDB Studio:

CREATE TABLE apparels ( 
  id BIGINT, 
  category VARCHAR(100), 
  sub_category VARCHAR(50), 
  uri VARCHAR(200), 
  gsutil_uri VARCHAR(200),
  image VARCHAR(100), 
  content VARCHAR(2000), 
  pdt_desc VARCHAR(5000), 
  color VARCHAR(2000),
  gender VARCHAR(200),
  embedding vector(768),
  img_embeddings vector(1408),
  additional_specification VARCHAR(100000));

A coluna de embedding permite armazenar os valores vetoriais do texto.

Conceder permissão

Execute a instrução abaixo para conceder a execução na função "embedding":

GRANT EXECUTE ON FUNCTION embedding TO postgres;

Conceder o papel de usuário da Vertex AI à conta de serviço do AlloyDB

No console do Google Cloud IAM, conceda à conta de serviço do AlloyDB (que tem esta aparência: service-<<PROJECT_NUMBER>>@gcp-sa-alloydb.iam.gserviceaccount.com) acesso à função "Usuário da Vertex AI". PROJECT_NUMBER vai ter o número do seu projeto.

Como alternativa, execute o comando abaixo no terminal do Cloud Shell:

PROJECT_ID=$(gcloud config get-value project)


gcloud projects add-iam-policy-binding $PROJECT_ID \
  --member="serviceAccount:service-$(gcloud projects describe $PROJECT_ID --format="value(projectNumber)")@gcp-sa-alloydb.iam.gserviceaccount.com" \
--role="roles/aiplatform.user"

Carregar dados no banco de dados

  1. Copie as instruções de consulta insert da insert scripts sql na planilha para o editor, conforme mencionado acima. Você pode copiar de 10 a 50 instruções de inserção para uma demonstração rápida desse caso de uso. Há uma lista selecionada de inserções na guia "Inserções selecionadas de 25 a 30 linhas".
  2. Clique em Executar. Os resultados da consulta aparecem na tabela Resultados.

OBSERVAÇÃO IMPORTANTE:

Copie apenas 25 a 50 registros para inserir e verifique se eles são de uma variedade de categorias, subcategorias, cores e tipos de gênero.

5. Criar embeddings para os dados

A verdadeira inovação na pesquisa moderna está em entender o significado, não apenas as palavras-chave. É aí que entram os embeddings e a pesquisa vetorial.

Transformamos descrições de produtos e consultas de usuários em representações numéricas de alta dimensão chamadas "incorporações" usando modelos de linguagem pré-treinados. Esses embeddings capturam o significado semântico, permitindo encontrar produtos que são "semelhantes em significado", e não apenas que contêm palavras correspondentes. Inicialmente, testamos a pesquisa direta por similaridade vetorial nesses embeddings para estabelecer um valor de referência, demonstrando o poder da compreensão semântica mesmo antes das otimizações de performance.

A coluna de embedding vai permitir o armazenamento dos valores de vetor do texto de descrição do produto. A coluna "img_embeddings" permite armazenar embeddings de imagens (multimodais). Assim, você também pode usar a pesquisa baseada na distância entre texto e imagem. Mas vamos usar apenas embeddings de texto neste laboratório.

SELECT embedding('text-embedding-005', 'AlloyDB is a managed, cloud-hosted SQL database service.');

Isso vai retornar o vetor de embeddings, que parece uma matriz de números de ponto flutuante, para o texto de exemplo na consulta. Ela tem esta aparência:

25a1d7ef0e49e91e.png

Atualizar o campo de vetor abstract_embeddings

Execute a DML abaixo para atualizar a descrição do conteúdo na tabela com os embeddings correspondentes:

UPDATE apparels SET embedding = embedding('text-embedding-005',pdt_desc)::vector 
WHERE pdt_desc IS NOT NULL;

Talvez você tenha problemas para gerar mais do que alguns embeddings (digamos, no máximo 20 a 25) se estiver usando uma conta de faturamento de crédito de teste do Google Cloud. Portanto, limite o número de linhas no script de inserção.

Se você quiser gerar embeddings de imagem (para realizar uma pesquisa contextual multimodal), execute a atualização abaixo também:

update apparels set img_embeddings = ai.image_embedding(
  model_id => 'multimodalembedding@001',
  image => gsutil_uri,
  mimetype => 'image/jpg')       
where gsutil_uri is not null

6. MCP Toolbox for Databases (AlloyDB)

Nos bastidores, ferramentas robustas e um aplicativo bem estruturado garantem uma operação tranquila.

A caixa de ferramentas do MCP (Protocolo de contexto de modelo) para bancos de dados simplifica a integração da IA generativa e das ferramentas de agente com o AlloyDB. Ele funciona como um servidor de código aberto que simplifica o agrupamento de conexões, a autenticação e a exposição segura de funcionalidades de banco de dados para agentes de IA ou outros aplicativos.

No nosso aplicativo, usamos a MCP Toolbox for Databases como uma camada de abstração para todas as nossas consultas de pesquisa híbrida inteligente.

Siga as etapas abaixo para configurar e implantar a caixa de ferramentas no nosso caso de uso:

Uma das opções compatíveis com a caixa de ferramentas do MCP para bancos de dados é o AlloyDB. Como já provisionamos esse banco na seção anterior, vamos configurar a caixa de ferramentas.

  1. Acesse o terminal do Cloud Shell e verifique se o projeto está selecionado e aparece no prompt do terminal. Execute o comando abaixo no terminal do Cloud Shell para navegar até o diretório do projeto:
mkdir gemini-cli-project

cd gemini-cli-project
  1. Execute o comando abaixo para fazer o download e instalar a caixa de ferramentas na nova pasta:
# see releases page for other versions
export VERSION=0.7.0
curl -O https://storage.googleapis.com/genai-toolbox/v$VERSION/linux/amd64/toolbox
chmod +x toolbox

Isso vai criar a caixa de ferramentas no diretório atual. Copie o caminho para a caixa de ferramentas.

  1. Acesse o editor do Cloud Shell (para o modo de edição de código) e, na pasta raiz do projeto "gemini-cli-project", adicione um arquivo chamado "tools.yaml".
sources:
    alloydb:
        kind: "alloydb-postgres"
        project: "<<YOUR_PROJECT_ID>>"
        region: "us-central1"
        cluster: "vector-cluster"
        instance: "vector-instance"
        database: "postgres"
        user: "postgres"
        password: "alloydb"


tools:
   get-apparels:
    kind: postgres-sql
    source: alloydb
    description: Get all apparel data.
    statement: |
      select id, content, uri, category, sub_category,color,gender from apparels;

Vamos entender o tools.yaml:

As fontes representam as diferentes origens de dados com que uma ferramenta pode interagir. Uma origem representa uma fonte de dados com que uma ferramenta pode interagir. É possível definir origens como um mapa na seção "sources" do arquivo tools.yaml. Normalmente, uma configuração de origem contém todas as informações necessárias para se conectar e interagir com o banco de dados.

As ferramentas definem as ações que um agente pode realizar, como ler e gravar em uma fonte. Uma ferramenta representa uma ação que o agente pode realizar, como executar uma instrução SQL. É possível definir ferramentas como um mapa na seção "tools" do arquivo tools.yaml. Normalmente, uma ferramenta precisa de uma fonte para agir.

Para mais detalhes sobre como configurar o tools.yaml, consulte esta documentação.

Como você pode ver no arquivo Tools.yaml acima, a ferramenta "get-apparels" lista todos os detalhes das roupas do banco de dados.

7. Configurar a CLI do Gemini

No editor do Cloud Shell, crie uma pasta chamada .gemini dentro da pasta gemini-cli-project e crie um arquivo chamado settings.json nela.

{
  "mcpServers": {
"AlloyDBServer": {
  "command": "/home/user/gemini-cli-project/toolbox",
  "args": ["--tools-file", "tools.yaml", "--stdio"]
}
  }
}

Na seção de comandos do snippet acima, substitua "/home/user/gemini-cli-project/toolbox" pelo caminho para a caixa de ferramentas.

Instalar a CLI do Gemini

Por fim, no terminal do Cloud Shell, instale a CLI do Gemini no mesmo diretório gemini-cli-project executando o comando:

sudo npm install -g @google/gemini-cli

Definir o ID do projeto

Verifique se o ID do projeto ativo está definido no ambiente:

export GOOGLE_CLOUD_PROJECT=<<YOUR_PROJECT_ID>>

Começar a usar a CLI do Gemini

Na linha de comando, insira o comando:

gemini

Você vai receber uma resposta semelhante a esta:

94f16dd7b5e2ca77.png

Autentique e continue para a próxima etapa.

8. Começar a interagir com a CLI do Gemini

Use o comando /mcp para listar os servidores MCP configurados.

83e1c54ec68add5c.png

Os dois servidores MCP configurados (GitHub e MCP Toolbox for Databases) vão aparecer com as ferramentas deles.

84b59c3027d370e2.png

No meu caso, tenho mais ferramentas. Por enquanto, ignore. A ferramenta get-apparels vai aparecer no seu servidor MCP do AlloyDB.

Começar a consultar o banco de dados pela caixa de ferramentas do MCP

Agora tente fazer perguntas em linguagem natural para buscar respostas e consultas do conjunto de dados com que estamos trabalhando:

> How many types of genders the apparel dataset has?

ae24caa625ef871b.png

> Give me the SQL that I can use to find the number of apparels that are footwear 

b75da65679031c7.png

> What are the unique sub categories that are there?
that I can use to find the number of apparels that are footwear 

c04fd9e113a4ed95.png

Agora, digamos que, com base nos meus insights e em muitas consultas desse tipo, eu criei uma consulta detalhada e quero testá-la. Ou digamos que os engenheiros de banco de dados já tenham criado o Tools.yaml para você, como abaixo:

sources:
    alloydb:
        kind: "alloydb-postgres"
        project: "<<YOUR_PROJECT_ID>>"
        region: "us-central1"
        cluster: "vector-cluster"
        instance: "vector-instance"
        database: "postgres"
        user: "postgres"
        password: "alloydb"

tools:
   get-apparels:
    kind: postgres-sql
    source: alloydb
    description: Get all apparel data.
    statement: |
      select id, content, uri, category, sub_category,color,gender from apparels;

   filtered-vector-search:
    kind: postgres-sql
    source: alloydb
    description: Get the list of facet filter values from the retail dataset.
    parameters:
      - name: categories
        type: array
        description: List of categories preferred by the user.
        items:
          name: category 
          type: string
          description: Category value. 
      - name: subCategories
        type: array
        description: List of sub-categories preferred by the user.
        items:
          name: subCategory 
          type: string
          description: Sub-Category value.
      - name: colors
        type: array
        description: List of colors preferred by the user.
        items:
          name: color 
          type: string
          description: Color value.
      - name: genders
        type: array
        description: List of genders preferred by the user for apparel fitting.
        items:
          name: gender 
          type: string
          description: Gender name.
      - name: searchtext
        type: string
        description: Description of the product that the user wants to find database matches for.    
    statement: |
      SELECT id, content, uri, category, sub_category,color,gender FROM apparels 
      where category = ANY($1) and sub_Category = ANY($2) and color = ANY($3) and gender = ANY($4)
      order by embedding <=> embedding('text-embedding-005',$5)::vector limit 10

Agora vamos tentar uma pesquisa em linguagem natural:

> How many yellow shirts are there for boys?

5c3890cf69e3dacb.png

4ec79f49b2eaebbd.png

Legal, não é? Agora posso corrigir o arquivo YAML para mais avanços em consultas enquanto continuo oferecendo novas funcionalidades no meu aplicativo em um cronograma acelerado.

9. Desenvolvimento acelerado de apps

A beleza de trazer recursos de banco de dados diretamente para seu ambiente de desenvolvimento integrado (IDE) via CLI do Gemini e a caixa de ferramentas do MCP não é apenas teórica. Isso se traduz em fluxos de trabalho tangíveis que aumentam a velocidade, especialmente para um aplicativo complexo como nossa experiência híbrida de varejo. Vamos analisar alguns cenários:

1. Iteração rápida na lógica de filtragem de produtos

Imagine que acabamos de lançar uma nova promoção de "roupas esportivas de verão". Queremos testar como nossos filtros combinados (por exemplo, por marca, tamanho, cor, faixa de preço) interagem com essa nova categoria.

Sem a integração do IDE:

Provavelmente, eu mudaria para um cliente SQL separado, escreveria a consulta, executaria, analisaria os resultados, voltaria ao IDE para ajustar o código do aplicativo, mudaria de volta para o cliente e repetiria. Essa troca de contexto é muito cansativa.

Com a CLI do Gemini e o MCP:

Posso ficar no meu ambiente de desenvolvimento integrado e muito mais:

  • Consulta: posso atualizar rapidamente a consulta no yaml com (conjunto de dados hipotético) "SELECT DISTINCT brand FROM products WHERE category = 'activewear' AND season = 'summer'" e testar direto no meu terminal.
  • Análise de dados: veja as marcas retornadas instantaneamente. Se eu precisar verificar a disponibilidade de produtos de uma marca e tamanho específicos, basta fazer outra consulta rápida:"SELECT COUNT(*) FROM products WHERE brand = 'SummitGear' AND size = 'M' AND category = 'activewear' AND season = 'summer'"
  • Integração de código: posso ajustar imediatamente a lógica de filtragem de front-end ou as chamadas de API de back-end com base nesses insights rápidos de dados no ambiente de desenvolvimento integrado, reduzindo significativamente o ciclo de feedback.

2. Ajuste da pesquisa de vetores para recomendações de produtos

Nossa pesquisa híbrida usa embeddings de vetor para recomendações de produtos relevantes. Digamos que as taxas de cliques das recomendações de "tênis de corrida masculinos" estejam caindo.

Sem a integração do IDE:

Eu executaria scripts ou consultas personalizados em uma ferramenta de banco de dados para analisar as pontuações de similaridade dos tênis recomendados, compará-los aos dados de interação do usuário e tentar correlacionar padrões.

Com a CLI do Gemini e o MCP:

  • Analisar incorporações:posso consultar diretamente as incorporações de produtos e os metadados associados: "SELECT product_id, name, vector_embedding FROM products WHERE category = ‘running shoes' AND gender = ‘male' LIMIT 10"
  • Referência cruzada:também posso fazer uma verificação rápida da similaridade real do vetor entre um produto escolhido e as recomendações. Por exemplo, se o produto A for recomendado para usuários que olharam o produto B, posso executar uma consulta para recuperar e comparar as embeddings de vetor deles.
  • Depuração:permite depuração e teste de hipóteses mais rápidos. O modelo de embedding está se comportando como esperado? Há anomalias nos dados que afetam a qualidade da recomendação? Posso receber respostas iniciais sem sair do meu ambiente de programação.

3. Entender o esquema e a distribuição de dados para novos recursos

Digamos que você esteja planejando adicionar um recurso de "avaliações dos clientes". Antes de escrever a API de back-end, precisamos entender os dados de clientes atuais e como as avaliações podem ser estruturadas.

Sem a integração do IDE:

Preciso me conectar a um cliente de banco de dados, executar comandos DESCRIBE em tabelas como "customers" e "orders" e consultar dados de amostra para entender relacionamentos e tipos de dados.

Com a CLI do Gemini e o MCP:

  • Análise do esquema:posso consultar a tabela no arquivo YAML e executar diretamente no terminal.
  • Amostragem de dados:posso extrair dados de amostra para entender a demografia dos clientes e o histórico de compras: "SELECT customer_id, name, signup_date, total_orders FROM customers ORDER BY signup_date DESC LIMIT 5"
  • Planejamento:esse acesso rápido ao esquema e à distribuição de dados ajuda a tomar decisões informadas sobre como projetar a nova tabela de avaliações, quais chaves estrangeiras estabelecer e como vincular avaliações a clientes e produtos de maneira eficiente, tudo isso antes de escrever uma única linha de código de aplicativo para o novo recurso.

Esses são apenas alguns exemplos, mas destacam o principal benefício: reduzir o atrito e aumentar a velocidade do desenvolvedor. Ao trazer a interação do AlloyDB diretamente para o IDE, a CLI do Gemini e a caixa de ferramentas do MCP nos permitem criar aplicativos melhores e mais responsivos com mais rapidez.

10. Limpar

Para evitar cobranças na sua conta do Google Cloud pelos recursos usados nesta postagem, siga estas etapas:

  1. No console do Google Cloud, acesse a página do Gerenciador de recursos.
  2. Na lista de projetos, selecione o projeto que você quer excluir e clique em Excluir.
  3. Na caixa de diálogo, digite o ID do projeto e clique em Encerrar para excluí-lo.
  4. Como alternativa, clique no botão "EXCLUIR CLUSTER" para excluir o cluster do AlloyDB (mude o local neste hiperlink se você não escolheu us-central1 para o cluster no momento da configuração) que acabamos de criar para este projeto.

11. Parabéns

Parabéns! Você integrou a MCP Toolbox diretamente ao seu ambiente de desenvolvimento integrado (IDE) para uma interação perfeita com o AlloyDB e usou a CLI do Gemini para interagir com nosso conjunto de dados de e-commerce de varejo e escrever consultas que normalmente exigem ferramentas separadas. Você aprendeu novas maneiras de analisar e entender os dados, desde a verificação das estruturas de tabelas até a realização de verificações rápidas de integridade dos dados, tudo isso usando interfaces de linha de comando conhecidas no nosso ambiente de desenvolvimento integrado.

Clone o repo, analise e me diga se você melhorou o aplicativo usando a CLI do Gemini e o projeto de código aberto MCP Toolbox for Databases.

Para mais aplicativos orientados a dados criados com a CLI do Gemini, o MCP e implantados em ambientes de execução sem servidor, inscreva-se na próxima temporada do Code Vipassana, em que você participa de sessões práticas guiadas por instrutores e mais codelabs como este.