# MCP tools

The platform as tools an agent can call.

Start the server with `npx -y uarpie mcp --client <name>`. Every tool carries a title and `readOnlyHint` / `destructiveHint` annotations; compliant clients use them to decide when to ask the person first.

| Tool | Read-only | Destructive | What it does |
|---|---|---|---|
| `deploy` | no | no | Detect, build and put an app online. Returns `bind_url` on the first deploy. |
| `status` | yes | no | Address, live version, in-progress update, usage and spend, current link |
| `logs` | yes | no | Recent runtime activity |
| `versions` | yes | no | Every deploy, newest first |
| `deployment_log` | yes | no | The trace of one deploy: steps and build output |
| `rollback` | no | **yes** | Go back to a version; `with_data` restores the snapshot |
| `set_secret` | no | **yes** | Set one setting; creates a config-only version |
| `share` | no | no | Invite a person by email |
| `add_domain` | no | no | Attach a domain; returns the one CNAME to add |
| `estimate` | yes | no | Likely monthly cost with breakdown |
| `list_projects` | yes | no | Apps in the signed-in account |
| `login` | no | no | Start signing this computer in; returns a code and link for the person |
| `login_wait` | no | no | Wait for the person to approve |
| `clone` | no | no | Put an app's source on this computer |

## Results

Success returns the same shapes the dashboard uses. Failure returns the [error contract](/docs/errors) with `isError: true`, so the agent reads `fix`, applies it, and calls again.

## Naming the app

Tools that act on an app take `project`: a project id (`prj_...`) or the app's name. When omitted, the app in the current folder's `deploy.json` is used. Names require a signed-in account (`login`).
