IA e FerramentasJun 3, 20268 min de leitura

Como Usar o Claude como Seu Arquiteto de Banco de Dados com MCP Server

O Model Context Protocol permite que o Claude leia seu schema ao vivo, crie tabelas, defina relacionamentos e gere migrations — tudo a partir de uma conversa em linguagem natural. Veja como configurar e tirar o máximo proveito.

O design de banco de dados sempre exigiu uma combinação rara de habilidades: entender o domínio de negócio, conhecer teoria relacional e ter experiência prática com as particularidades de diferentes motores de banco de dados. Para a maioria dos times, essa expertise fica concentrada em uma ou duas pessoas. E se você pudesse dar a cada desenvolvedor do seu time acesso a esse nível de conhecimento, sob demanda, através de uma conversa?

Essa é a promessa de conectar o Claude ao ER Flow via Model Context Protocol. O Claude se torna seu arquiteto de banco de dados — um que nunca dorme, lembra de cada padrão de design e pode aplicar mudanças no seu schema ao vivo em segundos.

O que é o Model Context Protocol?

O Model Context Protocol (MCP) é um padrão aberto introduzido pela Anthropic que define como modelos de IA se comunicam com ferramentas externas e fontes de dados. Pense nele como um padrão USB para IA: em vez de cada ferramenta ter sua própria integração proprietária, qualquer ferramenta compatível com MCP pode se conectar a qualquer cliente de IA compatível com MCP.

MCP Servers expõem um conjunto de "ferramentas" — funções que a IA pode chamar. Quando você pede ao Claude "adicione um log de auditoria à tabela de pedidos", o Claude não apenas gera texto SQL. Ele chama uma ferramenta real que modifica seu schema no ER Flow. A mudança aparece no seu canvas visual imediatamente, com suporte completo a desfazer.

Como Funciona o MCP Server do ER Flow

ER Flow expõe um MCP Server construído especificamente com ferramentas que mapeiam diretamente para operações de design de banco de dados. As principais ferramentas incluem get-data-model-dbml (lê o schema atual como DBML), create-table (cria uma nova tabela com colunas, índices e chaves estrangeiras), update-table (modifica uma tabela existente), delete-table, create-column, update-column, delete-column, create-index e batch-operations (aplica múltiplas mudanças atomicamente em uma única requisição).

Antes de fazer qualquer mudança, o Claude chama get-data-model-dbml para ler seu schema atual. Isso é crítico — significa que o Claude sempre trabalha a partir de uma imagem precisa das suas tabelas e relacionamentos existentes, não de uma versão alucinada. Ele vê seus nomes de colunas reais, tipos, restrições e chaves estrangeiras. Essa consciência de contexto é o que separa o design via MCP da geração ingênua de prompt-to-SQL.

Configurando o Claude Code com ER Flow

A configuração leva menos de cinco minutos. Abra seu projeto no ER Flow e navegue até Configurações → MCP Server. Você verá a URL exclusiva do MCP Server do seu projeto e uma chave de API. Copie ambas. Se você estiver usando o Claude Code (o CLI oficial da Anthropic), adicione o servidor ao arquivo .claude/mcp.json do seu projeto com o transporte type: "sse", a URL do projeto e um cabeçalho Authorization: Bearer contendo sua chave de API. Reinicie o Claude Code e você verá as ferramentas do ER Flow listadas no painel de ferramentas disponíveis.

Configuração para Cursor e Windsurf

Se você usa Cursor, adicione a mesma configuração em .cursor/mcp.json na raiz do seu projeto. Windsurf lê de .windsurf/mcp.json. A estrutura é idêntica — apenas o caminho do arquivo muda. Todos os três clientes suportam o transporte SSE que o ER Flow usa, então a experiência é consistente independentemente do editor de IA que você preferir.

Exemplo: "Criar um Sistema de Notificações"

Veja como uma conversa real se parece. Você digita: *"Adicione um sistema de notificações. Os usuários devem poder receber notificações quando alguém comentar no post deles ou os seguir. Armazene se cada notificação foi lida."*

O Claude chama get-data-model-dbml primeiro, lê suas tabelas existentes de users, posts e comments, depois chama batch-operations com uma única requisição que cria a tabela notifications. A nova tabela inclui colunas para id, user_id, type (um varchar restrito a valores como comment e follow), actor_id (o usuário que acionou a notificação), notifiable_type e notifiable_id (uma referência polimórfica), read_at e timestamps. O Claude também cria um índice composto em (user_id, read_at) para consultas eficientes de notificações não lidas. Tudo isso aparece no seu canvas do ER Flow em uma única operação.

Exemplo: "Adicionar Log de Auditoria"

Log de auditoria é um padrão que o Claude aplica com fluência. Prompt: *"Adicione log de auditoria às tabelas de pedidos e produtos. Preciso saber quem mudou o quê e quando."* O Claude lê o schema, depois cria uma tabela audit_logs com id, user_id, auditable_type, auditable_id, event (created, updated, deleted), old_values (JSON), new_values (JSON), ip_address e created_at. Ele adiciona um índice polimórfico em (auditable_type, auditable_id) para buscas rápidas por registro. Se seu projeto usa Laravel, ele também menciona o pacote relevante que fornece uma trait Auditable — porque o Claude entende a stack completa, não apenas o schema.

Operações em Lote para Velocidade

A ferramenta batch-operations é especialmente poderosa ao fazer mudanças interconectadas. Em vez de criar uma tabela, depois adicionar chaves estrangeiras, depois criar índices como requisições separadas, o Claude agrupa tudo em uma única operação atômica. Isso significa que seu schema nunca fica em um estado intermediário onde chaves estrangeiras referenciam tabelas que ainda não existem. Para funcionalidades complexas que tocam muitas tabelas, uma única resposta do Claude pode aplicar dezenas de mudanças sem erros intermediários.

Melhores Práticas para Design de Schema Assistido por IA

Sempre revise antes de migrar. O Claude é excelente em aplicar padrões, mas não conhece os padrões de consulta da sua aplicação, volumes esperados de dados ou requisitos de performance. Depois que o Claude faz mudanças, revise o canvas do ER Flow antes de gerar migrations. Procure índices faltando em colunas em que você fará filtros ou joins frequentes. Verifique se as regras de cascata das chaves estrangeiras correspondem à sua semântica de deleção.

Seja específico sobre restrições. Prompts vagos produzem schemas vagos. Em vez de "adicione um campo de preço", diga "adicione uma coluna price em centavos inteiros, not null, unsigned, com padrão 0." Quanto mais precisos forem seus requisitos, mais preciso será o resultado. Use `get-data-model-dbml` explicitamente. Se você fez mudanças manuais no ER Flow e quer que o Claude esteja ciente delas, diga explicitamente para ele ler o schema atual primeiro. Isso garante que o Claude sempre trabalhe a partir do estado mais recente, não de uma imagem desatualizada de como o schema estava mais cedo na conversa.

A combinação do conhecimento de padrões do Claude com o loop de feedback visual do ER Flow cria um workflow de design de banco de dados que é simultaneamente mais rápido e mais preciso do que qualquer abordagem isolada. Sua IA cuida do boilerplate; você se concentra nas decisões de design que realmente requerem julgamento de negócio.