Cómo usar Codex con Fabapp AI
Conectar Codex a tu cuenta
Codex declara servidores MCP en su propio archivo de configuración, en TOML y no en el JSON que usa la mayoría:
[mcp_servers.fabapp]
command = "npx"
args = ["-y", "@fabappai/cli", "mcp"]
El comando es el mismo que en cualquier otro cliente. Solo cambia la notación. Si tu versión de Codex lo organiza de
otra forma, manda su documentación: la parte que es nuestra, y no cambia, es npx -y @fabappai/cli mcp.
Lo que necesitas
Node 20 o más nuevo, una cuenta de Fabapp en el plan Builder o superior, y un único inicio de sesión:
npx @fabappai/cli login
La credencial va al llavero del sistema. Nunca se muestra y se revoca desde un solo lugar, en el panel.
El ciclo
npx @fabappai/cli create "Mi tienda"
npx @fabappai/cli dev
dev arma la app en tu máquina con la misma plantilla con la que la plataforma publica, instala las dependencias y
levanta el servidor local. Con eso corriendo, pide lo que harías a mano: leer la definición, crear las entidades,
escribir las pantallas. Después:
npx @fabappai/cli deploy
Sube lo que tú cambiaste y publica, en ese orden. Publicar antes de subir publicaría lo que está en el servidor, y tu trabajo quedaría atrás.
Qué cambia el entorno controlado de Codex
Esta es la diferencia que más aparece en la práctica. Codex ejecuta comandos en un entorno controlado, lo cual es bueno, y significa que dos cosas tienen que estar a su alcance: Node, para que el servidor MCP arranque, y la red, para que ese servidor hable con tu cuenta.
Cuando el servidor no aparece, casi siempre es una de las dos. Ejecutar npx -y @fabappai/cli mcp a mano en el mismo
entorno lo dice enseguida: o el comando no existe, o arranca y se queda esperando, que es exactamente lo que debe
hacer un servidor que habla por stdio.
Qué pedirle
"Lee la documentación de la plataforma antes de escribir el schema." Los tipos de campo son una lista cerrada y cualquier otro se rechaza; las reglas de acceso son lo único entre los datos de la app y el público.
"Lee la definición actual antes de cambiarla." Sin el schema a mano, un id de modelo equivocado responde 404 y un campo inventado responde 422.
"Schema primero, pantallas después." El SDK se genera sobre el modelo de datos.
Y una más, propia del trabajo de servidor: "escríbelo como backend function, no en el navegador." Cuando la tarea necesita algo que el cliente no debe hacer, como llamar a una API de terceros o escribir un campo que el usuario no podría editar, eso va en una función que corre aislada en el servidor y que la app llama.