MCP server reference
Appbricx is a remote MCP server over Streamable HTTP. Every tool is a thin shell over the same operations as the developer HTTP API and the CLI, so all three give the same answers.
Endpoint and auth
POST https://appbricx.com/api/mcp
Authorization: Bearer apx_pat_...- Use a personal access token from Workspace settings → Coding agents. See Access tokens.
- A missing, invalid, expired or revoked token gets
401withcode: "UNAUTHENTICATED". - A token only reaches projects in its own workspace. Anything else answers "Project not found".
Pinning a project
Add ?project=<project-id> to the URL (or send an x-appbricx-project header). Then:
project_idbecomes optional on every project tool and defaults to the pinned project.- The project's current table, workflow and role names appear as enums in the tool schemas (for example the
entityofquery_data), so the agent picks from what exists. They are re-read on every request, so they follow each apply. - A pin to a project the token can't reach is ignored.
https://appbricx.com/api/mcp?project=3f2c9a10-...Tools
Read tools work with any valid token. Tools that change something need the scope shown.
| Tool | What it does | Scope |
|---|---|---|
whoami | The signed-in user, the token's scopes and workspace | read |
get_guide | The contract guide (markdown). No argument: overview and index. section: one part | read |
list_projects | Projects this token can reach, newest first | read |
create_project | Create an empty project (name, optional description) in the token's workspace | apply |
get_project | Whether the project is built, the last build failure, and its preview path | read |
get_contract | The current contract (null before the first apply). Seeds come back as "UNCHANGED" | read |
check_contract | Normalize a contract and report errors, fixes and warnings. No side effects | read |
apply_contract | Build the dev environment from a full contract. Optional force overwrites hand-edited compiled files (backed up first) | apply |
patch_contract | Apply typed edit ops (1–50) to the current contract and rebuild. dry_run reports only | apply |
check_component | Run one custom component through every gate (static, types, compile, server render). No project change | read |
verify | Static → data → browser checks on the dev environment, each failure with evidence and a fix | read |
screenshot | The dev preview in a real browser, signed in as a role or guest; returns a PNG plus page errors, overflow and visible text | read |
query_data | Read rows from a dev table (read-only, equality filters, max 200) | read |
logs | Recent workflow runs (status, error, last log lines) and in-app notifications | read |
deploy | Publish. Runs verify first and refuses on red unless skip_verify | deploy |
Writing tools also need a non-viewer role in the workspace. The server also exposes the whole guide as the resource appbricx://docs/guide.
Tool parameters
| Tool | Parameters |
|---|---|
get_guide | section? |
create_project | name, description? |
get_project, get_contract, verify | project_id |
check_contract | project_id, contract |
apply_contract | project_id, contract, force? |
patch_contract | project_id, edits, dry_run?, force? |
check_component | name (PascalCase), source (the whole TSX file), sample? |
screenshot | project_id, route?, as? (persona id, demo login email or "guest"), width? (320–1600), height? (480–1200), full_page? |
query_data | project_id, entity, where?, order_by? (default created_at), desc? (default true), limit? (1–200) |
logs | project_id, workflow?, limit? (1–200) |
deploy | project_id, environment? (production | preview), allow_destructive?, skip_verify? |
Notes
Stateless
Each request gets a fresh server and transport. There is no MCP session to keep alive, and any API replica can answer any call. The server returns plain JSON responses (no long-lived stream).
get_guide sections
Without arguments it returns the loop and rules, the contract shape, ACCESS and WORKFLOWS, and an index. Pass one of these section ids for the rest:
loop, shape, access, coordinates, seeds, workflows, patch, pages, blocks, components, primitives, icons.
Screenshots are images
screenshot returns MCP image content (a PNG) followed by JSON with url, signedInAs, viewport, errors, overflowX and text. The default viewport is 390×844 (a phone). Before the first apply it answers NOT_BUILT.
Errors
A tool result with an HTTP status of 400 or above is flagged isError and carries the same JSON body the HTTP API sends, for example CONTRACT_INVALID with a report, PROJECT_BUSY, HAND_EDITED_FILES, VERIFY_FAILED or FORBIDDEN_SCOPE. See Developer HTTP API for the full list.
Next
- Build with your coding agent — connect Claude Code or Cursor
- App contract
- Access tokens