$ cat mcp-genero-en-que-ayuda-y-en-que-no.md

Genero BDL

MCP de Genero: en qué ayuda y en qué no

29 Oct 2026 · 6 min de lectura

El problema: la IA se inventa Genero

Pide a un asistente de IA que escriba código Genero BDL y lo hará con seguridad, aunque a veces invente métodos que no existen, atributos de formulario con otro nombre o una sintaxis de hace tres versiones. Hay mucho menos código Genero público que Java o Python, y se nota.

Four Js ofrece un servidor MCP para eso. MCP (Model Context Protocol) es un estándar para conectar un asistente de IA con fuentes de información y herramientas externas. Conectado al MCP de Genero, el asistente puede consultar documentación verificada en lugar de tirar de memoria.

Qué ofrece

El servicio tiene dos capas principales:

  • Skills. Fichas temáticas escritas para un asistente de IA: diálogos, SQL, formularios, cadenas, manejo de errores, despliegue en GAS… Cada skill está dividida en secciones, para cargar solo la necesaria. El catálogo tiene 85 skills; el plan básico (Core) incluye 67 y otras 18 son del plan Core+, entre ellas Report Engine, frontcalls, diálogos dinámicos y múltiples, y estilos de presentación.
  • Búsqueda en los manuales. Búsqueda semántica sobre nueve manuales de Four Js: BDL, Genero Studio, Application Server, Browser Client, Desktop Client, Ghost Client, Report Writer, SSO y License Manager. Cada resultado indica de qué manual viene y lleva enlace a la página.

Además tiene guías de buenas prácticas (una de SQL, por ejemplo), un registro de paquetes reutilizables y una herramienta que genera el fichero de instrucciones para el asistente: Claude Code, Cursor, Copilot, Windsurf, Cline o Gemini.

Cómo se usa

El fichero de instrucciones que genera el propio servicio va en la raíz del proyecto y le marca al asistente unas reglas. Resumidas:

  1. Al empezar cada sesión, cargar un índice que relaciona temas con skills.
  2. Ante cualquier pregunta de Genero, consultar la skill y la sección que toca.
  3. Si ninguna skill lo cubre, buscar en los manuales.
  4. No responder nunca de memoria.

En la práctica, esas reglas son lo que más se nota. Un asistente que se salta la consulta vuelve a inventar.

En qué ayuda

  • Nombres y sintaxis. Métodos, atributos, opciones de compilación y códigos de error salen de material revisado, no de lo que el modelo recuerde.
  • Trampas conocidas. Hay una skill dedicada a los errores típicos (SQL, diálogos, cadenas, WHENEVER, módulos) que el asistente consulta antes de escribir ciertas instrucciones.
  • Los manuales a mano. Buscar en nueve manuales desde la conversación, con enlace a la página, ahorra mucho tiempo, sobre todo en los productos que se usan menos (GAS, GBC, Report Writer).

En qué no ayuda

No anticipa lo que no le preguntas. Al escribir las entradas de este blog aparecieron dos trampas que las skills no recogen:

  • La skill de base.Channel tiene un ejemplo de cliente TCP sin flush(). Funciona porque después lee con readLine(). Si en lugar de eso se sondea con dataAvailable(), el comando no llega a salir y el programa espera hasta el timeout. Es el caso del cliente SMTP.
  • La skill de TRY/CATCH explica bien lo básico, pero no dice que un TRY no ve los errores de dentro de las funciones que llama, como se cuenta en la entrada de TRY/CATCH.

En los dos casos la búsqueda en los manuales sí da con la respuesta: la página de flush() habla justo de sockets bidireccionales, y la de TRY/CATCH menciona WHENEVER ERROR RAISE para las funciones llamadas. Pero hubo que preguntar por el síntoma, y el síntoma solo apareció al ejecutar el código.

No compila ni ejecuta. El MCP da información, no prueba nada. El código que escribe el asistente hay que compilarlo con fglcomp -W all y ejecutarlo. En las entradas de este blog, varios fallos solo salieron al ejecutar: líneas que salían sin CR, un adjunto vacío, un BOOLEAN que se quedaba en NULL.

Está verificado contra una versión. Las skills y las guías indican Genero 6.00. Si trabajas con una versión anterior, compila en la tuya: lo que existe en 6.00 puede no existir, o comportarse distinto, en 5.x.

No conoce tu proyecto. Ni tu esquema de base de datos, ni tus librerías, ni tus convenciones. La guía de SQL recomienda, por ejemplo, consultas parametrizadas en el SQL dinámico. Es buena práctica en general, pero si tu proyecto tiene una razón para hacerlo de otra forma, el MCP no la sabe. Eso va en las instrucciones propias del proyecto, en la parte del fichero reservada para ello.

Tiene coste. Es un servicio de pago y el precio no está publicado: hay que consultarlo con el comercial de Four Js. El plan, además, decide qué skills tienes.

Conclusión

El MCP de Genero cambia bastante la calidad de lo que escribe un asistente de IA: menos inventos, más trampas conocidas y los manuales a un paso. No sustituye a compilar, ejecutar y mirar lo que de verdad hace el programa. Sirve para responder bien lo que se le pregunta; lo que nadie ha pensado preguntar sigue apareciendo al probar.

Fuentes

  • El propio servicio MCP de Four Js, consultado el 26-10-2026: catálogo de skills, guías de buenas prácticas, instrucciones para agentes, skills fourjs-error-handling y fourjs-file-io, y búsquedas en el manual BDL.
  • Manual Genero BDL: base.Channel.flush, TRY – CATCH block.
  • Model Context Protocol: https://modelcontextprotocol.io/

Qué está comprobado y qué no

Comprobado consultando el servicio el 26-10-2026:

  • Catálogo: 85 skills, 67 en el plan Core y 18 bloqueadas en Core+.
  • Manuales: los nueve de la búsqueda.
  • Instrucciones para agentes: la lista de asistentes con instrucciones disponibles y el contenido de las reglas.
  • Las dos skills citadas: su contenido.
  • La búsqueda en el manual BDL: encuentra las páginas de flush() y de TRY/CATCH al preguntar por el síntoma.

Los fallos que se citan están reproducidos en Genero 5.01.04, como se cuenta en sus entradas.

Sin comprobar: el precio, que no está publicado, y el resto de skills, que no se han revisado una por una. El catálogo y su contenido pueden cambiar; lo descrito es lo que había en esa fecha.

0 comentarios

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *