1. Introdução
Conheça o AllStrides, uma plataforma completa de gerenciamento de eventos para comunidades de fitness. Apesar de ter muitos recursos, o estado atual é "Somente local". Ele depende de um banco de dados SQLite local e da execução manual do Node.js. Para que a comunidade cresça, a AllStrides precisa da escala, da confiabilidade e da segurança do Google Cloud.
Neste codelab, você não vai realizar uma migração tradicional. Em vez disso, você vai atuar como um arquiteto de produtos, usando a CLI do Gemini como seu parceiro de ação. Ao equipar o Gemini com três servidores do Protocolo de Contexto de Modelo (MCP) do Google Cloud, você permite que a IA "entre em contato" e interaja diretamente com os serviços do Google Cloud. Primeiro, você vai usar o MCP de conhecimento do desenvolvedor para identificar o melhor banco de dados do Google Cloud para o app allstrides. Depois, vai usar o MCP do Cloud SQL para provisionar uma instância de banco de dados e mover os dados da sua comunidade local para a nuvem com um único comando. Por fim, você vai usar o MCP do Cloud Run para transformar o aplicativo em contêiner, tornando o AllStrides ativo e acessível globalmente.

Pré-requisitos
- Conhecimentos básicos sobre o console do Google Cloud
- Habilidades básicas na interface de linha de comando e no Cloud Shell
O que você vai aprender
- Como implantar e configurar a CLI do Gemini para trabalhar com o MCP remoto
- Como usar o servidor MCP de conhecimento de desenvolvimento
- Como usar o servidor MCP remoto do Cloud SQL para migrar dados para a nuvem
- Como usar o servidor MCP remoto do Cloud Run para implantar aplicativos na nuvem
- Como usar a CLI do Gemini no Google Cloud Shell
O que é necessário
- Uma conta e um projeto do Google Cloud
- Um navegador da Web, como o Chrome, que seja compatível com o console do Google Cloud e o Cloud Shell
2. Configuração e requisitos
Configuração do projeto
- Faça login no Console do Google Cloud. Crie uma conta do Gmail ou do Google Workspace, se ainda não tiver uma.
Use uma conta pessoal em vez de uma conta escolar ou de trabalho.
- Crie um novo projeto ou reutilize um existente. Para criar um projeto no console do Google Cloud, clique no botão "Selecionar um projeto" no cabeçalho, que vai abrir uma janela pop-up.

Na janela "Selecionar um projeto", clique no botão "Novo projeto", que vai abrir uma caixa de diálogo para o novo projeto.

Na caixa de diálogo, coloque o nome do projeto de sua preferência e escolha o local.

- O Nome do projeto é o nome de exibição para os participantes do projeto. O nome do projeto não é usado pelas APIs do Google e pode ser alterado a qualquer momento.
- O ID do projeto é exclusivo em todos os projetos do Google Cloud e não pode ser mudado após a definição. O console do Google Cloud gera automaticamente um ID exclusivo, mas você pode personalizá-lo. Se você não gostar do ID gerado, crie outro aleatório ou forneça o seu para verificar a disponibilidade. Na maioria dos codelabs, é necessário fazer referência ao ID do projeto, que normalmente é identificado com o marcador de posição PROJECT_ID.
- Para sua informação, há um terceiro valor, um Número do projeto, que algumas APIs usam. Saiba mais sobre esses três valores na documentação.
Ativar faturamento
Configurar uma conta de faturamento pessoal
Se você configurou o faturamento usando créditos do Google Cloud, pule esta etapa.
- Clique neste link e faça login com uma Conta do Google pessoal.
- Você verá algo como:

- Clique no botão CLIQUE AQUI PARA ACESSAR SEUS CRÉDITOS. Isso vai abrir uma página para configurar seu perfil de faturamento. Se aparecer uma tela de inscrição para um teste sem custo financeiro, clique em "Cancelar" e continue vinculando o faturamento.

- Clique em "Confirmar". Agora você está conectado a uma conta de faturamento de avaliação do Google Cloud Platform.

Configurar uma conta de faturamento pessoal
Se você configurou o faturamento usando créditos do Google Cloud, pule esta etapa.
Para configurar uma conta de faturamento pessoal, acesse este link e ative o faturamento no console do Cloud.
Algumas observações:
- A conclusão deste laboratório custa menos de US $3 em recursos do Cloud.
- Siga as etapas no final deste laboratório para excluir recursos e evitar mais cobranças.
- Novos usuários podem aproveitar o teste sem custos financeiros de US$300.
Inicie o Cloud Shell
Embora o Google Cloud e o Spanner possam ser operados remotamente do seu laptop, neste codelab usaremos o Google Cloud Shell, um ambiente de linha de comando executado no Cloud.
No Console do Google Cloud, clique no ícone do Cloud Shell na barra de ferramentas superior à direita:

Ou pressione G e S. Essa sequência vai ativar o Cloud Shell se você estiver no console do Google Cloud ou usar este link.
O provisionamento e a conexão com o ambiente levarão apenas alguns instantes para serem concluídos: Quando o processamento for concluído, você verá algo como:

Essa máquina virtual contém todas as ferramentas de desenvolvimento necessárias. Ela oferece um diretório principal persistente de 5 GB, além de ser executada no Google Cloud. Isso aprimora o desempenho e a autenticação da rede. Neste codelab, todo o trabalho pode ser feito com um navegador. Você não precisa instalar nada.
3. Antes de começar
Ativar a API Basic
Para usar serviços de banco de dados gerenciados, como o Cloud SQL, e outros serviços para criar e implantar seu aplicativo no Cloud Run, é necessário ativar as APIs respectivas no seu projeto do Google Cloud.
Dependendo da sua abordagem, é possível pular a etapa e deixar a CLI do Gemini ativar todas as APIs necessárias mais tarde. No entanto, você pode ter alguns atrasos e etapas repetidas durante a execução nesse caso.
No terminal do Cloud Shell, verifique se o ID do projeto está configurado:
gcloud config set project [YOUR-PROJECT-ID]
Defina a variável de ambiente PROJECT_ID:
PROJECT_ID=$(gcloud config get-value project)
Ative todos os serviços necessários:
gcloud services enable sqladmin.googleapis.com \
aiplatform.googleapis.com \
secretmanager.googleapis.com \
artifactregistry.googleapis.com \
cloudbuild.googleapis.com \
run.googleapis.com \
containerregistry.googleapis.com
Saída esperada:
student@cloudshell:~ (test-project-001-402417)$ PROJECT_ID=$(gcloud config get-value project)
Your active configuration is: [cloudshell-14650]
student@cloudshell:~ (test-project-001-402417)$
student@cloudshell:~ (test-project-001-402417)$ gcloud services enable sqladmin.googleapis.com \
aiplatform.googleapis.com \
secretmanager.googleapis.com \
artifactregistry.googleapis.com \
cloudbuild.googleapis.com \
run.googleapis.com \
containerregistry.googleapis.com
Operation "operations/acat.p2-812263612774-c2dbeef3-c4c1-4a7d-a4b2-b5380be65044" finished successfully.
Conceder permissões à conta de serviço
Você precisa conceder permissões de administrador de armazenamento à conta de serviço padrão do Compute para criar e armazenar imagens de aplicativos. Como na etapa anterior, você tem a opção de delegar isso à CLI do Gemini mais tarde durante a execução.
PROJECT_ID=$(gcloud config get-value project)
gcloud projects add-iam-policy-binding $PROJECT_ID --member=serviceAccount:$(gcloud projects describe $PROJECT_ID --format="value(projectNumber)")-compute@developer.gserviceaccount.com --role=roles/storage.admin
Ativar o MCP remoto
Os serviços remotos do MCP precisam ser ativados explicitamente para cada serviço em um projeto. Elas são desativadas por padrão e ajudam a regular o acesso à API no nível do projeto e do serviço.
Vamos começar com o serviço MCP de conhecimento do desenvolvedor. Para ativar a API Developer Knowledge e o serviço MCP remoto, execute os seguintes comandos gcloud.
PROJECT_ID=$(gcloud config get-value project)
gcloud beta services mcp enable developerknowledge.googleapis.com --project=$PROJECT_ID
Quando a API e o MCP remoto para o Developer Knowledge estiverem ativados, faça o mesmo para o serviço MCP remoto do Cloud SQL.
gcloud beta services mcp enable sqladmin.googleapis.com --project=$PROJECT_ID
Como em todos os MCPs remotos para bancos de dados, o acesso e as permissões do MCP são organizados, fornecendo acesso granular no nível do projeto à API. Somente um principal (usuário ou conta de serviço) com o papel Administrador do uso de serviços (roles/serviceusage.serviceUsageAdmin) pode fazer isso.
Somente principais com a função Usuário da ferramenta MCP (roles/mcp.toolUser) podem fazer chamadas para a API MCP remota.
Por exemplo, se você não tiver a função Administrador do Cloud SQL (roles/cloudsql.admin), não será possível criar, clonar ou atualizar nenhuma instância no projeto.
Leia mais sobre os papéis e permissões necessários na documentação.
Como podemos ver, a autorização granular e por etapas nos protege de um ataque não autorizado, mesmo quando o endpoint MCP remoto está ativado, o que o torna suficientemente seguro para nossa produção.
O próximo MCP remoto que vamos ativar é para o serviço do Cloud Run. A abordagem para ativação e acesso remoto do MCP do Cloud Run é semelhante à do MCP remoto do Cloud SQL.
Ative o serviço MCP do Cloud Run com o seguinte comando.
gcloud beta services mcp enable run.googleapis.com --project=$PROJECT_ID
Por fim, podemos verificar todos os MCPs remotos ativados no nosso projeto usando o seguinte comando.
gcloud beta services mcp list --project=$PROJECT_ID
Saída esperada:
student@cloudshell:~ (test-project-001-402417)$ gcloud beta services mcp list --project=$PROJECT_ID NAME: services/developerknowledge.googleapis.com MCP_ENDPOINT: developerknowledge.googleapis.com NAME: services/run.googleapis.com MCP_ENDPOINT: run.googleapis.com/mcp NAME: services/sqladmin.googleapis.com MCP_ENDPOINT: sqladmin.googleapis.com/mcp
Agora que todas as APIs e serviços estão ativados, precisamos configurar a CLI do Gemini.
4. Configurar a CLI do Gemini
O laboratório foi projetado para usar a CLI do Gemini como o principal agente para realizar a maioria das ações. A primeira etapa é configurar a CLI para trabalhar com servidores MCP remotos. Também é altamente recomendável usar a versão mais recente da CLI do Gemini e a versão mais recente do Gemini, como Gemini-3-pro ou Gemini-3-flash (atualmente em prévia).
Se você já tem a versão mais recente da CLI do Gemini e a configurou para usar os modelos mais recentes do Gemini, pule as próximas duas etapas e vá direto para a etapa 3.
1. Gerar uma chave da API Gemini
Para usar os modelos mais recentes do Gemini na CLI Gemini, ela precisa ser configurada com uma autenticação de chave de API. Podemos receber a chave de API no Google AI Studio
- Acesse o Google AI Studio -> Receber chave de API no seu navegador.
- No lado direito da tela, clique no botão
Create API key. - Na janela pop-up, escolha seu projeto ou importe se ele não estiver visível.

- Crie a chave de API.
- Você pode copiar a chave usando o botão de cópia no lado direito.

A chave está preparada e agora podemos usá-la na CLI do Gemini.
2. Configurar a CLI do Gemini
A CLI do Gemini pode ser configurada usando o arquivo de configurações ou de forma interativa com o comando /settings. Queremos que as configurações sejam preservadas no arquivo de configurações.
Primeiro, vamos criar um diretório para o projeto. Vamos chamar o diretório de projectmcp e mudar para ele usando os seguintes comandos.
mkdir ~/projectmcp
cd ~/projectmcp
No diretório, vamos criar um diretório para arquivos de configuração do Gemini e executar todos os nossos comandos. Por padrão, a CLI do Gemini usa um arquivo de configuração de escopo do usuário e extensões instaladas no diretório ~/.gemini. Mas vamos criar nossa própria configuração de escopo de projeto no diretório ~/projectmcp. Vamos começar criando o diretório e os arquivos de configuração.
mkdir ~/projectmcp/.gemini
touch ~/projectmcp/.gemini/settings.json
Em seguida, abra o arquivo ~/projectmcp/.gemini/settings.json usando o editor do Cloud Shell.
edit ~/projectmcp/.gemini/settings.json
Na janela do editor aberta, adicione a seguinte configuração.
{
"general": {
"preferredEditor": "vscode",
"previewFeatures": true,
"sessionRetention": {
"enabled": true
}
},
"ide": {
"enabled": true,
"hasSeenNudge": true
},
"security": {
"auth": {
"selectedType": "gemini-api-key"
}
},
"ui": {
"theme": "Default"
},
"tools": {
"shell": {
"enableInteractiveShell": false
}
}
}
Depois de editar o arquivo, use ctrl+s para salvar as mudanças e volte ao terminal clicando no botão Open Terminal.

Os conjuntos de arquivos settings.json acima definem o tipo de autenticação da CLI do Gemini como "gemini-api-key", e você precisa fornecer a chave ao modelo. Para isso, crie um arquivo .env no diretório em que você quer trabalhar com a CLI do Gemini e armazene sua chave de API para autenticação da CLI do Gemini como uma variável de ambiente, que será selecionada quando você iniciar o IDE.
Vamos editar o arquivo usando o editor do Cloud Shell.
edit ~/projectmcp/.env
e armazene a chave de API criada na etapa 1.
GEMINI_API_KEY= <YOUR_API_KEY>
Agora você pode voltar ao terminal e continuar. A próxima etapa é atualizar a CLI do Gemini para a versão mais recente. A versão no Google Cloud Shell ou no seu ambiente pode estar desatualizada e não funcionar corretamente com as configurações e os serviços do MCP mais recentes. Por isso, é importante atualizar e iniciar a CLI do Gemini. No terminal, execute o seguinte.
cd ~/projectmcp/
npm install -g @google/gemini-cli@latest
Agora você pode verificar a versão. Se você estiver trabalhando no Google Cloud Shell, lembre-se de que, a cada reinicialização, ele poderá voltar para a versão anterior. As mudanças feitas na CLI do Gemini não são permanentes no Cloud Shell.
gemini --version
Ela vai mostrar a versão mais recente da CLI do Gemini (versão 0.27 no momento em que o laboratório foi escrito). Confira a versão mais recente da CLI do Gemini aqui. Agora podemos iniciar e garantir que ele esteja usando o modelo mais recente do Gemini. Execute o comando a seguir na pasta do projeto para iniciar a CLI do Gemini.
gemini
Quando a CLI do Gemini for iniciada, você poderá verificar a versão e o modelo executando o comando /about na interface. Você vai receber algo como a imagem abaixo.

Você pode ver que ele está usando o modelo mais recente do Gemini-3.
2. Configurar servidores MCP na CLI do Gemini
Agora é hora de adicionar todos os servidores MCP ativados. Você pode ativar as extensões na CLI do Gemini de duas maneiras: pelas extensões ou diretamente nas configurações. Neste laboratório, você vai usar o arquivo setting.json do escopo do projeto e adicionar os detalhes de autenticação dos servidores MCP.
- Para o servidor MCP do Developer Knowledge, é necessário criar uma chave de API para autorização no endpoint.
Siga estas etapas:
- No console do Google Cloud do projeto em que você ativou a API, acesse a página "Credenciais".
- Clique em "Criar credenciais" e selecione "Chave de API" no menu. A caixa de diálogo "Chave de API criada" mostra a string da chave recém-criada.
- Clique no link
Edit API keyna caixa de diálogo. - No campo
Name, insira um nome para a chave. Por exemplo,DK API Key. - Em "Restrições de API", selecione
Restrict key. - Na lista "Selecionar APIs", ative
Developer Knowledge APIe clique em "OK". - Clique em "Salvar".

Agora, se você precisar usar a chave, acesse a página e clique em "Mostrar chave" à direita.

Agora você precisa armazenar essa chave na configuração. A seção MCP do arquivo settings.json ficaria assim (você precisa inserir um valor para sua chave de API do DK): Este é um exemplo de como fica a seção MCP do arquivo settings.json se apenas a API DK for adicionada. Mais adiante no laboratório, você também vai ver como o arquivo settings.json deve ficar com todos os servidores MCP juntos.
"mcpServers": {
"DeveloperKnowledge": {
"httpUrl": "https://developerknowledge.googleapis.com/mcp",
"headers": {
"X-Goog-Api-Key": "<Your DK API Key>"
}
}
},
- Em seguida, adicione a configuração do servidor MCP do Cloud SQL. Para o MCP do Cloud SQL, você vai usar suas credenciais do Google em vez da API. É mais seguro e nos permite definir papéis e o escopo de ações permitidas para um usuário. Esta é a configuração do servidor MCP. Substitua "<YOUR_GCP_PROJECT>" pelo ID do seu projeto.
"Cloud SQL MCP Server": {
"httpUrl": "https://sqladmin.googleapis.com/mcp",
"authProviderType": "google_credentials",
"oauth": {
"scopes": [
"https://www.googleapis.com/auth/cloud-platform"
]
},
"timeout": 500000,
"trust": false,
"headers": {
"X-Goog-User-Project": "<YOUR_GCP_PROJECT>"
}
},
- O próximo bloco de JSON contém a configuração do servidor MCP do Cloud Run. Ele segue o mesmo padrão do exemplo acima e usa credenciais do Google para autenticação e autorização. Confira um exemplo de configuração.
"CloudRun": {
"httpUrl": "https://run.googleapis.com/mcp",
"authProviderType": "google_credentials",
"oauth": {
"scopes": [
"https://www.googleapis.com/auth/cloud-platform"
]
}
}
Todos eles precisam ser adicionados ao arquivo ~/projectmcp/.gemini/settings.json.
Abra o arquivo ~/projectmcp/.gemini/settings.json usando o editor do Cloud Shell.
edit ~/projectmcp/.gemini/settings.json
Substitua o conteúdo pela seguinte configuração: Coloque sua chave de API e o ID do projeto nos campos "X-Goog-Api-Key" e "X-Goog-User-Project" de acordo com seu ambiente.
{
"general": {
"preferredEditor": "vscode",
"previewFeatures": true,
"sessionRetention": {
"enabled": true
}
},
"ide": {
"enabled": true,
"hasSeenNudge": true
},
"security": {
"auth": {
"selectedType": "gemini-api-key"
}
},
"mcpServers": {
"DeveloperKnowledge": {
"httpUrl": "https://developerknowledge.googleapis.com/mcp",
"headers": {
"X-Goog-Api-Key": "<Your DK API Key>"
}
},
"Cloud SQL MCP Server": {
"httpUrl": "https://sqladmin.googleapis.com/mcp",
"authProviderType": "google_credentials",
"oauth": {
"scopes": [
"https://www.googleapis.com/auth/cloud-platform"
]
},
"timeout": 500000,
"trust": false,
"headers": {
"X-Goog-User-Project": "<YOUR_GCP_PROJECT>"
}
},
"CloudRun": {
"httpUrl": "https://run.googleapis.com/mcp",
"authProviderType": "google_credentials",
"oauth": {
"scopes": [
"https://www.googleapis.com/auth/cloud-platform"
]
}
}
},
"ui": {
"theme": "Default"
},
"tools": {
"shell": {
"enableInteractiveShell": false
}
}
}
Agora podemos iniciar a CLI do Gemini e ver todos os servidores MCP ativados.
cd ~/projectmcp/
gemini
Quando a CLI do Gemini é iniciada, você pode executar o comando /mcp para ver todos os servidores MCP em execução.

5. Como preparar o aplicativo
No exemplo a seguir, você vai tentar migrar seu aplicativo local de amostra para o Google Cloud. Primeiro, vamos instalar e testar o aplicativo localmente.
1. Clonar o código-fonte
Precisamos clonar o aplicativo do repositório do GitHub. No Cloud Shell ou no terminal local, na pasta do projeto, execute:
git clone https://github.com/google/mcp.git
2. Iniciar o aplicativo no local
Vamos testar o aplicativo e carregar alguns dados de amostra
Na mesma shell, mude para a pasta do aplicativo e inicie-o usando o comando
cd mcp/examples/allstrides
./start_allstrides.sh
3. Testar o aplicativo
Se você estiver trabalhando no Cloud Shell, clique no botão Web preview na parte de cima da janela do Cloud Shell e escolha Preview on port 8080.

Uma nova guia do navegador será aberta com a interface do aplicativo. Nela, você pode clicar no botão Events, por exemplo.

No momento, você não tem nenhum evento.
4. Carregar dados de amostra
Você pode se registrar no aplicativo e criar seus próprios eventos, mensagens de chat e usuários ou usar os dados de exemplo fornecidos com o aplicativo.
Abra outra guia do Cloud Shell usando o sinal "+" na parte de cima.

Na nova guia do Cloud Shell, mude para o diretório do aplicativo e execute a importação usando o utilitário sqllite3:
cd ~/projectmcp/mcp/examples/allstrides
sqlite3 allstrides.db < seed_data.sql
Se você voltar à página do aplicativo e clicar no botão "Eventos" de novo, vai ver vários eventos.

Você também pode testar a página de chat e ver algumas mensagens.
Agora você pode fechar a segunda guia digitando exit
exit
Interrompa o aplicativo na primeira guia usando a combinação ctrl+c.
6. MCP de teste de conhecimento do desenvolvedor
Com o MCP de conhecimento do desenvolvedor, podemos usar documentos do Google diretamente nas nossas ferramentas agnósticas para verificar instruções, criar tutoriais e outras tarefas que podem ser aprimoradas com a documentação mais recente do Google.
Inicie a CLI do Gemini e liste as ferramentas do MCP disponíveis no servidor MCP do Developer Knowledge.
/mcp
No MCP de conhecimento do desenvolvedor, você vai encontrar três ferramentas disponíveis:
Saída esperada:
🟢 DeveloperKnowledge - Ready (3 tools) Tools: - batch_get_documents - get_document - search_documents
Nossa tarefa é mover o aplicativo para o Google Cloud, o que significa que precisamos mudar do banco de dados Sqlite local para uma solução mais escalonável e nativa da nuvem. Vamos pedir para o Gemini analisar o código do aplicativo e dar conselhos sobre a solução de banco de dados.
No comando da CLI do Gemini, digite o seguinte:
Hello, I need to choose a database platform for my allstrides application in Google Cloud. Can you analyze documentation and prepare a tutorial to choose the correct database engine?
A CLI do Gemini vai começar analisando seu código e depois pedir para executar o
Resultado esperado
? search_documents (DeveloperKnowledge MCP Server) {"query":"choose google cloud database"} ← │
│ │
│ MCP Server: DeveloperKnowledge │
│ Tool: search_documents │
│ │
│ Allow execution of MCP tool "search_documents" from server "DeveloperKnowledge"? │
│ │
│ ● 1. Allow once │
│ 2. Allow tool for this session │
│ 3. Allow all server tools for this session │
│ 4. No, suggest changes (esc)
Podemos ver que a ferramenta está usando o MCP para fundamentar a resposta com a documentação do Google. Permite a execução da solicitação do MCP de conhecimento do desenvolvedor. Ele pode pedir mais uma ou duas vezes para receber mais informações antes de fornecer a resposta. Não permita nenhuma mudança no seu aplicativo a partir de agora.
No final, ele criou um tutorial com um resumo em que o Cloud SQL para Postgres foi definido como a melhor opção para back-end de banco de dados. Você pode receber uma resposta ligeiramente diferente devido à natureza não determinista dos modelos de IA generativa.
Saída esperada:
By switching to Cloud SQL for PostgreSQL, AllStrides gains a robust, scalable foundation suitable for production deployment on Google Cloud. The transition is straightforward due to the use of Sequelize ORM.
Também podemos pedir para preparar um guia de migração de dados detalhado. Envie um novo comando para a CLI do Gemini:
I agree with the recommendation to use Cloud SQL for PostgreSQL as the new database for my application. Can you prepare a detailed migration tutorial based on Google documentation on how to move data from my local database to Cloud SQL in the cloud?
E, mais uma vez, esperamos que a CLI do Gemini use o MCP de conhecimento do desenvolvedor como fonte de verdade ao preparar o tutorial. A sequência de ações realizadas pela CLI do Gemini pode ser um pouco diferente, dependendo do modelo exato e de outros fatores. Por exemplo, ele pode pedir para preparar scripts de migração primeiro e só depois trabalhar na documentação final do tutorial.
Confira um dos exemplos em que ele pede permissão para executar o MCP de conhecimento do desenvolvedor:
? search_documents (DeveloperKnowledge MCP Server) {"query":"migrate local database to Cloud SQL for PostgreSQL"} ← │
│ │
│ MCP Server: DeveloperKnowledge │
│ Tool: search_documents │
│ │
│ Allow execution of MCP tool "search_documents" from server "DeveloperKnowledge"? │
│ │
│ ● 1. Allow once │
│ 2. Allow tool for this session │
│ 3. Allow all server tools for this session │
│ 4. No, suggest changes (esc) │
│ │
│ │
│ ⊷ search_documents (DeveloperKnowledge MCP Server) {"query":"import data into Cloud SQL PostgreSQL"}
Durante a execução, a CLI do Gemini pode pedir que você execute alguns comandos. Por exemplo, para entender melhor o esquema de dados e preparar instruções corretas para a migração.
E, no final, ele precisa preparar uma instrução detalhada para a migração de dados.
Em seguida, peça para a CLI do Gemini escrever o tutorial.
Please write the tutorial down
e vai criar um novo arquivo Markdown com o documento do tutorial.
Saída esperada:
✦ I have created a detailed migration guide for you. You can find the tutorial in the new file: MIGRATION_GUIDE.md. This guide covers: 1. Exporting your local SQLite data to CSV format. 2. Creating the PostgreSQL schema with compatible data types. 3. Uploading data to Google Cloud Storage. 4. Importing data into Cloud SQL in the correct order to respect relationships. 5. Resetting ID sequences to ensure new data can be added without errors.
Na próxima etapa, vamos trabalhar com o MCP do Cloud SQL para preparar nosso banco de dados e migrar os dados.
7. Teste do MCP remoto do Cloud SQL
1. Criar instância do Cloud SQL
Para começar, verifique as ferramentas disponíveis no servidor MCP do Cloud SQL digitando /mcp na CLI do Gemini.
/mcp
No momento, temos as seguintes ferramentas disponíveis.
Saída esperada:
🟢 Cloud SQL MCP Server - Ready (11 tools) Tools: - clone_instance - create_instance - create_user - execute_sql - get_instance - get_operation - import_data - list_instances - list_users - update_instance - update_user
Já decidimos usar o Cloud SQL para Postgres como back-end do nosso aplicativo no Google Cloud. Agora podemos pedir ao Gemini para criar uma instância do Cloud SQL.
No comando da CLI do Gemini, digite sua solicitação da seguinte forma:
Please create a Cloud SQL for Postgres instance with appropriate edition and version in the us-central1 region to be a backend for our application with a public IPs in the current project with 2 CPU and 8 GB memory.
Para evitar chamadas extras para identificar seu projeto atual, especifique explicitamente o ID do projeto ao inserir o comando. Se o nome do projeto não tiver sido usado no contexto antes, o modelo vai pedir o ID do projeto ou solicitar a execução do comando gcloud para identificar o projeto.
Em seguida, ele vai analisar as ferramentas atuais e pedir para executar as ferramentas MCP do Cloud SQL. Você vai ver a seguinte solicitação de aprovação.
? create_instance (Cloud SQL MCP Server MCP Server) {"tier":"db-custom-2-8192","region":"us-central1","project":"gleb-test-short-001-486416","databaseVersion":"POSTGRES_17","edition":"ENTERPRISE","nam... ← │
│ │
│ MCP Server: Cloud SQL MCP Server │
│ Tool: create_instance │
│ │
│ Allow execution of MCP tool "create_instance" from server "Cloud SQL MCP Server"? │
│ │
│ ● 1. Allow once │
│ 2. Allow tool for this session │
│ 3. Allow all server tools for this session │
│ 4. No, suggest changes (esc)
Depois de iniciar a execução, ele vai pedir para monitorar o status da operação e possíveis solicitações de suspensão entre as verificações. Algo assim.
✦ I will wait for 30 seconds before checking the status of the instance creation. ╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │ ⊶ Shell sleep 30 [current working directory /home/gleb/demo] │ │ │ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ ⠋ Refining Instance Configuration (esc to cancel, 11s)
Isso seria seguido por uma ferramenta get_operation para o MCP do Cloud SQL Server.
╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ ? get_operation (Cloud SQL MCP Server MCP Server) {"project":"gleb-test-short-001-486416","operation":"73c39ca7-65fe-46d1-bdb8-0dfa00000032"} ← │
│ │
│ MCP Server: Cloud SQL MCP Server │
│ Tool: get_operation │
│ │
│ Allow execution of MCP tool "get_operation" from server "Cloud SQL MCP Server"? │
│ │
│ ● 1. Allow once
Depois da solicitação final get_instance, você vai receber informações sobre a instância criada. Algo assim.
Saída esperada:
✦ I will wait for 30 seconds before checking the status of the instance creation. ╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │ ⊶ Shell sleep 30 [current working directory /home/gleb/demo] │ │ │ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ ⠋ Refining Instance Configuration (esc to cancel, 11s)
Isso seria seguido por uma ferramenta get_operation para o MCP do servidor do Cloud SQL e pela chamada da ferramenta MCP get_insance. Você pode passar por outras verificações e chamadas executadas pela CLI do Gemini para verificar se a tarefa foi concluída.
The Cloud SQL for Postgres instance allstrides-db has been successfully created in the us-central1 region with 2 vCPUs and 8 GB of RAM. Instance Details: - Project ID: gleb-test-short-001-486416 - Instance Name: allstrides-db - Public IP Address: 35.226.187.246 - Database Version: POSTGRES_17 - Machine Type: db-custom-2-8192 (2 vCPU, 8 GB RAM) - Region: us-central1 - Connection Name: gleb-test-short-001-486416:us-central1:allstrides-db The instance is configured with public IP enabled, IAM authentication turned on, and Data API access allowed.
2. Migrar dados
A instância está pronta, e agora podemos continuar migrando todos os nossos dados do banco de dados SQLite atual para um novo banco de dados na nuvem.
No comando da CLI do Gemini, digite a seguinte solicitação:
Now when we have our Cloud SQL instance ready it is time to move the data from our local database. Please migrate all the data to a new database in our Cloud SQL instance where the new user for application would be the database owner? Let's call the new database allstrides-db and the user allstrides. Please use our MCP tools whenever it is possible.
Durante a execução, a CLI do Gemini vai analisar nosso modelo de dados e pedir permissões para executar alguns comandos. O fluxo de trabalho não é 100% determinístico, e algumas etapas podem ser diferentes.
Confira um exemplo de como isso pode começar.
Saída esperada:
✦ I will read the allstrides/README.md and allstrides/seed_data.sql files to understand the local database structure and data. ╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │ ✓ ReadFile allstrides/README.md │ │ │ │ │ │ ✓ ReadFile allstrides/seed_data.sql │ │ │ ╰─────────────────────────────────────────────────────────────────────────
Depois de várias etapas, ele vai usar o MCP do Cloud SQL para preparar o banco de dados, o usuário e, por fim, migrar os dados. Uma das primeiras ações que ele realiza no banco de dados é adicionar você como um usuário do IAM e conceder permissões para criar banco de dados e usuário. Você precisa ter privilégios suficientes no Google Cloud como IAM
Confira um exemplo de algumas etapas durante o fluxo de trabalho
Saída esperada:
✓ execute_sql (Cloud SQL MCP Server MCP Server) {"project":"gleb-test-short-001-486416","instance":"allstrides-db","sqlStatement":"CREATE DATABASE \"allstrides-db\";","database":"postgres"} │
│ │
│ { │
│ "messages": [ │
│ { │
│ "message": "Execution complete. 1 result set(s) returned.", │
│ "severity": "INFO" │
│ } │
│ ], │
│ "metadata": { │
│ "sqlStatementExecutionTime": "0.075591388s" │
│ }, │
│ "results": [ │
│ {} │
│ ] │
│ } │
│
3. Implantar o aplicativo no Cloud Run
Agora, o banco de dados foi criado e os dados do aplicativo local foram migrados para o banco de dados do Cloud SQL. Agora você está pronto para implantar o aplicativo no Cloud Run. Durante a implantação, você vai usar uma combinação do SDK Google Cloud para criar a imagem no Google Cloud e implantá-la usando o MCP do Cloud Run.
Na CLI do Gemini, execute o seguinte comando.
Now, when all the data is successfully migrated to our Cloud SQL instance allstrides-db we can migrate our allstrides application to Cloud Run and deploy using my Cloud SQL database. Please put the username and the password for my database user user to Secret Manager to not show openly in Cloud Run.
Let's build the image first and then use MCP to create the Cloud Run service.
Durante a execução, ele vai verificar as APIs, preparar os dados para o gerenciador de secrets e criar os secrets necessários. Ele também vai atualizar o aplicativo para trabalhar com o banco de dados PostgreSQL e adicionar os módulos npm necessários.
Depois de criar a imagem e colocá-la no Artifact Registry, ele usa o serviço MCP para implantar o aplicativo no Cloud Run.
Confira um exemplo de como chamar o MCP do Cloud Run
Saída esperada:
✦ I will deploy the 'allstrides' service to Cloud Run using the deploy_service_from_image tool. I will configure the environment variables and map the
database credentials from Secret Manager. Note that the MCP tool's schema does not explicitly expose the Cloud SQL instance attachment parameter, which is
typically required for the Unix socket connection (/cloudsql/...) to work. I will proceed with the deployment as requested, but if the database connection
fails due to the missing instance attachment, we may need to use gcloud to update that specific configuration.
╭───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ Action Required 1 of 1 │
│ │
│ ? deploy_service_from_image (CloudRun MCP Server) {"service":{"invokerIamDisabled":true,"name":"projects/gleb-test-short-001-486416/locations/us-centra... │
│ │
│ MCP Server: CloudRun │
│ Tool: deploy_service_from_image │
│ Allow execution of MCP tool "deploy_service_from_image" from server "CloudRun"? │
│ │
│ ● 1. Allow once │
│ 2. Allow tool for this session │
│ 3. Allow all server tools for this session │
│ 4. No, suggest changes (esc) │
│ │
╰───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
O caminho exato para concluir todas as operações pode variar de execução para execução. Os agentes de IA escolhem o caminho com base no contexto, na saída do comando e em várias outras variáveis. E é aqui que reside a força do software de agentes de IA: ele pode reagir, ajustar a abordagem e tentar novamente as etapas para concluir tarefas e gerar resultados positivos.
Agora o aplicativo allstrides está implantado e em execução no Cloud Run e conectado ao banco de dados do Cloud SQL.
Confira o que você pode ver no final.
Saída esperada:
✦ The application allstrides has been successfully migrated to Cloud Run and is connected to the Cloud SQL database allstrides-db.
Deployment Details:
* Service URL: https://allstrides-812263612774.us-central1.run.app
* Database: allstrides-db (PostgreSQL)
* Database User: allstrides (Password updated and stored in Secret Manager)
* Secrets: db-user and db-pass are mounted as environment variables.
* Region: us-central1
Steps Taken:
1. Database Configuration:
* Updated the allstrides database user password.
* Created db-user and db-pass secrets in Google Cloud Secret Manager.
* Updated database.ts to support PostgreSQL connections via Cloud SQL socket.
2. Build:
* Built the container image gcr.io/gleb-test-short-001-486416/allstrides using Cloud Build.
3. Deployment:
* Initiated deployment using the MCP deploy_service_from_image tool.
* Granted the Secret Manager Secret Accessor role to the Cloud Run service account.
* Attached the Cloud SQL instance connection using gcloud (as the MCP tool currently lacks this specific configuration parameter).
The application is now serving traffic and successfully connected to the database.
Ao abrir o URL fornecido no navegador, você vai ver a página do aplicativo.

e todos os nossos eventos vão aparecer lá.

Parabéns! Você conseguiu usar a CLI do Gemini e os serviços remotos do MCP do Google Cloud para mover seu aplicativo local para a nuvem. Isso conclui a implantação, e todos os recursos podem ser limpos.
8. Limpar o ambiente
A maneira mais fácil de limpar o ambiente é pedir para a CLI do Gemini remover todos os componentes que você criou. Ele precisa manter todos os recursos no contexto. Mas se, por algum motivo, você tiver feito logout e não tiver histórico salvo, tente ser mais preciso e peça para limpar o serviço do Cloud Run, a imagem e a instância do Cloud SQL. Para remover o serviço, ele precisa ser autenticado com o usuário que tem as permissões necessárias e vai usar o comando gcloud.
Confira um exemplo de comando
Now, when we've tested the application can you please delete the created Cloud Run service, the image we've built and the Cloud SQL instance we've created in the project.
Depois da remoção, use os serviços MCP remotos para verificar se o serviço do Cloud Run ou a instância do Cloud SQL foi removida.
Can you please list all Cloud SQL instances in the project and Cloud Run services in the project.
Você vai ver uma mensagem como esta no final:
Saída esperada:
✦ There are currently no Cloud SQL instances or Cloud Run services (in us-central1) in the project gleb-test-short-001-486416.
Assim concluímos as etapas do laboratório.
9. Parabéns
Parabéns por concluir o codelab.
Programa de aprendizado do Google Cloud
O que vimos
- Como implantar e configurar a CLI do Gemini para trabalhar com MCPs remotos do Google Cloud
- Como usar o Development KnowledgeMCP
- Como usar o MCP do Cloud SQL para migrar dados para a nuvem
- Como usar o MCP do Cloud Run para implantar aplicativos na nuvem
- Como usar a CLI do Gemini no Google Cloud Shell
10. Pesquisa
Saída: