Skip to main content
Glama

Get a build

get_build
Read-onlyIdempotent

Follow a build publish_app started: its state, its phase (where it is now: queued, starting, fetching_source, detecting, restoring_cache, building with the step it runs such as npm install, exporting, uploading, saving_cache, finishing, starting_processes, then done, failed, or superseded), the log it has written so far without color codes, and, once it succeeds, the release it produced, the URL that serves it, and its deploy: deploy_state and every process with the release it targets and the release it runs. Poll every ten to fifteen seconds until deploy_state is up, crashed, or refused, or the build failed or was superseded, and between polls tell the person what the build is doing now, which the answer's Now line words for you; most deploys finish within five minutes. superseded means a newer deploy of the app replaced this build, so nothing from it will go live; follow the newer build. checking means the release waits for the organization's release policies: follow evaluation.id with get_evaluation and wait_seconds 20. refused means it will not go live; get_evaluation says why. starting means a process is still booting the release. crashed means a process kept failing on it and was stopped: a web process that had a running release keeps serving it, so a working URL does not prove the new release is live, and other crashed processes are down until fixed. Its state_reason says why. When it is the app's own output, usually a start command that exited or a server not listening on $PORT, fix the code and publish again; when it names a platform or configuration failure, fix that or publish again. A failed build's error names the step that failed, and failure_excerpt holds the log lines that say why, usually a missing or conflicting dependency. Requires connecting a Valet account.

Input Schema

NameRequiredDescriptionDefault
build_idYesRequired. The id publish_app returned.
org_nameNoThe Valet organization the build belongs to. Omit to use the organization the account joined first.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Added

TDQS

A4.5/5.0
Behavior5/5

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

Annotations only declare this a safe, idempotent, non-open read, and the description adds a large amount beyond that: the full phase lifecycle, the meaning of superseded/checking/refused/starting/crashed, the trap that a working URL does not prove the new release is live, and that state_reason and failure_excerpt explain failures. That is exactly the operational context annotations cannot carry.

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

Conciseness3/5

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

Content is front-loaded with return values and then polling and state semantics, which is the right order, and with no output schema the detail earns its place. However the opening sentence is an extremely long run-on with a giant embedded parenthetical of phase names, making it hard to parse at a glance; tighter sentence breaks would preserve the same information more legibly.

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?

There is no output schema and no structured state documentation, so the description must carry the return semantics entirely, and it does: states, phases, log behavior, deploy_state values, and the fields that explain failures. An agent has everything needed to poll correctly, interpret terminal states, and decide what to do next.

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

Parameters3/5

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

Schema coverage is 100% and both parameters are already documented, including the default-org behavior for org_name. The description only implies build_id comes from publish_app, which the schema already states, so there is no added parameter meaning beyond structured data.

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 resource (the build that publish_app started) and enumerates exactly what is returned: state, phase, logs, and, on success, release, URL, and deploy state. It explicitly ties itself to the publish_app sibling and to get_evaluation for the checking path, so an agent can distinguish it from get_logs, get_service, or get_evaluation without opening any schema.

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?

Gives concrete when/when-not guidance: poll every 10-15 seconds until deploy_state is up, crashed, or refused, or the build failed or was superseded, with the expectation that most deploys finish within five minutes. It routes to named alternatives for specific sub-cases (get_evaluation with wait_seconds 20 for checking, follow the newer build after superseded) rather than leaving the agent to guess.

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.

Resources