MCP DB Wizard
oficialUm servidor MCP para Oracle que não vai te demitir. O servidor MCP não expõe um prompt de SQL e não pode te dizer como fazer login no Oracle. Apenas os objetos selecionados e as instruções SQL são utilizáveis.
O que você pode fazer com DB Wizard MCP?
- Chamar rotinas PL/SQL selecionadas — Peça ao assistente para invocar um procedimento de pacote aprovado, como
synuser_js_admin_getadmintoolinfo, retornando registros, coleções e todos os parâmetros OUT. - Buscar uma única linha de tabela — Solicite uma linha pela chave primária via
synuser_activity_log_get_by_pke receba-a como um objeto JSON. - Inserir, atualizar ou excluir dados de tabela — Instrua o assistente a modificar linhas por meio da ferramenta gerada
synuser_activity_log_insert(com suas variantes_updatee_delete). - Obter o próximo valor de sequência — Peça o próximo número de
synuser_job_id_nextvalsem expor outras operações de sequência. - Executar instruções SQL pré-aprovadas — Faça o assistente executar um arquivo SQL nomeado e testado, com parâmetros de ligação tipados, nunca compondo texto de consulta ad hoc.
Documentação
Um servidor MCP para Oracle que não vai te demitir
A configuração é todo o modelo de segurança
Acessível pelo agente
synuser_activity_log_get_by_pktabela — uma linha por chave primária, como um objeto JSONsynuser_activity_log_inserttabela — com _update e _delete, a partir da mesma seleçãosynuser_js_admin_getadmintoolinforotina PL/SQL — registros, coleções e cada parâmetro OUTsynuser_job_id_nextvalsequência — o próximo valor, e nada mais
Não acessível, por construção
- Texto SQL do chamador — argumentos são valores de bind
- DDL — create, alter, drop
- Qualquer objeto que você não selecionou
- Qualquer schema que a configuração não nomeia
- A senha do Oracle — ela vive no ambiente
Um agente que sabe escrever SQL pode escrever DROP TABLE. Um agente segurando uma ferramenta chamada check_flight_availability pode verificar disponibilidade em um voo, porque é só isso que o código à sua frente faz.
Curadoria acontece antes de o código existir
Privilégio mínimo é fácil de alegar e difícil de verificar. Aqui a configuração decide o que é emitido: um objeto que ninguém selecionou não tem ferramenta, método nem classe. Ele está ausente do binário em vez de protegido por um processo em execução, então nenhum prompt pode alcançá-lo.
Suas regras de negócio já estão em PL/SQL
Décadas de validação, lógica referencial e comportamento de auditoria vivem dentro de pacotes. MCPDBWizard chama essas rotinas como elas são — registros, coleções, cursores de referência e cada parâmetro OUT retornado — em vez de pedir a um modelo de linguagem para reinventar as regras em um SELECT.
Cada chamada é uma ferramenta nomeada, não uma consulta
Requisições chegam como synuser_activity_log_get_by_pk(entry_id) contra um schema estrito — um argumento com erro de digitação é rejeitado antes de o banco ser tocado. Muito mais fácil de registrar, limitar por taxa, revisar depois e explicar a um auditor.
Dois públicos, dois registros
O proxy escreve quem chamou qual ferramenta e se foi permitido; cada servidor escreve o que a ferramenta fez e como terminou. Nomes de argumentos sempre; valores apenas se você ativou isso, porque um modelo os escolheu.
Oracle 12c até 26ai
Incluindo os tipos adicionados desde então: JSON nativo, BOOLEAN e VECTOR, e CRUD de documentos sobre visões de dualidade JSON-relacional. Qualquer coisa que não possa cruzar JSON honestamente — SDO_GEOMETRY, BFILE — é pulada por inteiro, e o log diz qual e por quê.
Contas, tokens e uma matriz de concessões
Muitas contas, muitas configurações, um clique por concessão. Duas equipes precisando de ferramentas diferentes sobre o mesmo schema são duas configurações, não uma configuração e uma regra — o que mantém a garantia do primeiro painel intacta.
- 01
Selecione os objetos
Conecte as páginas de Design ao Oracle e marque os pacotes PL/SQL que você está disposto a expor, além de quaisquer declarações SQL que você mesmo escreveu e testou, mais as tabelas e sequências que você quer acessíveis diretamente. Essa seleção é salva como um arquivo de configuração — properties ou JSON, versionável e sem senha.
PL/SQL primeiro, porque é o ponto: marque os pacotes e procedimentos que você está disposto a expor, e cada um vira uma ferramenta com seus parâmetros tipados.
Depois seu próprio SQL — declarações que você escreveu e testou, com parâmetros de bind tipados inline. O agente executa essas; ele não compõe as próprias.
Por fim, tabelas, curadas por operação em vez de por tabela — uma recém-selecionada é somente leitura, e create, update e delete são seus para marcar. - 02
Gere, compile, execute
A página Runtime emite Java exatamente para esses objetos, compila e o lança como seu próprio servidor em loopback. Qualquer coisa que você não selecionou não tem ferramenta, método nem classe — está ausente do binário em vez de meramente recusada.docker run -d --name mcpdbwizard \ -p 8080:8080 \ -e MCPDBWIZARD_ORACLE_HOST=db.example.com \ -e MCPDBWIZARD_ORACLE_PORT=1521 \ -e MCPDBWIZARD_ORACLE_SID=/PDB1 \ -e MCPDBWIZARD_ORACLE_USER=appuser \ -e DB_PASS_FILE=/run/secrets/oracle \ -v mcpdbwizard-demo:/data \ ghcr.io/srmadscience/mcpdbwizard:2.0.4 - 03
Aponte seu cliente MCP para o proxy
Agentes conectam na porta 8080, via Streamable HTTP, com um token emitido para a conta deles. O proxy é o único componente que sabe quem está chamando — ele verifica a conta, a concessão e o limite de taxa, então encaminha.{ "mcpServers": { "payroll": { "url": "http://localhost:8080/mcp/alice/payroll", "headers": { "Authorization": "Bearer <id>.<secret>" } } } }
O quickstart tem o caminho completo, incluindo emitir o token e conceder a configuração.