drawdb-mcp

Servidor DrawDB + MCP

Documentação

drawdb logo

drawDB + MCP Server

Este fork do DrawDB estende o original com integração de assistente de IA via Model Context Protocol (MCP). Assistentes de IA como o Claude podem criar, modificar e gerenciar diagramas de banco de dados programaticamente.

O backend é o dono do diagrama. As ferramentas MCP leem e escrevem o estado autoritativo diretamente, então todas as ferramentas funcionam com ou sem navegador aberto — você não precisa do editor em execução para que um assistente construa um esquema. Quando uma GUI está conectada, ela atua como uma visão sincronizada: o backend envia cada alteração confirmada para ela, e as edições feitas no editor são enviadas de volta. Uma aba que reconecta adota o que o backend possui.

Relação com o DrawDB Upstream

Este projeto começou como um fork do DrawDB, mas desde então divergiu substancialmente e é intencionalmente não mantido em sincronia com o upstream. Correções e recursos selecionados são ocasionalmente cherry-picked do projeto pai, mas os dois continuarão a se distanciar conforme o drawdb-mcp evolui por conta própria. O DrawDB permanece um projeto separado e ativamente mantido, e todo o crédito vai para seus autores — veja drawdb-io/drawdb.

Vídeo de Demonstração

DrawDB MCP Integration Demo

Assista como projetar esquemas de banco de dados usando linguagem natural com o Claude AI.

Arquitetura:

  • apps/gui: frontend React derivado do DrawDB — uma visão sincronizada do diagrama do backend, não o store
  • apps/backend: servidor MCP NestJS que detém o estado autoritativo do diagrama
  • packages/diagram-core: camada de domínio sem framework — esquemas de entidade, o reducer de estado, as tabelas de tipos de dados e os codecs SQL/DBML, para que o backend possa renderizar exportações sem GUI em execução
  • packages/remote-control-contract: o contrato ORPC tipado que ambas as direções do socket compartilham
  • Construído com Turborepo e pnpm workspaces

Começando

Início Rápido com Docker (Recomendado)

A maneira mais fácil de começar é usando Docker:

docker run \
  --name drawdb-mcp \
  -p 8080:80 \
  -p 3000:3000 \
  --restart unless-stopped \
  ghcr.io/anatoly-lab/drawdb-mcp:latest

Então:

  1. Abra a GUI: http://localhost:8080
  2. Conecte o Claude Code ao servidor MCP:
claude mcp add --transport http drawdb-mcp http://127.0.0.1:3000

Agora o Claude pode criar e modificar diagramas de banco de dados para você!

Pré-lançamentos

latest acompanha apenas versões estáveis. Betas e candidatos a lançamento são publicados sob sua versão exata e nunca mudam latest, então fixe a versão completa para executar um:

docker run \
  --name drawdb-mcp \
  -p 8080:80 \
  -p 3000:3000 \
  ghcr.io/anatoly-lab/drawdb-mcp:2.0.0-beta.1

Consulte GHCR_DEPLOYMENT.md para tags disponíveis e uso avançado.

Desenvolvimento Local

Pré-requisitos

  • Node.js 20.19+ ou 22.22+ (veja engines em package.json)
  • pnpm 8.15.0+ (instale via npm install -g pnpm)

Inicie a GUI e o backend:

git clone https://github.com/anatoly-lab/drawdb-mcp
cd drawdb-mcp
pnpm install
pnpm dev

Inicie apenas a GUI:

pnpm gui:dev
# Access at http://localhost:5173

Inicie apenas o backend:

pnpm backend:dev
# WebSocket at ws://localhost:3000/remote-control

Compilar

Compile ambos os aplicativos:

pnpm install
pnpm build

Compile um aplicativo específico:

pnpm build --filter=gui
pnpm build --filter=backend

Conecte o Claude Code ao Servidor MCP

Ao executar localmente, conecte o Claude Code:

claude mcp add --transport http drawdb-mcp http://127.0.0.1:3000

O frontend se conecta ao backend via WebSocket automaticamente. Lembre-se de que é uma visão do estado do backend, em vez do store: as ferramentas continuam funcionando sem navegador aberto, e uma aba que reconecta adota o que o backend possui.

Implantação com Docker

Consulte DOCKER_BUILD.md para instruções detalhadas de compilação.

Compile com Docker Compose:

docker-compose up --build
# Access at http://localhost:8080

Ou compile diretamente:

docker build -t drawdb-mcp:local .
docker run -p 8080:80 -p 3000:3000 drawdb-mcp:local

A imagem Docker inclui tanto o frontend quanto o backend. O WebSocket é proxiado via Nginx.

Atualizando para Novas Versões

Ao atualizar para uma nova versão (seja via Docker ou desenvolvimento local), você deve realizar uma atualização forçada no navegador para limpar o JavaScript do frontend em cache:

  • Windows/Linux: Ctrl + Shift + R ou Ctrl + F5
  • macOS: Cmd + Shift + R

Sem uma atualização forçada, o navegador pode continuar usando o código antigo do frontend em cache mesmo que o backend tenha sido atualizado, o que pode causar erros ou comportamento inesperado.

Recursos

Exportar e Importar

O servidor MCP fornece ferramentas para exportar e importar diagramas de banco de dados em vários formatos:

Formatos de Exportação:

  • SQL DDL: Exportar instruções SQL específicas do banco de dados (PostgreSQL, MySQL, SQLite, MariaDB, MSSQL, Oracle)
  • DBML: Exportar para Database Markup Language (formato legível por humanos e agnóstico de banco de dados)
  • JSON: Exportar o estado completo do diagrama para backup/restauração

Formatos de Importação:

  • DBML: Importar esquemas de banco de dados do formato DBML
  • JSON: Importar o estado completo do diagrama

Ferramentas MCP Disponíveis:

  • export_sql - Exportar diagrama como SQL DDL para o tipo de banco de dados atual
  • export_dbml - Exportar diagrama como DBML
  • import_dbml - Importar esquema de banco de dados do DBML
  • export_diagram - Exportar diagrama completo como JSON
  • import_diagram - Importar diagrama completo do JSON

Consulte CLAUDE.md para a lista completa de ferramentas MCP disponíveis e seu uso.

Licença e Créditos

Este projeto é licenciado sob a GNU Affero General Public License v3.0 (AGPL-3.0), herdada e mantida do DrawDB upstream. Consulte o arquivo LICENSE para o texto completo.

Construído sobre DrawDB pelos autores e contribuidores do DrawDB. Muito obrigado ao projeto original pela base sobre a qual este fork foi construído.