Skip to main content
Glama

build_smoke_test

Idempotent

VERIFY a DEPLOYED app actually works (not just 'running'). HTTP-checks the live URL: root loads with a title, app.js is your bundle (not a stub) and dismisses the boot splash, config.js namespace matches the project; optionally logs in and reads an entity to confirm data + no namespace ambiguity. Pass url= (from build_deploy_status) or poll_url=. THE post-deploy gate — run it after every deploy.

Input Schema

NameRequiredDescriptionDefault
urlNoThe deployed app URL (from build_deploy_status).
emailNoOptional — a user to log in and verify data reads.
entityNoOptional bare schema slug (e.g. 'participant') to read for the authed data check.
tenantNoOptional tenant for the login. Default '' so the server resolves the user's OWN tenant (required for a multi-tenant app whose test user lives in a named tenant).
passwordNoOptional — password for that user.
poll_urlNoAlt to url: the build_deploy poll_url; the URL is resolved from it.
project_uuidYesThe deployed project (for namespace + live_url).
expected_app_js_sha1NoOptional — the first 12 lowercase hex chars of `sha1sum ui/app.js` (sha1 of your local bundle FILE). If given, smoke_test reports whether the DEPLOYED app.js matches, so you can confirm the deploy actually rolled (vs a stuck roll / stale cache serving the old bundle). Case-insensitive; a malformed value is reported as a warning, never a false mismatch.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.7/5.0
Behavior5/5

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

Annotations only declare idempotent/non-destructive, so the description must carry the behavioral load, and it does: enumerates what is HTTP-checked, explains the optional authed data-read path, and clarifies that a malformed expected_app_js_sha1 yields a warning 'never a false mismatch.' That directly informs how to interpret results beyond what the annotations state.

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-loads the verb and scope, then packs the checks and the routing hint into compact clauses. It is dense and parenthesis-heavy, but every sentence carries information; a slightly lighter structure would read more easily.

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

Completeness4/5

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

For an 8-param tool with no output schema, it covers purpose, trigger, input alternates, and the semantics of the tricky sha1 check. It does not describe the shape of the pass/fail report, but the enumeration of checks generally conveys what a result means, so the gap is minor.

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 already 100%, so the baseline is 3, but the description adds genuine semantic value: it explains the url-versus-poll_url alternative and the optional login/entity-read flow that maps to email/password/entity/tenant. It stops short of restating each param, which is appropriate given the rich schema.

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 (VERIFY) and resource (a deployed app), and distinguishes the purpose from mere liveness ('not just running') and from other build tools. The parenthetical checks (root loads, app.js is your bundle, config namespace) make the scope concrete enough that an agent can tell it apart from build_validate or build_deploy_status.

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?

'THE post-deploy gate — run it after every deploy' gives an explicit trigger, and it routes the agent to build_deploy_status for the url or poll_url source. The when-to-use condition is unambiguous and the alternative input path is named.

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.