Build with your AI agent, end to end.
Connect Claude Code, Cursor, Codex or any MCP client. Your agent builds, tests as every user, deploys and rolls back.
Add a waitlist page with a sign-up form. Only staff may read the list.
appbricx.code route /waitlist, table, access policy
check passed, applied to dev
appbricx.call_app joinWaitlist as a visitor
appbricx.screenshot /waitlist
appbricx.verify
every role against every table, page and action
appbricx.deploy
snapshot taken, live on your domain
Connect in a minute
Every client uses the same address and opens your browser to sign in. You pick the workspace and what the agent may do: read, apply or deploy.
Claude Code
One command in your terminal, then authorize in the browser window it opens.
claude mcp add --transport http appbricx https://appbricx.com/api/mcpClaude (claude.ai and Desktop)
Open Settings, Connectors, Add custom connector, paste
https://appbricx.com/api/mcpas the server URL and save. Then choose Connect.Cursor
Add to Cursor in one click, or put the server URL in
.cursor/mcp.jsonundermcpServers.appbricx.url.Codex
Add
[mcp_servers.appbricx]withurl = "https://appbricx.com/api/mcp"to~/.codex/config.toml, then runcodex mcp login appbricx.Any MCP client
VS Code, Windsurf, Gemini CLI and others take the same URL. Where a client can't open a browser, send a personal access token as a bearer token.
What your agent can do, end to end
53 MCP tools cover the whole life of an app, from the first file to a rollback in production. Your agent does not need a shell: Claude in the browser can build and ship too.
| Stage | What the agent does | Tools |
|---|---|---|
| Projects | Create, rename, archive, duplicate and delete projects, and add collaborators. | create_projectupdate_projectduplicate_projectdelete_projectcollaborators |
| Code, by part | Read and write routes, components, server actions, workflows, tables, access policies, queries, seeds, messages and config. Each write can check or apply in the same call. | code |
| Packages and assets | Add or remove npm packages (the lockfile is resolved on the server, with versions at least 7 days old) and upload images and files. | packagesassets |
| Apply and call the app | Apply to dev: migrations, seeds, build and serve. Then call the running app as a visitor, any role or the server, and read pages as text. | codecall_app |
| Workflows | Dry-run a workflow with a row or an event. It lists every write, email, message and HTTP call it would make, and sends nothing. | workflowsrun |
| Look and check | Take screenshots with clicks and typing, ask why a request was refused, and run verify: every role against every table, page and action. | screenshotexplainverify |
| Ship and undo | Read the deploy plan, deploy after verify passes on a copy of production, and roll back in one call, with the data if you want. | deploydeployssnapshots |
| Operate | Read logs, tail requests and errors, query with SQL, and manage secrets, domains and app users. | logstailsqlsecretsdomainsapp_users |
Fewer rounds per change
The slow part of building with an agent is the loop: deploy, click around, paste the error back. Here the agent sees what you would see, without you in the middle.
Checks name the file and line
A type error, a policy that doesn't parse or a template with a missing variable comes back as a file and line, before anything runs.
codeCall the app as any user
The agent sends real requests to the dev app as a visitor, a role or the server, and gets the answer that user would get.
call_appDry-run workflows
Every effect a workflow would have is listed: writes, emails, messages, HTTP calls. Nothing is sent.
workflowsSee the screen
Screenshots with clicks and typing show the page in each role, so layout problems surface without you.
screenshotKnow why it was refused
When a request is refused, the agent asks which policy or rule refused it, and fixes that one place.
explainVerify before release
Every role against every table, page and action in a real browser. Failures come back with evidence and the fix.
verify
Many steps in one call
run_script runs a short TypeScript script that calls the other tools as functions, several at a time. Reads run freely. A write such as deploy or sql runs only when the script lists it in allow, and dry_run refuses every write.
One call instead of a dozen round trips: the agent writes a page, opens it as two roles and compares the answers before it reports back. Each call inside the script goes through the same scopes and checks as a direct one, and the audit log records the script with every write.
// run_script: one call, many tools
await tools.code({ action: "create", kind: "route", name: "/waitlist", then: "apply" });
const [visitor, staff] = await Promise.all([
tools.call_app({ kind: "page", path: "/waitlist", as: { kind: "visitor" } }),
tools.call_app({ kind: "page", path: "/admin/waitlist", as: { kind: "user", role: "staff" } }),
]);
return { visitor: visitor.page.title, staff: staff.page.title };What stays yours
Your model
There is no built-in AI writing your app. Your agent runs on your own model subscription, with no credits and no markup.
Your code
What the agent writes is plain TypeScript, React and SQL that you can pull, edit and push. Build in code.
A record of every write
Versions with labels and diffs, and an audit log of every agent write, so you can see what changed and restore it.
Limits you set
When you authorize a connection you choose its workspace and what it may do: read, apply or deploy.
Where to go next
Connect your agent
Start free, connect Claude Code, Cursor, Codex or Claude, and ask for your first app. Your agent's model stays on your own subscription.