MCP DB Wizard

oficial

Um 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?

  • Buscar uma linha pela chave primária — Solicite uma entrada específica do log de atividades e receba-a como um objeto JSON via synuser_activity_log_get_by_pk.
  • Inserir no log de atividades — Peça ao assistente para adicionar um novo registro de log, com operações de atualização e exclusão disponíveis na mesma tabela selecionada via synuser_activity_log_insert.
  • Chamar uma rotina PL/SQL — Invoque synuser_js_admin_getadmintoolinfo para executar um procedimento de negócio e receber registros, coleções e todos os parâmetros OUT.
  • Obter o próximo valor de sequência — Solicite o próximo ID de synuser_job_id_nextval sem expor outros dados da sequência.
  • Executar apenas SQL pré-aprovado — Execute uma instrução SQL testada e tipada que você selecionou, com argumentos como valores de ligação e sem composição 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_pk tabela — uma linha por chave primária, como um objeto JSON
  • synuser_activity_log_insert tabela — com _update e _delete, a partir da mesma seleção
  • synuser_js_admin_getadmintoolinfo rotina PL/SQL — registros, coleções e todo parâmetro OUT
  • synuser_job_id_nextval sequê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 com uma ferramenta chamada check_flight_availability pode verificar disponibilidade em um voo, porque é só isso que o código à sua frente faz.

A 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 consegue alcançá-lo.

O que muda em um servidor MCP sem ferramenta run-sql

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. O MCPDBWizard chama essas rotinas como elas são — registros, coleções, cursores de referência e todo parâmetro OUT retornado — em vez de pedir a um modelo de linguagem para reinventar as regras em um SELECT.

O que um agente vê quando seu PL/SQL vira ferramentas

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 em log, limitar por taxa, revisar depois e explicar a um auditor.

Ferramentas MCP curadas e um prompt SQL, lado a lado

Dois públicos, dois registros

O proxy registra quem chamou qual ferramenta e se foi permitido; cada servidor registra o que a ferramenta fez e como terminou. Nomes de argumentos sempre; valores apenas se você ativou isso, porque um modelo os escolheu.

Para onde os logs de um servidor MCP devem ir

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 — é ignorada por completo, e o log diz o quê e por quê.

Contas, tokens e uma matriz de concessões

Muitas contas, muitas configurações, um tick 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.

Controle de acesso baseado em papéis para um servidor MCP

Pensando em comparar com as rotas do próprio Oracle? Leia uma alternativa ao servidor MCP da Oracle, alternativas ao servidor MCP do SQLcl quando SQL ad-hoc é descartado, ou comece pela pergunta que a maioria das pessoas realmente faz: posso deixar um agente de IA consultar meu banco de produção?

Design time: the Design pages read Oracle's data dictionary, the selection is saved as a config file with no password, and Java is generated and compiled for the selected objects only. Run time: an MCP client calls the proxy on port 8080 with a bearer token; the proxy checks the token, the grant and the rate limit, then forwards to the generated MCP server, which binds the arguments and calls Oracle. The proxy and the server both write to the audit trail.

A configuração decide o que é gerado; o proxy decide quem pode chamar.

  1. 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 instruçõ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. The Design Procedures tab listing PL/SQL packages and procedures with tick boxes 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. The Design SQL Statements tab, editing a named .sql file with typed bind parameters Depois seu próprio SQL — instruçõ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. The Design Tables tab, with each table ticked and separate MCP read, create, update and delete boxes 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.
  2. 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.32
    
  3. 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 a emissão do token e a concessão da configuração.