mcp-drawdb
Interaja com diagramas de banco de dados drawdb no navegador. Abra https://drawdb.icen.ai/editor antes de usar.
Documentação
mcp-drawdb
Servidor MCP para drawdb — permite que assistentes de IA (Claude Code, Cursor, etc.) leiam e modifiquem diretamente diagramas de banco de dados no seu navegador.
Como Funciona
Claude Code ──stdio──► npx mcp-drawdb ──ws──► Relay (embedded) ◄──ws── Browser (drawdb)
- npx mcp-drawdb inicia um servidor de retransmissão WebSocket internamente (porta automática 23432–23442) e depois conecta como cliente. Se um relay já estiver em execução, ele o reutiliza.
- drawdb no navegador verifica automaticamente as portas 23432–23442 para encontrar o relay, expõe o estado do diagrama às ferramentas
- O relay roteia mensagens entre o Claude Code e o navegador
Nenhum processo de relay separado é necessário — tudo roda dentro da ponte MCP.
Início Rápido
1. Configure o Claude Code
Adicione ao seu claude_desktop_config.json ou .claude/settings.json:
{
"mcpServers": {
"drawdb": {
"command": "npx",
"args": ["mcp-drawdb"]
}
}
}
2. Abra drawdb.icen.ai
Abra drawdb.icen.ai no seu navegador. Você verá um ponto MCP verde no cabeçalho quando conectado.
Ponto cinza? O relay pode estar em uma porta diferente. O navegador verifica automaticamente as portas 23432–23442, então basta aguardar um momento. Você também pode clicar no ponto MCP para definir manualmente a URL do WebSocket.
3. Pronto
O Claude Code agora pode ler e modificar seus diagramas. Experimente:
"List all tables in the diagram"
"Add a users table with id, email, name"
"Create a relationship from users.id to posts.user_id"
"Export SQL for MySQL"
Ferramentas (14)
| Ferramenta | Descrição |
|---|---|
ping | Testar conexão com o navegador |
list_tables | Listar todas as tabelas com campos |
get_diagram | Visão geral completa do diagrama: tabelas, campos, layout (x/y/w/h), relacionamentos, tipo de banco de dados |
add_table | Adicionar uma tabela com campos, cor, comentário |
update_table | Renomear tabela, adicionar/remover/alterar campos com controle total de propriedades |
delete_table | Excluir uma tabela (em cascata para relacionamentos) |
add_relationship | Adicionar FK com cardinalidade (1:1, 1:n, n:1, n:m) e regras de restrição |
delete_relationship | Excluir um relacionamento |
set_layout | Reposicionar tabelas no canvas |
set_database | Alternar tipo de banco de dados (mysql, postgresql, sqlite, mariadb, transactsql, oraclesql, generic) |
get_issues | Validar diagrama: nomes duplicados, PKs ausentes, incompatibilidades de tipo, etc. |
export_sql | Gerar SQL DDL para o banco de dados de destino |
clear_diagram | Remover todas as tabelas e relacionamentos |
undo | Ver a última ação na pilha de desfazer |
Variáveis de Ambiente
| Variável | Padrão | Descrição |
|---|---|---|
RELAY_URL | (embutido) | Conectar a um relay externo em vez de iniciar um |
PORT | 23432 | Porta inicial para o relay (auto-incrementa até 23442) |
HOST | 0.0.0.0 | Endereço de escuta do relay |
CORS_ORIGIN | * | Origem CORS para o endpoint HTTP do relay |
Propriedades de Campo
Ao usar add_table, update_table, cada campo suporta:
| Propriedade | Tipo | Descrição |
|---|---|---|
name | string | Nome da coluna |
type | string | Tipo SQL (INT, VARCHAR, TEXT, DATETIME, ENUM, ...) |
primary | boolean | Chave primária |
unique | boolean | Restrição única |
nullable | boolean | Permitir NULL (false = NOT NULL) |
increment | boolean | Auto incremento |
unsigned | boolean | Sem sinal (tipos numéricos) |
default_value | string | Valor padrão |
check | string | Expressão de restrição CHECK |
comment | string | Comentário da coluna |
size | string | Tamanho/precisão do tipo (ex.: "255" para VARCHAR(255)) |
values | string[] | Valores permitidos para ENUM/SET |
Perguntas Frequentes
HTTPS e ws://localhost? Todos os principais navegadores isentam localhost de verificações de conteúdo misto. ws://localhost funciona a partir de https://drawdb.icen.ai sem wss://.
A porta 23432 está ocupada? O relay detecta automaticamente as portas 23432–23442. O navegador verifica todas as portas automaticamente, então encontrará o relay onde quer que ele esteja.
Relay Independente
Para configurações avançadas (Docker, servidor compartilhado), você pode executar o relay separadamente:
npx mcp-drawdb-relay
Depois configure a ponte com RELAY_URL:
{
"mcpServers": {
"drawdb": {
"command": "npx",
"args": ["mcp-drawdb"],
"env": {
"RELAY_URL": "ws://your-server:23432"
}
}
}
}
Requisitos
- Node.js >= 18
- drawdb com integração MCP (cliente WebSocket no navegador)
- Uma aba do navegador em execução com drawdb aberto
Licença
MIT