NOTAS DE QUEM CONSTRÓI · #040

Servidor MCP com acesso ao banco: o que checar antes de plugar

A Google levou quatro camadas de proteção pra deixar um agente de IA tocar num banco de produção. O que isso revela sobre o servidor MCP que você já plugou no seu.

Welly4 MIN

Servidor MCP com acesso ao banco: o que checar antes de plugar

A string de conexão colada na variável de ambiente

Um desenvolvedor sobe um servidor MCP num sábado à tarde, cola a connection string do banco de produção numa variável de ambiente e em quinze minutos o agente já responde perguntas sobre pedidos, clientes e estoque direto do Postgres. Funciona bem, a demonstração impressiona o time e ninguém testou o que acontece se o agente decidir montar um DELETE em vez de um SELECT.

Essa mesma cena se repete em boa parte dos projetos que conectam IA a dado real, e é por isso que o anúncio que a Google fez em 1 de junho de 2026 vale a leitura com calma. Nesse dia a empresa colocou em disponibilidade geral o AlloyDB Remote MCP Server, um servidor MCP gerenciado para o banco AlloyDB. O texto do anúncio detalha o que a Google considerou necessário para liberar um agente de IA a tocar num banco de produção: autenticação por IAM no lugar de senha ou chave de API compartilhada, uma ferramenta SQL que roda em modo somente leitura por padrão, filtro de prompt injection via Model Armor, e registro de toda consulta, ação e chamada de ferramenta no Cloud Audit Logs.

Reparar no que a Google decidiu blindar diz mais sobre o problema do que qualquer relatório de mercado. Ninguém constrói quatro camadas de proteção em cima de um recurso que já era seguro por padrão. Cada item da lista é resposta direta a um jeito específico de dar errado, e esse jeito de dar errado é exatamente o que a gente vê em servidor MCP montado às pressas: uma credencial única, sem escopo, sem separação entre leitura e escrita, sem log de nada.

O padrão que já está em produção em algum lugar

A maioria dos servidores MCP que aparece em projeto de cliente segue outro caminho. Alguém clona um servidor da comunidade, cola a connection string num arquivo .env, e o processo roda com a mesma permissão que o desenvolvedor tem no banco. Não existe escopo por ferramenta, não existe log de qual query o agente decidiu rodar, e não existe separação entre a ferramenta que lê pedido e a que consegue apagar linha.

A diferença fica clara lado a lado:

# servidor MCP "rápido", comum em prototipo
DATABASE_URL=postgres://admin:senha@prod-db:5432/app
# a ferramenta MCP herda a permissão inteira dessa conta
# padrão que a Google descreve no anúncio de junho
role: mcp-agente-leitura
grants: SELECT em pedidos, clientes
escrita: bloqueada por padrao
auditoria: cada chamada vai pro Cloud Audit Logs

A primeira versão sobe em quinze minutos. A segunda exige que alguém pare e decida o que o agente pode e não pode fazer, o que é exatamente o trabalho que costuma ficar pra depois.

Quatro perguntas antes de conectar qualquer servidor MCP a dado real

PerguntaServidor MCP típico de protótipoPadrão que o mercado está adotando
Quem detém a credencialUma string de conexão com permissão total, num .envConta de serviço com escopo próprio para a ferramenta
O que a ferramenta escreveMesmo endpoint aceita SELECT, INSERT, UPDATE e DELETEFerramenta de leitura separada da de escrita, escrita off por padrão
Onde fica o logStdout do processo, se sobrar alguém olhandoSistema de auditoria centralizado, consultável depois do fato
O que filtra o prompt maliciosoNada entre o texto que chega e a query que saiCamada de filtro antes da execução da ferramenta

Nenhuma dessas quatro perguntas exige trocar de banco ou de fornecedor. Dá pra aplicar o mesmo raciocínio num servidor MCP caseiro, apertando escopo de usuário, criando uma role só de leitura no Postgres e mandando log de cada chamada de ferramenta pra algum lugar que alguém realmente olha.

O que muda de segunda de manhã

Antes de plugar o próximo servidor MCP num banco com dado real, faça o inventário do que já está rodando. Pergunte, projeto por projeto: essa credencial tem escopo próprio ou é reaproveitada de outra coisa? A ferramenta que o agente usa consegue escrever, mesmo que ninguém tenha pedido pra ela escrever? Existe algum lugar onde dá pra ver, depois do fato, qual query o agente rodou às três da manhã?

Se a resposta for não em qualquer uma dessas, o conserto costuma caber numa tarde: criar uma role de leitura dedicada, separar a ferramenta de escrita num servidor à parte com aprovação manual, e mandar o log da ferramenta MCP pro mesmo lugar onde já vai o log da aplicação. Não precisa esperar o fornecedor lançar a versão gerenciada. É esse tipo de decisão de arquitetura que a Overflow revisa quando monta agentes de IA em produção para cliente: https://overflow.codes/ai.

Fontes

COMPARTILHARLINKEDINXWHATSAPP

// NEWSLETTER

O que a gente aprende, você recebe.

Bastidor de projeto, decisão técnica e o que estamos vendo em IA dentro das empresas. Sem enrolação e sem spam.

// PRÓXIMO PASSO

Tem um problema
parecido?