MCP tools

deploy_app

Put an app live behind company login, or deploy a new version.

Sends every file of the app, waits up to 90 seconds for the build, and returns the URL, version and security scan result, including fix prompts for any issues.

Deploy this to Inhaus as "Commission Calculator".

Parameters

namestringrequired

The app name people will see, for example Commission Calculator. 1 to 80 characters. For a new app it also sets the address (commission-calculator).

app_idstring

Deploy a new version of an existing app. Get it from list_apps or an earlier deploy. Leave it out to create a new app.

filesobject[]required

Every file of the app.

properties
pathstringrequired

Relative path, for example index.html or src/app.js. Up to 300 characters.

contentstringrequired

File content: text, or base64 when encoding is base64.

encodingstringdefault: utf8

utf8 or base64. Use base64 for images, fonts and other binary files.

readmestring

A short README in Markdown: what the app does and who it is for. Up to 200,000 characters.

messagestring

What changed in this version, in one line. Up to 500 characters. Shown in the Versions tab.

entrystring

The entry file when it is not index.html or one of the default server files.

Result

app_idstring

The app's id. Pass it as app_id on the next deploy.

deploy_idstring

This deploy's id.

urlstring

The app's address, for example https://commission-calculator--acme.inhaus.dev.

versionnumber

The version number this deploy created.

statusstring

live, failed, or the step it reached if it is still running after 90 seconds (queued, building, scanning, deploying).

scanobject | null

The security scan, or null if it has not reported yet.

properties
statusstring
pass, warn, fail or pending_ai.
rulesstring
Result of the fixed rules.
ai_reviewstring
State of the AI review, for example running, done or not_run.
issuesobject[]

Each issue's title, severity (blocking or warning), fix_prompt, and file and line when known.

errorstring | null

Failed deploys only: what went wrong.

build_log_tailstring[]

Failed deploys only: the last build log lines.

Example results

Passed
Live at https://commission-calculator--acme.inhaus.dev (v3). Security scan passed.
Issues found
Live at https://lead-tracker--acme.inhaus.dev (v1). The security scan found 1 blocking issue and 0 warnings.
The app works for people who already have access, but publishing and company-wide access wait until
the blocking issues are fixed. Only you can open it so far. Use share_app to give people access.
1. [blocking]
<untrusted_data source="security finding">
Title: HubSpot private app token written into the code
File: src/api.js:12
Suggested fix: Move the hubspot private app token in src/api.js (line 12) into an Inhaus secret ...
</untrusted_data>
Build failed
The deploy of version 4 failed.
<untrusted_data source="build output">
Error: Could not resolve "fs"
Last build log lines:
...
</untrusted_data>
Fix the problem and call deploy_app again.

HubSpot data

Apps can read HubSpot without an API key. Browser code calls the app's own address, and Inhaus uses the viewer's own HubSpot account:

const res = await fetch('/__inhaus/connectors/hubspot/crm/v3/objects/contacts?limit=10');

If the viewer has not connected HubSpot yet, the call returns 401 with error.code set to connector_not_connected. Send them to error.details.connect_url to connect it.

Errors

CodeWhen
slug_takenAnother app in the workspace already uses this address. To update that app, pass its app_id.
app_creation_restrictedYour admin limited who can create apps.
too_largeThe app is over the upload limit.
forbiddenYou are a Viewer on the app you tried to update.
payment_requiredThe workspace's 7 free days are over. Deploying needs a plan. Apps already live keep running.

Required role

New app: any member of the workspace. New version: Editor or Owner.