Qué demuestra
- Qué expone de verdad un servidor MCP. Un inspector propio lista el catálogo de herramientas hablando el protocolo directamente, sin necesidad de ningún cliente de IA. Sirve para cualquier servidor MCP, no solo el de Oracle.
- Que el nivel de restricción no hace lo que parece. El catálogo es casi idéntico en el nivel más cerrado y en uno permisivo: lo que cambia es qué acepta ejecutar una herramienta por dentro, algo que no se ve en la lista.
- Cuál es el control que sí acota el daño. Se crea un usuario de base de datos que solo puede leer, y se comprueba en vivo que el borrado se rechaza. No lo impidió el modelo ni el nivel de restricción: lo impidió un permiso.
- Agent Skills: la misma pregunta antes y después de instalar la skill. Lo que cambia no es que la respuesta sea más larga, es que cita una fuente.
Arquitectura
Agent Skills (conocimiento) Servidor MCP (herramientas)
│ │
▼ ▼
┌──────────────────────────────────────────────────────┐
│ cliente de IA (el agente) │
└──────────────────────────────────────────────────────┘
│
conexión guardada, con un usuario concreto
│
▼
Autonomous Database
(mTLS obligatorio · sin red que mantener)
nivel de restricción ─────► limita a la herramienta
permisos del usuario ─────► limitan el daño ← este es el que cuenta
Desplegar
También se puede ejecutar con Terraform desde un equipo: ver la carpeta del módulo.
Paso a paso
Resumen. El detalle, con todos los comandos y la tabla de diagnóstico, está en el manual del módulo.
Verificar el equipo primero
Este módulo se apoya sobre todo en herramientas locales: SQLcl 25.2 o posterior, Java 17 o 21, Python. Si falta algo de eso, no lo arregla ningún despliegue.
Desplegar la base
Una Autonomous Database, sin VCN ni bastión. Con el nivel siempre gratuito no consume crédito. Entre 3 y 10 minutos.
Preparar la conexión
Se descarga el wallet y se guarda la conexión. El servidor MCP no recibe credenciales: usa conexiones que una persona guardó antes. El agente nunca ve la contraseña.
Cargar el esquema de ejemplo
Cuatro tablas al estilo de un sistema heredado, con cuatro problemas puestos a propósito que no se anuncian.
Inspeccionar el servidor MCP
El catálogo completo, en dos niveles de restricción, para compararlos. Aquí aparece el hallazgo del módulo.
Crear el usuario mínimo
Un usuario que solo lee cuatro tablas. El script comprueba en vivo que puede consultar y no puede borrar.
Conectar el cliente de IA y preguntarle
Termina pidiéndole que borre datos. La base lo rechaza, y el agente lo reporta.
Hacerlo a mano, en la consola
Este módulo también está escrito pantalla por pantalla, para construirlo desde la consola de Oracle Cloud sin Terraform. Sirve para entender qué hay debajo del código, y para que alguien que nunca ha tocado OCI pueda reproducirlo solo.
Qué se simplificó, y por qué
Un laboratorio que no dice en qué se apartó de una arquitectura real enseña mal. Esto es lo que este módulo simplifica a propósito:
| La base tiene endpoint público | Protegido con mTLS obligatorio: hace falta el wallet, no basta la contraseña. Añadir una red privada habría sumado veinte minutos de despliegue sin aportar nada al argumento del módulo, que no trata de red. |
| Se usa el servidor MCP local, no uno gestionado | Es el correcto para un taller: se ve todo, se rompe sin consecuencias y no hay que pedirle permiso a nadie. En una organización, un servicio gestionado da identidad central y registro de auditoría. |
| El esquema es pequeño a propósito | Unas 16 mil filas. El volumen es el tema del módulo 4; aquí lo que importa es que el esquema tenga rarezas que un agente pueda encontrar — o inventarse. |
Cómo se relaciona con los demás
Es autocontenido: no necesita ningún otro módulo. Aun así conversa bien con el módulo 3, que construye a mano un agente con catálogo cerrado para enseñar el principio; aquí se ve el mismo principio ya convertido en producto, y qué queda sin resolver cuando alguien te lo da hecho.