/ Diretório / Playground / DBHub
● Oficial bytebase 🔑 Requer sua chave

DBHub

por bytebase · bytebase/dbhub

Um MCP, muitos bancos de dados — Postgres, MySQL, SQL Server, SQLite, Oracle — em uma interface de query com padrão somente leitura.

DBHub do Bytebase é um MCP sem dependências que se conecta a múltiplos bancos de dados relacionais através de um único binário npx @bytebase/dbhub. Passe a DSN para seu flavor de BD e obtenha navegação de schema, amostragem de tabelas e execução de SQL. Executa em modo somente leitura por padrão, tornando seguro para sessões exploratórias em produção.

Por que usar

Principais recursos

Demo ao vivo

Como fica na prática

dbhub.replay ▶ pronto
0/0

Instalar

Escolha seu cliente

~/Library/Application Support/Claude/claude_desktop_config.json  · Windows: %APPDATA%\Claude\claude_desktop_config.json
{
  "mcpServers": {
    "dbhub": {
      "command": "npx",
      "args": [
        "-y",
        "@bytebase/dbhub"
      ]
    }
  }
}

Abra Claude Desktop → Settings → Developer → Edit Config. Reinicie após salvar.

~/.cursor/mcp.json · .cursor/mcp.json
{
  "mcpServers": {
    "dbhub": {
      "command": "npx",
      "args": [
        "-y",
        "@bytebase/dbhub"
      ]
    }
  }
}

Cursor usa o mesmo esquema mcpServers que o Claude Desktop. Config de projeto vence a global.

VS Code → Cline → MCP Servers → Edit
{
  "mcpServers": {
    "dbhub": {
      "command": "npx",
      "args": [
        "-y",
        "@bytebase/dbhub"
      ]
    }
  }
}

Clique no ícone MCP Servers na barra lateral do Cline, depois "Edit Configuration".

~/.codeium/windsurf/mcp_config.json
{
  "mcpServers": {
    "dbhub": {
      "command": "npx",
      "args": [
        "-y",
        "@bytebase/dbhub"
      ]
    }
  }
}

Mesmo formato do Claude Desktop. Reinicie o Windsurf para aplicar.

~/.continue/config.json
{
  "mcpServers": [
    {
      "name": "dbhub",
      "command": "npx",
      "args": [
        "-y",
        "@bytebase/dbhub"
      ]
    }
  ]
}

O Continue usa um array de objetos de servidor em vez de um map.

~/.config/zed/settings.json
{
  "context_servers": {
    "dbhub": {
      "command": {
        "path": "npx",
        "args": [
          "-y",
          "@bytebase/dbhub"
        ]
      }
    }
  }
}

Adicione em context_servers. Zed recarrega automaticamente ao salvar.

claude mcp add dbhub -- npx -y @bytebase/dbhub

Uma linha só. Verifique com claude mcp list. Remova com claude mcp remove.

Casos de uso

Usos do mundo real: DBHub

Consultar 3 bancos de dados diferentes em uma sessão

👤 Engenheiros cuja stack tem >1 BD relacional ⏱ ~20 min intermediate

Quando usar: Sua stack tem Postgres para dados primários, MySQL para um serviço legado e SQL Server para uma cópia de reporting — e você quer um assistente IA para todos.

Pré-requisitos
  • DSN para cada BD com credenciais somente leitura — formatos postgres://, mysql://, sqlserver://, sqlite://, oracle://
Fluxo
  1. Configurar múltiplas DSNs
    Mostre-me qual BD estou apontando no momento. Se necessário, mude para a DSN MySQL.✓ Copiado
    → Indicador claro de BD ativo
  2. Inspecionar schema
    Liste as tabelas no BD atual com contagens aproximadas de linhas.✓ Copiado
    → Catálogo de tabelas
  3. Referência cruzada entre BDs
    Consulte Postgres para emails de usuários, depois consulte MySQL legacy_users para os mesmos emails, diga-me quem está em um mas não no outro.✓ Copiado
    → Relatório de reconciliação

Resultado: Um fluxo de trabalho único em BDs heterogêneos sem manipular diferentes servidores MCP.

Armadilhas
  • Diferenças de dialeto SQL confundem Claude (p.ex. LIMIT vs TOP) — Diga a Claude explicitamente qual flavor de BD a query atual alvo, ou divida em turnos específicos do BD
Combine com: filesystem

Analisar um arquivo SQLite que alguém lhe enviou

👤 Engenheiros / analistas que recebem um arquivo .db opaco ⏱ ~10 min beginner

Quando usar: Um cliente enviou um dump sqlite e quer que seja analisado.

Fluxo
  1. Apontar DBHub para o arquivo
    Use DSN sqlite:///path/to/data.db. Liste tabelas + contagens de linhas.✓ Copiado
    → Inventário de tabelas
  2. Amostrar cada uma
    Para cada tabela não trivial, mostre 5 linhas de amostra e infira o propósito.✓ Copiado
    → Resumo por tabela
  3. Responder a pergunta do cliente
    Cliente pergunta: <question>. Escreva SQL, execute, retorne a resposta.✓ Copiado
    → Query + resultado

Resultado: Exploração rápida de um arquivo sqlite desconhecido sem extraí-lo para outra ferramenta.

Armadilhas
  • Tabelas sqlite grandes não têm índices — varreduras completas podem bloquear o arquivo — Abra somente leitura; evite agregações em >1M linhas em uma única query
Combine com: filesystem

Executar queries de reporting em uma read-replica com segurança

👤 BI / analytics ⏱ ~15 min beginner

Quando usar: Você tem uma replica para analytics e quer relatórios ad-hoc orientados por IA sem expor o primário.

Pré-requisitos
  • DSN somente leitura para a replica — Credenciais apenas de replica; statement_timeout aplicado em DSN
Fluxo
  1. Verificar se é a replica
    Confirme que a conexão atual é somente leitura e aponta para o host da replica.✓ Copiado
    → String de host + flag somente leitura verificada
  2. Executar o relatório
    [cole pergunta comercial]. Traduza para SQL, execute, retorne resultados.✓ Copiado
    → Conjunto de resultados
  3. Persistir para reutilização
    Salve este SQL em /reports/<name>.sql com um comentário explicando a pergunta.✓ Copiado
    → Arquivo SQL salvo

Resultado: BI ad-hoc sem risco ao primário de produção.

Armadilhas
  • Queries pesadas deixam a replica lenta e criam defasagem de replicação — Defina statement_timeout e execute queries grandes fora do horário de pico
Combine com: filesystem · antv-chart

Auditar stored procedures do SQL Server para uma migração

👤 Equipes migrando do SQL Server ⏱ ~30 min advanced

Quando usar: Você precisa de uma lista de todos os stored procedures, suas linhas de código e data da última modificação.

Fluxo
  1. Listar procs
    Consulte sys.procedures + sys.sql_modules para listar todos os procs com nome, schema, linhas e data da última modificação.✓ Copiado
    → Inventário de procs
  2. Classificar complexidade
    Agrupe procs por contagem de linhas: trivial (<50), médio (50-300), complexo (>300). Conte cada grupo.✓ Copiado
    → Histograma de complexidade
  3. Descobrir recursos específicos do MSSQL
    Para procs complexos, sinalize o uso de construtos específicos do MSSQL (CROSS APPLY, recursão CTE, TOP, GETDATE) — estes são os itens de migração difíceis.✓ Copiado
    → Lista de riscos de migração

Resultado: Um plano de migração de stored procedures fundamentado em contagens reais.

Armadilhas
  • Alguns procs contêm SQL dinâmico que é difícil de classificar — Sinalize qualquer proc com EXEC sp_executesql para revisão manual
Combine com: filesystem

Combinações

Combine com outros MCPs para 10× de alavancagem

dbhub + antv-chart

Executar SQL e depois fazer o gráfico do resultado diretamente

Consulte receita semanal da replica Postgres via DBHub e depois renderize como um gráfico de linha AntV.✓ Copiado
dbhub + filesystem

Salvar queries + resultados para reprodutibilidade

Execute a query KPI semanal, salve SQL em /sql/weekly.sql e resultado CSV em /data/weekly-<date>.csv.✓ Copiado
dbhub + notion

Postar um relatório apoiado em SQL para Notion

Execute a query de top-customers, crie uma página Notion com o resultado como uma tabela.✓ Copiado

Ferramentas

O que este MCP expõe

FerramentaEntradasQuando chamarCusto
list_databases Primeiro passo de exploração free
list_tables database? Catalogar antes das queries free
describe_table table, schema? Inspecionar schema antes de fazer queries free
execute_sql sql, params? Ler ou escrever SQL (escrita exige flag) depends on query
execute_read_sql sql, params? Execução explicitamente somente leitura depends

Custo e limites

O que custa rodar

Cota de API
Limitado pelos seus limites de conexão do BD
Tokens por chamada
Depende do tamanho do resultado; limite com LIMIT
Monetário
Grátis — custos são apenas do seu hosting de BD
Dica
Defina um statement_timeout na DSN; queries escritas por IA podem ser entusiastas sobre varreduras completas.

Segurança

Permissões, segredos, alcance

Escopos mínimos: SELECT nas tabelas alvo
Armazenamento de credenciais: DSN em env (DSN ou env var por flavor)
Saída de dados: Direto para seu BD; sem proxy de terceiros
Nunca conceda: CREATE/DROP/ALTER no papel da conexão a menos que necessário para a sessão

Solução de problemas

Erros comuns e correções

Autenticação falhou / acesso negado

Credenciais DSN erradas ou sem SELECT. Reverifique o formato DSN para cada flavor.

Verificar: Connect with the DB's native client using the same DSN
Recurso SQL não suportado / erro de sintaxe

Incompatibilidade de flavor — diga a Claude qual dialeto de BD está ativo, ou reverifique o prefixo DSN.

Pool de conexão esgotado

Reduza concorrência ou aumente o tamanho do pool; queries de longa duração geralmente são a causa real.

Escritas rejeitadas (somente leitura)

DBHub está no padrão somente leitura. Reinicie com --readonly=false para esta sessão.

Alternativas

DBHub vs. outros

AlternativaQuando usarTroca
Postgres MCPVocê usa apenas Postgres; recursos mais profundos específicos do PostgresSabor único
MongoDB MCPVocê precisa de Mongo junto com relacionalModelo de dados diferente
Supabase MCPVocê está no Supabase e quer gerenciamento de projeto+BDVinculado ao Supabase

Mais

Recursos

📖 Leia o README oficial no GitHub

🐙 Ver issues abertas

🔍 Ver todos os 400+ servidores MCP e Skills