deploy_app
Deploys a full multi-service app in one request: prepares project and disk, builds or reuses images, resolves service references, configures services, and starts them; resume failed deployments with overrides.
Instructions
Deploy the WHOLE app in one request: prepare project/disk, build or reuse all images, resolve internal/public service references, configure and start. Runs in the background. IDs are automatic. To resume a failure, send deployment_id and service overrides (for example replacement image_id); successful builds are preserved. On failure, failure.log_tail and get_logs show what the build or service printed. Dockerfile rules: one Dockerfile per service named Dockerfile or .dockerfile; docker-compose is not supported. The Dockerfile must build everything itself; no separate setup script the user runs before the build. The app listens on 0.0.0.0 on a fixed port; only one port per service can be public. Services reach each other through internal references (bare host:port by default, http:// only when scheme is set), never localhost; do not bake compose-style fallback hosts (http://db:5432) into ENV. Files uploaded to a desk lose the executable bit: RUN chmod 0755 any entrypoint script you COPY. In nginx configs use only the IPv4 listen line. A volume belongs to one service; services cannot share a volume. Volume data survives restarts and image changes but is wiped if the service is deleted or the volume is removed or changed. The build context is the folder containing the Dockerfile, exactly like a local docker build in that folder. Test the image locally (docker build/run) before uploading.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| confirm | No | Set after the user approved replacing existing disk files listed by a previous confirm_required response. | |
| desk_url | No | Desk link from the user: sets project_id and the desk for builds without desk_id. | |
| services | No | ||
| project_id | No | ||
| request_id | No | Optional retry key. Omit it: the MCP generates deployment IDs automatically. | |
| project_name | No | ||
| wait_seconds | No | Wait up to this many seconds for completion; execution continues in the MCP after the response. | |
| deployment_id | No | ||
| files_uploaded | No | ||
| application_name | No | ||
| confirm_volume_wipe | No | Set only after the user approved losing the data in the volumes listed by a previous confirm_required response. |