DBeaver MCP Server

Integra-se ao DBeaver para fornecer a assistentes de

Documentação

OmniSQL MCP

Servidor MCP universal de banco de dados — dá aos assistentes de IA acesso de leitura/gravação aos seus bancos de dados usando conexões já salvas no workspace do seu cliente de banco local (compatível com DBeaver).

npm version License: MIT Node.js

Suporte a Bancos de Dados

Com suporte nativo (driver direto, rápido):

  • PostgreSQL (via pg)
  • MySQL / MariaDB (via mysql2)
  • SQL Server / MSSQL (via mssql)
  • SQLite (via CLI do sqlite3)

Compatível com Postgres (roteado automaticamente pelo driver pg):

  • CockroachDB, TimescaleDB, Amazon Redshift, YugabyteDB, AlloyDB, Supabase, Neon, Citus

Outros bancos de dados: usa como fallback uma CLI externa configurada via OMNISQL_CLI_PATH. Os resultados variam conforme a CLI.

Recursos

  • Reutiliza conexões já configuradas no workspace do seu cliente de banco local — sem configuração duplicada
  • Execução nativa de consultas para PostgreSQL, MySQL/MariaDB, SQLite, SQL Server
  • Pool de conexões com tamanho e timeouts configuráveis
  • Suporte a transações (BEGIN/COMMIT/ROLLBACK)
  • Análise de plano de execução de consultas (EXPLAIN)
  • Comparação de esquemas entre conexões com geração de scripts de migração
  • Modo somente leitura com SELECT-only imposto no execute_query
  • Lista de permissão de conexões para restringir quais bancos de dados são acessíveis
  • Filtro de ferramentas para desabilitar operações específicas
  • Validação de consultas para bloquear operações perigosas (DROP DATABASE, TRUNCATE, DELETE/UPDATE sem WHERE)
  • Exportação de dados para CSV/JSON
  • Encerramento gracioso com limpeza do pool de conexões

Requisitos

  • Node.js 18+
  • Um cliente de banco local (compatível com DBeaver) com pelo menos uma conexão configurada

Instalação

npm install -g omnisql-mcp

Configuração

Claude Desktop

Adicione ao ~/Library/Application Support/Claude/claude_desktop_config.json (macOS):

{
  "mcpServers": {
    "omnisql": {
      "command": "omnisql-mcp"
    }
  }
}

Claude Code

Adicione ao ~/.claude/settings.json:

{
  "mcpServers": {
    "omnisql": {
      "command": "omnisql-mcp"
    }
  }
}

Cursor

Adicione em Cursor Settings > MCP Servers:

{
  "mcpServers": {
    "omnisql": {
      "command": "omnisql-mcp"
    }
  }
}

Variáveis de Ambiente

VariávelDescriçãoPadrão
OMNISQL_CLI_PATHCaminho para a CLI do cliente de banco externo (usado no fallback para drivers sem suporte)Não definido
OMNISQL_WORKSPACECaminho para o diretório do workspace do cliente de banco localPadrão do SO
OMNISQL_TIMEOUTTimeout de consulta (ms)30000
OMNISQL_DEBUGHabilita logging de depuraçãofalse
OMNISQL_READ_ONLYDesabilita todas as operações de gravaçãofalse
OMNISQL_ALLOWED_CONNECTIONSLista de permissão de IDs ou nomes de conexão separados por vírgulaTodas
OMNISQL_DISABLED_TOOLSFerramentas a desabilitar, separadas por vírgulaNenhuma
OMNISQL_POOL_MINConexões mínimas por pool2
OMNISQL_POOL_MAXConexões máximas por pool10
OMNISQL_POOL_IDLE_TIMEOUTTimeout de conexão ociosa (ms)30000
OMNISQL_POOL_ACQUIRE_TIMEOUTTimeout de aquisição de conexão (ms)10000

Modo Somente Leitura

Bloqueia todas as operações de gravação. A ferramenta execute_query permite apenas instruções SELECT, EXPLAIN, SHOW e DESCRIBE. As ferramentas de transação ficam totalmente desabilitadas.

{
  "mcpServers": {
    "omnisql": {
      "command": "omnisql-mcp",
      "env": {
        "OMNISQL_READ_ONLY": "true"
      }
    }
  }
}

Lista de Permissão de Conexões

Restringe quais conexões do workspace ficam visíveis. Aceita IDs de conexão ou nomes de exibição, separados por vírgula:

{
  "mcpServers": {
    "omnisql": {
      "command": "omnisql-mcp",
      "env": {
        "OMNISQL_ALLOWED_CONNECTIONS": "dev-postgres,staging-mysql"
      }
    }
  }
}

Desabilitar Ferramentas Específicas

{
  "mcpServers": {
    "omnisql": {
      "command": "omnisql-mcp",
      "env": {
        "OMNISQL_DISABLED_TOOLS": "drop_table,alter_table,write_query"
      }
    }
  }
}

Ferramentas Disponíveis

Gerenciamento de Conexões

  • list_connections - Lista todas as conexões de banco de dados
  • get_connection_info - Obtém detalhes da conexão
  • test_connection - Testa a conectividade

Operações de Dados

  • execute_query - Executa consultas somente leitura (apenas SELECT, EXPLAIN, SHOW, DESCRIBE)
  • write_query - Executa INSERT/UPDATE/DELETE
  • export_data - Exporta para CSV/JSON

Gerenciamento de Esquema

  • list_tables - Lista tabelas e views
  • get_table_schema - Obtém a estrutura da tabela
  • create_table - Cria tabelas
  • alter_table - Modifica tabelas
  • drop_table - Remove tabelas (requer confirmação)

Transações

  • begin_transaction - Inicia uma nova transação
  • execute_in_transaction - Executa consulta dentro de uma transação
  • commit_transaction - Confirma uma transação
  • rollback_transaction - Reverte uma transação

Análise de Consultas

  • explain_query - Analisa o plano de execução da consulta
  • compare_schemas - Compara esquemas entre duas conexões
  • get_pool_stats - Obtém estatísticas do pool de conexões

Outros

  • get_database_stats - Estatísticas do banco de dados
  • append_insight - Armazena notas de análise
  • list_insights - Recupera notas armazenadas

Segurança

  • Imposição de somente leitura: execute_query aceita apenas instruções somente leitura (SELECT, EXPLAIN, SHOW, DESCRIBE, PRAGMA). Operações de gravação devem usar write_query.
  • Validação de consultas: Bloqueia DROP DATABASE, DROP SCHEMA, TRUNCATE, DELETE/UPDATE sem WHERE, GRANT, REVOKE e instruções de gerenciamento de usuário.
  • Lista de permissão de conexões: Restringe quais conexões são expostas via OMNISQL_ALLOWED_CONNECTIONS.
  • Filtro de ferramentas: Desabilita qualquer ferramenta via OMNISQL_DISABLED_TOOLS.
  • Sanitização de entrada: IDs de conexão e identificadores SQL são sanitizados para prevenir injeção.
  • Recomendação: Para uso em produção, utilize também um usuário somente leitura no nível do banco para defesa em profundidade.

Suporte a Formatos de Workspace

Suporta ambos os formatos de configuração gravados por clientes de banco compatíveis com DBeaver:

  • Legado: config XML em .metadata/.plugins/org.jkiss.dbeaver.core/
  • Moderno: config JSON em General/.dbeaver/

As credenciais são descriptografadas automaticamente do credentials-config.json do workspace.

Desenvolvimento

git clone https://github.com/srthkdev/omnisql-mcp.git
cd omnisql-mcp
npm install
npm run build
npm test
npm run lint

Licença

MIT