pgconsole

Servidor MCP específico para Postgres com acesso governado

Documentação

[!NOTE] pgplex: The Postgres Toolchain for Humans and Agents - pgconsole · pgschema · pgtui · pgparser

Apresentado por Bytebase, plataforma open-source de governança de banco de dados.

pgconsole SQL editor

pgconsole é um editor PostgreSQL baseado na web. Um único binário, um único arquivo de configuração, sem necessidade de banco de dados. Conecte sua equipe ao PostgreSQL com controle de acesso e registro de auditoria integrados.

Star History Chart

Instalação

Visite https://docs.pgconsole.com/getting-started/quickstart

Pré-requisitos

  • Node.js 20+

npm

npm install -g @pgplex/pgconsole
pgconsole --config pgconsole.toml

npx

npx @pgplex/pgconsole --config pgconsole.toml

Docker

docker run -p 9876:9876 -v /path/to/pgconsole.toml:/etc/pgconsole.toml pgplex/pgconsole

Execute sem --config para iniciar no modo demo com um banco de dados de exemplo incluído.

Recursos

Editor SQL

Um workspace SQL completo para escrever, executar, editar e inspecionar PostgreSQL, com inteligência baseada em parser no editor.

  • Autocomplete — sugestões contextuais para tabelas, colunas, joins e CTEs
  • Formatação — formatação elegante ou colapso do SQL em uma linha
  • Detecção de erros — sublinhados vermelhos com dicas ao passar o mouse
  • Recolhimento de código — recolher SELECT, WITH e outros blocos
  • Ajuda de assinatura de função — dicas de parâmetros enquanto você digita
  • Grade de resultados e edição inline — resultados de consulta com rolagem virtual, edições em etapas, pré-visualizações de SQL geradas e avaliação opcional de risco por IA antes da execução
  • Navegador de schema — inspecione tabelas, views, materialized views, funções e procedures com metadados, índices, constraints, triggers e grants
Autocomplete
Staged changes preview
Schema browser

Assistente de IA

Gere, explique, corrija e reescreva SQL com um assistente de IA que entende o contexto do seu schema. Suporta provedores OpenAI, Anthropic e Google.

  • Texto para SQL — descreva uma consulta em linguagem natural e receba o SQL
  • Explicar SQL — obtenha explicações em linguagem simples para qualquer consulta
  • Corrigir SQL — correção de erros com IA a partir de linting inline
  • Reescrever SQL — otimize consultas para desempenho ou legibilidade
  • Avaliação de risco — analise alterações em etapas para riscos potenciais antes da execução
AI Text-to-SQL
AI risk assessment

Servidor MCP

Exponha suas conexões Postgres a agentes de IA externos (Claude, Cursor, IDEs, bots de CI) por meio do Model Context Protocol — sem fornecer credenciais brutas do banco de dados. Os agentes se conectam a um endpoint MCP remoto e herdam os mesmos controles de IAM, permissão e auditoria que os usuários humanos.

  • Remoto e autenticado por token — um endpoint HTTP Streamable em /mcp; cada agente autentica com Authorization: Bearer <token>
  • Dois tipos de agente — uma conta de serviço pura (autorizada pelas regras de IAM agent:<id>) ou um agente delegado que age em nome de um usuário, opcionalmente limitado a menos permissões ou conexões
  • Ferramentas moldadas por permissão — cada agente pode list_connections; ferramentas de catálogo (list_objects, describe_table) aparecem quando ele tem uma conexão acessível, e ferramentas de execução são desbloqueadas por concessão: explain_query (explain), query (read), write_data (write), run_ddl (ddl)
  • Mesma governança da interface — cada instrução passa pela detecção de permissão SQL por instrução, IAM com negação padrão e o log de auditoria
# A standalone agent, authorized via [[iam]] just like a user
[[agents]]
id = "ci-bot"
name = "CI Pipeline"
token = "generate-a-long-random-secret"   # openssl rand -hex 32

[[iam]]
connection = "staging"
permissions = ["read", "ddl"]
members = ["agent:ci-bot"]

Controle de Acesso ao Banco de Dados

IAM granular controla quem pode ler, escrever ou administrar cada conexão. As permissões são aplicadas na camada de aplicação — sem necessidade de roles de banco de dados.

  • Negação padrão — usuários não têm acesso a menos que uma regra conceda explicitamente
  • Escopo por conexão — permissões são concedidas por conexão, não globalmente
  • Permissões disjuntasread, write, ddl, admin, explain, execute, export são independentes
Permission denied
Permission badge

Log de Auditoria

Cada consulta e login é registrado como JSON estruturado no stdout. Filtre e encaminhe para sua infraestrutura de logs.

{
  "type": "audit",
  "ts": "2024-01-15T10:32:15.456Z",
  "action": "sql.execute",
  "actor": "alice@example.com",
  "connection": "prod-db",
  "sql": "SELECT * FROM users WHERE active = true",
  "duration_ms": 45,
  "row_count": 150
}

Configuração em Arquivo Único

Tudo fica em pgconsole.toml — conexões, usuários, grupos, regras de acesso, provedores de IA. Sem necessidade de banco de dados.

[[connections]]
id = "production"
name = "Production"
host = "db.example.com"
port = 5432
database = "myapp"
username = "readonly"
password = "..."

[[iam]]
connection = "production"
permissions = ["read", "explain", "export"]
members = ["*"]

[[iam]]
connection = "production"
permissions = ["*"]
members = ["group:dba"]

[[ai.providers]]
id = "claude"
vendor = "anthropic"
model = "claude-sonnet-4-20250514"
api_key = "sk-ant-..."

Obtendo Ajuda

Desenvolvimento

[!NOTE] Para contribuidores externos: Se você quiser solicitar um recurso, crie uma issue no GitHub para discutir primeiro em vez de criar um PR diretamente.

git clone https://github.com/pgplex/pgconsole.git
cd pgconsole
pnpm install
pnpm dev        # Start dev server (frontend + backend)
pnpm build      # Production build
pnpm test       # Run all tests

Patrocinador

Bytebase - plataforma open source e baseada na web de DevSecOps para banco de dados.