GuidesTechnology

How to use Codex with Fabapp AI

Figures from September 17, 2026

Connecting Codex to your account

Codex declares MCP servers in its own configuration file, in TOML rather than the JSON most clients use:

[mcp_servers.fabapp]
command = "npx"
args = ["-y", "@fabappai/cli", "mcp"]

The command is the same as in any other client. Only the notation changes. If your version of Codex arranges this differently, its documentation is what counts: the part that is ours, and does not change, is npx -y @fabappai/cli mcp.

What you need

Node 20 or newer, a Fabapp account on the Builder plan or above, and a single login:

npx @fabappai/cli login

The credential goes into the system keychain. It is never displayed, and it is revoked from one place, in the panel.

The loop

npx @fabappai/cli create "My store"
npx @fabappai/cli dev

dev assembles the app on your machine on the same template the platform publishes with, installs the dependencies and starts the local server. With it running, ask for what you would do by hand: read the definition, create the entities, write the screens. Then:

npx @fabappai/cli deploy

It uploads what you changed and publishes, in that order. Publishing before uploading would publish what is on the server, and your work would be left behind.

What Codex's sandbox changes

This is the difference that shows up most in practice. Codex runs commands in a controlled environment, which is good, and it means two things have to be within its reach: Node, for the MCP server to start, and the network, for that server to talk to your account.

When the server does not appear, it is almost always one of those two. Running npx -y @fabappai/cli mcp by hand in the same environment tells you which immediately: either the command does not exist, or it starts and waits, which is exactly what a server speaking over stdio should do.

What to ask for

"Read the platform documentation before writing the schema." The field types are a closed list and anything else is refused; the access rules are the only thing between an app's data and the public.

"Read the current definition before changing it." Without the schema at hand, a wrong model id answers 404 and an invented field answers 422.

"Schema first, screens after." The SDK is generated against the data model.

And one more, specific to backend work: "write it as a backend function, not in the browser." When the task needs something the client must not do, such as calling a third-party API or writing a field the user could not edit, that belongs in a function that runs isolated on the server and is called by the app.

Frequently asked questions

Does Codex work the same as Claude Code with Fabapp?
The tools are identical, because what exists is decided by the credential's permission, not by the client. What changes is the configuration notation, TOML here, and the controlled environment Codex runs commands in.
The server does not show up in Codex. Where do I start?
Run `npx -y @fabappai/cli mcp` by hand in the same environment. If it starts and waits, that is correct and the problem is the configuration. If the command is not found, Node is missing from that environment.
Can I use Codex and the Studio on the same project?
Yes. `deploy` lays your changes over what is on the server rather than replacing it, precisely because the platform's AI may have edited the app meanwhile.
Start building for free
Read next
Command line and MCP in app builders: what changes when the project leaves the browserBest AI app builders in 2026