Skip to main content
Glama

Change some of an app's files

update_app_files
Destructive

Redeploys the app with a few files changed: files maps each path to its new content, or to null to delete it. Every other file stays as it is. expected_deploy_id must be the app's live deploy (from get_app_source or the last deploy result); if someone deployed in between, nothing changes and you are told to read the source again. Builds and type checks like deploy_app.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "files": "<files>",
      "expected_deploy_id": "<expected_deploy_id>"
    },
    "name": "update_app_files"
  }
}

Input Schema

NameRequiredDescriptionDefault
appNoThe app's slug: the first label of its address (my-app for https://my-app.fuast.com). list_apps shows the slugs you can use.
filesYesChanges as {"path": "new content"} to write a file, {"path": null} to delete it.
edit_tokenNoThe edit_token deploy_app returned when it deployed a preview without an account. It is a secret: keep it in this conversation only.
delete_tablesNoOnly when a deploy was refused because the new schema drops tables that hold rows: repeat each table with the exact row count from that error to confirm deleting it.
expected_deploy_idYesThe deploy id your change is based on.

Output Schema

NameRequiredDescriptionDefault
urlYes
nameNo
slugYes
limitsNo
createdNo
manifestNo
claim_urlNo
deploy_idYes
trust_urlNo
unclaimedYes
edit_tokenNo
expires_atNo
next_stepsYes
restrictedNo
visibilityNo
preview_urlNo
trust_commandNo
restricted_hintNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.4/5.0
Behavior4/5

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

Beyond the annotations (destructiveHint=true, idempotentHint=false), the description discloses meaningful behavior: unlisted files are preserved, a null value deletes a path, the mandatory live-deploy-id check silently aborts the change when someone deploys concurrently, and the result is built and type checked like deploy_app. It leaves out other behavior an agent might want, such as what happens when the build fails or whether a partial change can be reverted.

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?

Four tight sentences, front-loaded with the core action and scope, then the concurrency contract, then build parity with deploy_app. Nothing is redundant or padded.

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 a destructive, multi-parameter mutation with nested objects and an output schema, the description covers the essentials: partial-change semantics, deletion, and the optimistic-locking guard. The remaining gaps (permission requirements, build-failure outcomes) are minor given that an output schema exists and annotations carry the safety profile.

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 the baseline is 3, but the description adds real meaning: it explains the null-to-delete convention of the files mapping and clarifies that expected_deploy_id is not just any deploy id but the app's live deploy, including the failure semantics when it is stale. It says nothing about the optional app or edit_token parameters, though the schema documents those.

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?

The description opens with a specific verb-plus-resource statement: 'Redeploys the app with a few files changed', which immediately distinguishes it from a full deploy performed by deploy_app, and it also names the scope ('Every other file stays as it is'). An agent can tell what this tool does and how it differs from a whole-app deploy without opening either schema.

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

Usage Guidelines4/5

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

It states the condition for use (changing only a few files rather than redeploying the whole app) and the prerequisite for expected_deploy_id, pointing to get_app_source or the last deploy result as the source of that value. It does not explicitly say 'use deploy_app instead when you want a full deploy', so the exclusion is left implicit rather than stated.

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