Appbricx
Docs
FeaturesPricingStart free

Get started

OverviewWhat Appbricx isQuickstart with a coding agentQuickstart with the builderCore concepts

Guides

Data and tablesAccess and rolesBusiness rulesSign-inCustom screensRealtime and topicsWorkflows, schedules and webhooksServer functionsAI in your appPaymentsFilesMessagesIntegrationsVerifyPublishing, domains and rollbackOperating your appExport and self-hostSelf-host install

Tutorials

Build a booking app with Claude CodeMulti-user todo listClient portalSlack on new sign-upTemplates

Reference

Reference homeFrontend SDKHTTP APIMCP toolsCLIIntegrations catalogContract formatAI key resolutionRun Appbricx locally

Connector proxy

Call a connected integration's action from an app without the app ever holding the credential.

4 endpointsHTTP API referenceGuide: Connect other apps

On this page
  1. Authentication
  2. Endpoints
  3. GET /connector-proxy/available
  4. GET /connector-proxy/mcp/available
  5. POST /connector-proxy/mcp/:toolName
  6. POST /connector-proxy/:integration/:action

Base URL: your app's origin ($APP_ORIGIN): the published host, a custom domain, or the platform origin for the builder preview. Errors answer { ok: false, error: { code, message } } unless noted. Add x-appbricx-env: dev or prod to pick the database explicitly; otherwise the host decides (preview means dev, a published host means prod).

Authentication

App key
A project key or preview token identifies the app. No user session is needed. Authorization: Bearer $APP_KEY

Endpoints

Connected integrations

GET/__appbricx/connector-proxy/available

The integrations connected for this project's owner, with their callable actions.

Auth
App key: Authorization: Bearer $APP_KEY

Response

Response
{
  "integrations": [
    {
      "id": "slack",
      "displayName": "Slack",
      "actions": [
        {
          "name": "send_channel_message",
          "displayName": "Send Message To A Channel"
        }
      ]
    }
  ]
}

Errors

StatusCodeWhen
401UNAUTHORIZEDMissing or invalid Authorization bearer ("Missing Authorization: Bearer <token>", "Invalid API key").
curl
curl "$APP_ORIGIN/__appbricx/connector-proxy/available" \
  -H "Authorization: Bearer $APP_KEY"
fetch
const res = await fetch(`${APP_ORIGIN}/__appbricx/connector-proxy/available`, {
  headers: {
    Authorization: `Bearer ${APP_KEY}`,
  },
});
const data = await res.json();
if (!res.ok) throw new Error(data.error?.message ?? data.error ?? res.statusText);

Source: services/api/src/routes/connector-proxy.ts:196

Connected MCP tools

GET/__appbricx/connector-proxy/mcp/available

Tools of MCP servers connected to the workspace that the app may call.

Auth
App key: Authorization: Bearer $APP_KEY

Response

Response
{
  "tools": [
    {
      "fullName": "mcp_linear_create_issue",
      "connectorName": "Linear",
      "toolName": "create_issue",
      "description": "Create an issue"
    }
  ]
}

Errors

StatusCodeWhen
401UNAUTHORIZEDMissing or invalid Authorization bearer ("Missing Authorization: Bearer <token>", "Invalid API key").
curl
curl "$APP_ORIGIN/__appbricx/connector-proxy/mcp/available" \
  -H "Authorization: Bearer $APP_KEY"
fetch
const res = await fetch(`${APP_ORIGIN}/__appbricx/connector-proxy/mcp/available`, {
  headers: {
    Authorization: `Bearer ${APP_KEY}`,
  },
});
const data = await res.json();
if (!res.ok) throw new Error(data.error?.message ?? data.error ?? res.statusText);

Source: services/api/src/routes/connector-proxy.ts:247

Call a connected MCP tool

POST/__appbricx/connector-proxy/mcp/:toolName

Call a tool of a connected MCP server with arguments.

Auth
App key: Authorization: Bearer $APP_KEY

Path parameters

NameTypeDescription
:toolNamerequiredstringThe fullName from mcp/available (mcp_<connector>_<tool>).

Body

NameTypeDescription
propsoptionalobjectThe tool's arguments.

Response

A tool error: { success: false, data: null, error: { code: "MCP_TOOL_ERROR", message } }.

Response
{
  "success": true,
  "data": {
    "id": "ENG-42"
  },
  "meta": {
    "connectorName": "Linear",
    "toolName": "create_issue",
    "durationMs": 380
  }
}

Errors

StatusCodeWhen
401UNAUTHORIZEDMissing or invalid Authorization bearer ("Missing Authorization: Bearer <token>", "Invalid API key").
403TOOL_NOT_ALLOWEDThe key's allowed tools exclude it.
429RATE_LIMITEDToo many requests.
413PAYLOAD_TOO_LARGEOver 1 MB.
404MCP_TOOL_NOT_FOUNDNo active connector offers this tool.
curl
curl -X POST "$APP_ORIGIN/__appbricx/connector-proxy/mcp/mcp_linear_create_issue" \
  -H "Authorization: Bearer $APP_KEY" \
  -H "content-type: application/json" \
  -d '{"props":{"title":"Printer jam"}}'
fetch
const res = await fetch(`${APP_ORIGIN}/__appbricx/connector-proxy/mcp/mcp_linear_create_issue`, {
  method: "POST",
  headers: {
    Authorization: `Bearer ${APP_KEY}`,
    "content-type": "application/json",
  },
  body: JSON.stringify({
    "props": {
      "title": "Printer jam"
    }
  }),
});
const data = await res.json();
if (!res.ok) throw new Error(data.error?.message ?? data.error ?? res.statusText);

Source: services/api/src/routes/connector-proxy.ts:286

Run an integration action

POST/__appbricx/connector-proxy/:integration/:action

Run one action of a connected integration server-side. The app never holds the credential; every call is audited.

Auth
App key: Authorization: Bearer $APP_KEY

Path parameters

NameTypeDescription
:integrationrequiredstringThe integration id, e.g. slack.
:actionrequiredstringThe action name (see its integration page).

Body

NameTypeDescription
propsoptionalobjectThe action's input.

Response

A failed action: { success: false, data: null, error: { code: "EXECUTION_FAILED", message } }.

Response
{
  "success": true,
  "data": {
    "ok": true,
    "ts": "1697100000.000100"
  },
  "meta": {
    "integrationId": "slack",
    "actionName": "send_channel_message",
    "durationMs": 412
  }
}

Errors

StatusCodeWhen
401UNAUTHORIZEDMissing or invalid Authorization bearer ("Missing Authorization: Bearer <token>", "Invalid API key").
403TOOL_NOT_ALLOWEDThe key's allowed tools exclude this action.
429RATE_LIMITEDToo many requests.
403NOT_IN_ALLOWLISTNot in .appbricx/connector-allowlist.json.
403INTEGRATION_NOT_CONNECTEDNo connection.
413PAYLOAD_TOO_LARGEOver 1 MB.
500EXECUTION_ERRORThe runner threw.
curl
curl -X POST "$APP_ORIGIN/__appbricx/connector-proxy/slack/send_channel_message" \
  -H "Authorization: Bearer $APP_KEY" \
  -H "content-type: application/json" \
  -d '{"props":{"channel":"C0123456","text":"Deploy finished"}}'
fetch
const res = await fetch(`${APP_ORIGIN}/__appbricx/connector-proxy/slack/send_channel_message`, {
  method: "POST",
  headers: {
    Authorization: `Bearer ${APP_KEY}`,
    "content-type": "application/json",
  },
  body: JSON.stringify({
    "props": {
      "channel": "C0123456",
      "text": "Deploy finished"
    }
  }),
});
const data = await res.json();
if (!res.ok) throw new Error(data.error?.message ?? data.error ?? res.statusText);

RelatedIntegrationsctx.integrations.invoke

Source: services/api/src/routes/connector-proxy.ts:459

On this page

  1. Authentication
  2. Endpoints
  3. GET /connector-proxy/available
  4. GET /connector-proxy/mcp/available
  5. POST /connector-proxy/mcp/:toolName
  6. POST /connector-proxy/:integration/:action
Appbricx

The backend, runtime and hosting for apps your coding agent builds. On our cloud, in yours, or on your own servers.

Features

Coding agents and MCPVerify testingBuilder consolePostgres databaseData APIRealtimeRow-level securitySign-in and authPaymentsWorkflows and jobsAI in your appIntegrationsBackups and rollbackHosting and domainsSelf-host and exportAll features

Product

ShowcasePricingFor coding agentsTemplatesPrivate cloudBring your own AI keyFAQ

Compare

Appbricx vs SupabaseLovable alternativeBolt alternativeFor freelancersFor agencies

Resources

DocumentationReferenceBlogSupportContact

© 2026 Appbricx. All rights reserved.

TermsPrivacyCookiesAcceptable Use