How to use Cline with Fabapp AI
Connecting Cline to your account
Cline is a VS Code extension and keeps MCP servers in a file of its own, which the extension's MCP panel opens for you to edit. The block is the usual one:
{ "mcpServers": { "fabapp": { "command": "npx", "args": ["-y", "@fabappai/cli", "mcp"] } } }
As soon as you save, the panel shows the server and the tools it offered.
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 is different about Cline
Cline separates planning from acting, and that separation fits work on Fabapp well. Use the planning mode for it to read: the platform documentation, the project definition, the screens that already exist. Only then switch to acting.
The reason is concrete. The two things that most often go wrong when an assistant touches a Fabapp project are inventing a field type and writing the wrong access rule. Both fail closed, with no loud error: the field is refused, and the rule locks everybody out of their own records. Reading before writing is what prevents both, and the planning mode is literally that.
It is also worth approving change by change the first few times, until you get a feel for what it does with the schema.
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.