MCP DB Wizard

oficial

Un servidor MCP para Oracle que no te hará perder el trabajo. El servidor MCP no expone un prompt de SQL y no puede decirte cómo iniciar sesión en Oracle. Solo los objetos seleccionados y las sentencias SQL son utilizables.

¿Qué puedes hacer con DB Wizard MCP?

  • Obtener una fila por clave primaria — Solicita una entrada específica del registro de actividad y recíbela como objeto JSON mediante synuser_activity_log_get_by_pk.
  • Insertar en el registro de actividad — Haz que el asistente agregue un nuevo registro, con operaciones de actualización y eliminación disponibles desde la misma tabla curada mediante synuser_activity_log_insert.
  • Llamar a una rutina PL/SQL — Invoca synuser_js_admin_getadmintoolinfo para ejecutar un procedimiento de negocio y recibir registros, colecciones y todos los parámetros OUT.
  • Obtener el siguiente valor de secuencia — Solicita el siguiente ID de synuser_job_id_nextval sin exponer otros datos de la secuencia.
  • Ejecutar solo SQL preaprobado — Ejecuta una declaración SQL tipada y probada que hayas seleccionado, con argumentos como valores de enlace y sin composición de consultas ad hoc.

Documentación

Un servidor MCP para Oracle que no te hará que te despidan

La configuración es todo el modelo de seguridad

Accesible por el agente

  • synuser_activity_log_get_by_pk tabla — una fila por clave primaria, como objeto JSON
  • synuser_activity_log_insert tabla — con _update y _delete, desde la misma selección
  • synuser_js_admin_getadmintoolinfo rutina PL/SQL — registros, colecciones y cada parámetro OUT
  • synuser_job_id_nextval secuencia — el siguiente valor, y nada más

No accesible, por construcción

  • Texto SQL del llamador — los argumentos son valores de enlace
  • DDL — create, alter, drop
  • Cualquier objeto que no hayas seleccionado
  • Cualquier esquema que la configuración no nombre
  • La contraseña de Oracle — vive en el entorno

Un agente que puede escribir SQL puede escribir DROP TABLE. Un agente que tiene una herramienta llamada check_flight_availability puede consultar disponibilidad en un vuelo, porque eso es todo lo que hace el código que tiene delante.

La curación ocurre antes de que exista el código

El privilegio mínimo es fácil de afirmar y difícil de verificar. Aquí la configuración decide qué se emite: un objeto que nadie seleccionó no tiene herramienta, ni método, ni clase. Está ausente del binario en lugar de estar protegido por un proceso en ejecución, por lo que ningún prompt puede alcanzarlo.

Lo que cambia un servidor MCP sin herramienta run-sql

Tus reglas de negocio ya están en PL/SQL

Décadas de validación, lógica referencial y comportamiento de auditoría viven dentro de paquetes. MCPDBWizard llama a esas rutinas tal como son — registros, colecciones, cursores de referencia y cada parámetro OUT devuelto — en lugar de pedirle a un modelo de lenguaje que reinvente las reglas en un SELECT.

Lo que ve un agente cuando tu PL/SQL se convierte en herramientas

Cada llamada es una herramienta nombrada, no una consulta

Las solicitudes llegan como synuser_activity_log_get_by_pk(entry_id) contra un esquema estricto — un argumento mal escrito se rechaza antes de tocar la base de datos. Mucho más fácil de registrar, limitar por tasa, revisar después y explicar a un auditor.

Herramientas MCP curadas y un prompt SQL, lado a lado

Dos audiencias, dos registros

El proxy escribe quién llamó a qué herramienta y si se permitió; cada servidor escribe qué hizo la herramienta y cómo terminó. Los nombres de los argumentos siempre; los valores solo si lo activaste, porque un modelo los eligió.

Dónde deberían ir los registros de un servidor MCP

Oracle 12c hasta 26ai

Incluyendo los tipos añadidos desde entonces: JSON nativo, BOOLEAN y VECTOR, y CRUD de documentos sobre vistas de dualidad JSON-relacional. Cualquier cosa que no pueda cruzar JSON honestamente — SDO_GEOMETRY, BFILE — se omite por completo, y el registro dice cuáles y por qué.

Cuentas, tokens y una matriz de concesiones

Muchas cuentas, muchas configuraciones, un tick por concesión. Dos equipos que necesitan herramientas diferentes sobre el mismo esquema son dos configuraciones, no una configuración y una regla — lo que mantiene intacta la garantía del primer panel.

Acceso basado en roles para un servidor MCP

¿Comparándolo con las propias rutas de Oracle? Lee una alternativa al servidor MCP de Oracle, alternativas al servidor MCP de SQLcl cuando se descarta SQL ad-hoc, o empieza por la pregunta que la mayoría de la gente realmente hace: ¿puedo dejar que un agente de IA consulte mi base de datos de producción?

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.

La configuración decide qué se genera; el proxy decide quién puede llamarlo.

  1. 01

    Selecciona los objetos

    Conecta las páginas de Diseño a Oracle y marca los paquetes PL/SQL que estás dispuesto a exponer, más cualquier sentencia SQL que hayas escrito y probado tú mismo, más las tablas y secuencias que quieras accesibles directamente. Esa selección se guarda como un archivo de configuración — properties o JSON, versionable y sin contraseña. The Design Procedures tab listing PL/SQL packages and procedures with tick boxes PL/SQL primero, porque es el punto: marca los paquetes y procedimientos que estás dispuesto a exponer, y cada uno se convierte en una herramienta con sus parámetros tipados. The Design SQL Statements tab, editing a named .sql file with typed bind parameters Luego tu propio SQL — sentencias que escribiste y probaste, con parámetros de enlace tipados en línea. El agente ejecuta estas; no compone las suyas propias. The Design Tables tab, with each table ticked and separate MCP read, create, update and delete boxes Finalmente tablas, curadas por operación en lugar de por tabla — una recién seleccionada es de solo lectura, y create, update y delete son tuyos para marcar.
  2. 02

    Genera, compila, ejecuta

    La página de Runtime emite Java exactamente para esos objetos, lo compila y lo lanza como su propio servidor en loopback. Cualquier cosa que no seleccionaste no tiene herramienta, ni método, ni clase — está ausente del binario en lugar de simplemente rechazada.
    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

    Apunta tu cliente MCP al proxy

    Los agentes se conectan en el 8080, sobre Streamable HTTP, con un token emitido para su cuenta. El proxy es el único componente que sabe quién llama — verifica la cuenta, la concesión y el límite de tasa, y luego reenvía.
    {
      "mcpServers": {
        "payroll": {
          "url": "http://localhost:8080/mcp/alice/payroll",
          "headers": {
            "Authorization": "Bearer <id>.<secret>"
          }
        }
      }
    }
    

La guía de inicio rápido tiene todo el camino, incluyendo emitir el token y conceder la configuración.