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?

  • Llamar rutinas PL/SQL curadas — Pídele al asistente que invoque un procedimiento de paquete verificado como synuser_js_admin_getadmintoolinfo, que devuelve registros, colecciones y todos los parámetros OUT.
  • Obtener una fila de tabla individual — Solicita una fila por clave primaria mediante synuser_activity_log_get_by_pk y recíbela como un objeto JSON.
  • Insertar, actualizar o eliminar datos de tabla — Indica al asistente que modifique filas a través de la herramienta generada synuser_activity_log_insert (con sus variantes _update y _delete).
  • Obtener el siguiente valor de secuencia — Pide el siguiente número de synuser_job_id_nextval sin exponer otras operaciones de secuencia.
  • Ejecutar sentencias SQL preaprobadas — Haz que el asistente ejecute un archivo SQL nombrado y probado con parámetros de enlace tipados, sin componer nunca texto de consulta 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 de 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.

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 los paquetes. MCPDBWizard llama a esas rutinas tal como son — registros, colecciones, cursores ref y cada parámetro OUT devuelto — en lugar de pedirle a un modelo de lenguaje que reinvente las reglas en un SELECT.

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 en velocidad, revisar después y explicar a un auditor.

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ó. Nombres de argumentos siempre; valores solo si activaste eso, porque un modelo los eligió.

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ál 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.

  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 archivo de configuración — propiedades 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 para exactamente 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.4
    
  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 velocidad, 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.