Tinycloud is built for the case where the person who wants the app is not the person who deploys software. The MCP server is the surface an assistant drives.
It is a JSON-RPC/MCP stdio server. It uses TINY_API_URL / TINY_TOKEN, or the current CLI profile when those are absent.
The CLI and the MCP server both use the same remote REST API. This keeps an agent and a human from getting different answers to the same request.

The loop that works

1

Probe the target before generating anything

This is the step that matters most. It reports whether the target executes build commands, offers Postgres, allows direct egress, and what memory ceiling applies. Generate a manifest the target can actually run rather than discovering it during a deploy.
2

Validate the manifest

Parses, normalizes, and applies semantic and policy rules. No mutation, no upload.
3

Plan

Returns the resource diff, migration plan, capability status, required approvals, and a digest that makes a stale plan detectable. Still non-mutating.
4

Deploy, then poll

Deploy is asynchronous. A returned deploy is not a finished deploy.
5

Read logs on failure

Errors are results, not transport failures

Tool errors are returned as structured tool results with stable codes, remediation, retryability, and next actions.
An agent can act on next_actions directly. It never has to parse prose to decide what to do next.

What an agent can do without a human

Ungated, because none of it widens blast radius:
  • redeploy an app whose permissions did not change;
  • create and delete previews — including with capabilities, which previews do not gate;
  • read status, logs, environments, access, audit events, and usage;
  • roll back.
Gated, because it does:
  • a new production capability, raw secret, outbound host, widened visibility, or destructive migration. See Approvals.

Writing manifests an assistant can deploy

A capability is the only outbound path that needs no approval in a preview and leaves nothing in the VM to leak.
It needs no operator configuration at all, so it deploys on a minimally configured target.
Plain TypeScript with no build step deploys on a target that never installed the build image. @tinycloud/runtime-sdk is supplied by the runtime.
On a single-host install, apps live below /apps/<route>/. An absolute /styles.css resolves above the prefix and 404s.

Full tool list

See the MCP reference.