Skip to main content
Glama

Revert hosted app to a version

revert_app
Destructive

Put an earlier version of a hosted app back live. Its files are deployed again as a new version, so the version you leave stays in the history and the rollback can itself be undone the same way; Playbook keeps the last 50 versions, so past that the oldest is dropped. version is the number to restore, from list_app_versions; expected_version is the live head_version_number: if the app changed since, the call fails with stale_app. A version that is not kept, or an app with no stored versions, answers not found. The app's address, name and access do not change, but like a deploy it then reads the board as you; if someone else deployed it last, signed-in visitors have to reload before their next change. The restored files can take about a minute to be served. Requires write scope and permission to edit the board the app shows.

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": {
      "slug": "<slug>",
      "version": "<version>",
      "expected_version": "<expected_version>"
    },
    "name": "revert_app"
  }
}

Input Schema

NameRequiredDescriptionDefault
slugYesSlug of the app, from list_apps
commentNoA note stored with the new version, shown by list_app_versions
versionYesVersion number to put back live, from list_app_versions
organizationNoWorkspace slug, as returned by list_organizations. Omit it when the account has a single workspace — it is then resolved from your token. Pass it only when the account has several, or when you mean a workspace other than the obvious one.
expected_versionYesThe app's live `head_version_number`, as you last read it

Schema Changelog

Changes observed during successful MCP inspections.

  1. Added

TDQS

A4.6/5.0
Behavior5/5

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

Well beyond the annotations: it discloses that the rollback creates a new version and is itself undoable, the 50-version retention cap, the stale_app and not-found error semantics, that slug/name/access are unchanged, that the app reads the board as the caller, the ~1 minute propagation delay, and the `write` scope plus board-edit permission requirement.

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 the core action, and every sentence carries substantive information with no filler. It is dense — semicolon-chained clauses pack several behaviors per sentence — which slightly hurts scanability but not correctness.

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 destructive, non-idempotent mutation with no output schema, the description covers consequences, reversibility, failure modes, latency, and auth requirements. An agent has everything needed to call it safely and interpret the outcome.

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: `version` comes from list_app_versions, and `expected_version` is the live `head_version_number` acting as an optimistic-concurrency guard whose mismatch yields stale_app. The optional `comment` and `organization` params are left to the 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?

Opens with a specific verb and resource: "Put an earlier version of a hosted app back live," then clarifies it deploys files again as a new version. This distinguishes it from deploy_app (new code), list_app_versions (read), and revert_asset (assets, not apps).

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 names list_app_versions as the source of the `version` value and explains the stale_app failure condition that guards against overwriting a newer deploy. It lacks an explicit contrast statement such as "to ship new code use deploy_app instead," so the alternative is implied rather than 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.

Resources