Skip to main content
Glama

Watch deploy

watch_deploy
Read-only

Wait for a deploy to finish: call it right after deploy_project, with the project_id it returned. It returns when the deploy settles: status running (give the user url), or error. A static site settles at once, since nothing boots (read error_explained and get_project_logs, fix the files, and call deploy_project again under the same name). It streams each step (machine booting, SSH ready, pushing files, app live) as a progress notification; relay them so a two minute deploy does not look like a hang. If the deploy is still going after wait_seconds (default 180), it returns status spawning: call it again to keep waiting. A harness that cuts a tool call short (jcode stops one at 30 seconds) can pass a smaller wait_seconds, such as 20, and call again until it settles; that timeout is the harness's, not a failed deploy. Give the user url: the share link, which survives redeploys unless the app's address is changed, and works whether the project is public or restricted. Never hand out machine_url, the machine underneath: a restricted project refuses viewers there.

Input Schema

NameRequiredDescriptionDefault
project_idYesthe id of the project to watch, as returned by deploy_project
wait_secondsNohow long to follow the deploy before returning, in seconds. The call returns as soon as the deploy settles, so this only bounds a deploy that is still going. Default 180, maximum 300

Output Schema

NameRequiredDescriptionDefault
urlNo
noteYes
errorNo
stepsNo
statusYes
settledYes
retryableNo
share_urlNo
project_idYes
machine_urlNo
error_explainedNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and destructiveHint=false, yet the description adds substantial context: progress notifications are streamed per step and should be relayed, a static site settles immediately with nothing booting, and wait_seconds exhaustion returns 'spawning' rather than an error. It also clarifies that a harness-side cutoff (jcode's 30s) is not a deploy failure, which is exactly the kind of behavioral nuance annotations cannot convey.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with purpose and primary outcomes, then layered with recovery loop, timeout handling, and the url vs machine_url warning. Every sentence carries operational value, but it is a dense single block that would scan faster split into short lines or bullets.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Covers statuses (running, error, spawning), the static-site shortcut, notification streaming, the wait/retry protocol, and which URL to hand the user versus never exposing machine_url. With an output schema present, return values need no further explanation, so nothing an agent needs is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the wait_seconds description already covers default 180, max 300 and settle-early behavior. The tool description adds genuinely new guidance beyond the schema: pass a smaller wait_seconds such as 20 when the harness truncates calls, and call again until it settles.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Wait for a deploy to finish') and pins its position in the workflow ('call it right after deploy_project, with the project_id it returned'). That framing separates it cleanly from siblings like get_project, get_project_logs and deploy_project itself.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicit sequencing (right after deploy_project), explicit failure path (read error_explained and get_project_logs, fix files, redeploy under the same name), and explicit retry loop when status is spawning. It even names the sibling tools to reach for on error instead of this one.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.