Skip to main content
Glama

build_replace_project

DestructiveIdempotent

DESTRUCTIVE (DOMAIN-admin keys only): completely replace a DEV-mode project's app — wipes its data (retains credentials, API keys, namespace, tenant). Refused if mode='live'. Requires confirm_project_name to match. If you pass files, they are VALIDATED before any wipe (a bad bundle is a no-op) and published after; otherwise wipe-only, then call build_publish.

Input Schema

NameRequiredDescriptionDefault
filesNoOptional new bundle {path: content} to publish after the wipe.
forceNoWipe and publish despite SOFT validation errors (default false). Never overrides a wrong/absent schema namespace, a JavaScript syntax error or schemas the platform refuses: those are refused before anything is wiped.
app_typeNoDefault 'web'.
files_refNoFor a LARGE bundle that exceeds the model output-token cap: a file_id from build_stage_bundle (upload the gzip(json {path:content}) blob out-of-band, then pass its file_id here). Preferred over files/files_b64gz when the bundle will not fit inline.
files_b64gzNoAlt to files: base64(gzip(JSON {path:content})). Use if a CDN/WAF blocks raw code in the body.
project_uuidYesProject UUID (from build_list_projects or build_create_project).
confirm_project_nameYesMust equal the project's name — a safety confirmation.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • addedInput schema / properties / force
      Added value: +{
      +  "description": "Wipe and publish despite SOFT validation errors (default false). Never overrides a wrong/absent schema namespace, a JavaScript syntax error or schemas the platform refuses: those are refused before anything is wiped.",
      +  "type": "boolean"
      +}
  2. Changed2 schema fields changed
    • addedInput schema / properties / app_type / description
      Added value: +"Default 'web'."
    • addedInput schema / properties / project_uuid / description
      Added value: +"Project UUID (from build_list_projects or build_create_project)."
  3. First observed

TDQS

A4.9/5.0
Behavior5/5

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

Goes well past destructiveHint=true by naming exactly what is destroyed vs retained, that a bad bundle is a validated no-op, that force never overrides hard validation failures, and that confirmation must match the project name. This is unusually rich mutation context.

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

Conciseness5/5

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

Front-loads the DESTRUCTIVE warning, then the wipe scope, then the preconditions, then the bundle behavior. Every clause carries information; nothing is padding despite the density.

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?

For a 7-parameter destructive tool with no output schema, the description supplies the preconditions, side effects, failure semantics and follow-up step an agent needs. No material gap remains.

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%, so per-parameter meaning is already documented. The description still adds ordering semantics not in the schema: files are validated before any wipe, and force only bypasses SOFT errors. It does not re-describe files_ref/files_b64gz beyond what the schema says.

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 — completely replace a DEV-mode project's app — plus explicit scope (wipes data, retains credentials/API keys/namespace/tenant). It is unmistakable against siblings like build_update_project (partial) and build_publish (deploy-only).

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 explicit when-not conditions ('Refused if mode="live"', DOMAIN-admin keys only) and an alternative path: pass files to publish, or wipe-only and then call build_publish. The decision tree is fully spelled out.

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.