Skip to main content
Glama

Get rollback status

get_rollback_status
Read-onlyIdempotent

Progress and final result of a rollback started with rollback_commit (by rollback_id), or of a project's most recent rollback (by project_id, for when the rollback_id is not at hand). status is running, done or failed. running: not finished — message says whether production has switched and whether the data is restored yet. done: production runs the target commit and, in restore_data mode, the app is running on the restored data. failed: the rollback stopped and will not continue by itself; error is the reason, message says what changed and what did not, code_moved and data_state say the same as fields (data_state is untouched, in_progress, restored, partial or unknown; data_restored is true only for restored), and next says what to do — which after a failure is not always to run the rollback again. steps lists each step with its state. wait_s (max 55) blocks until the rollback ends instead of returning at once; retry_after_s, when present, is the polling interval and its absence means the status is final. The answer is read from stored state, so a dropped call or a timeout loses nothing.

Input Schema

NameRequiredDescriptionDefault
wait_sNooptional: block up to this many seconds (max 55) for the rollback to end and return the moment it does. 0 or absent returns the status at once
project_idNothe project id: reports the project's most recent rollback. For when the rollback_id is not at hand (the rollback_commit reply was lost, or the rollback was started from the dashboard or from an approved plan)
rollback_idNothe rollback_id that rollback_commit returned. Give this or project_id

Output Schema

NameRequiredDescriptionDefault
modeYeskeep_data or restore_data, as passed to rollback_commit
nextYeswhat to do now, in plain words
stepNothe step running now, or the step that failed
errorNoset when status is failed: the reason
stepsYes
commitNo
job_idYesthe deployment the rollback targets
statusYesrunning (not finished: the code may have moved and the data may not be restored yet), done (finished: production runs the target commit and, in restore_data mode, the app is running on the restored data), or failed (stopped before the end: message says what changed and what did not)
messageYes
point_idNo
waited_sNoseconds this call blocked (wait_s)
code_movedYestrue when production was switched to the target commit by this rollback. Can be true on a failed rollback
data_stateYeswhat this rollback did to the app's data: untouched (no disk was written), in_progress (the rollback is still working on the disks), restored (every disk was copied back and verified), partial (a disk was written and the restore is not whole: a copy stopped part-way, or one disk was restored and another was not), unknown (the rollback was cut while it worked on the disks)
project_idYes
started_atNo
finished_atNo
rollback_idYes
data_restoredYestrue only when data_state is restored: every disk was copied back and verified. It is false while the rollback runs, and false after a copy that stopped part-way even though that disk was overwritten: data_state says which
retry_after_sNowait at least this many seconds before calling get_rollback_status again; absent means the status is final
safety_point_idNothe restore point holding the data as it was just before this rollback overwrote it. rollback_commit with the canonical commit's job_id, mode=restore_data and this point_id puts that data back

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.4/5.0
Behavior5/5

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

Annotations already declare read-only, idempotent and non-destructive, and the description still adds substantial context: it decodes each status value, explains what 'failed' means (stopped, will not continue), names the diagnostic fields, gives polling semantics via retry_after_s absence meaning final, and notes the read is from stored state so a dropped call or timeout loses nothing. That last point is exactly the reassurance an agent needs for a polling loop.

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 purpose and the rollback_id-vs-project_id routing, which is the highest-value information. The middle is a dense run-on enumerating statuses and failure fields that could be trimmed, but nearly every clause carries actionable meaning.

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?

Even though an output schema exists and return values need not be explained, the description covers status states, failure semantics, polling cadence and the wait_s blocking tradeoff. Nothing an agent needs to call this correctly or interpret a failure is missing.

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 description coverage is 100% and the schema text for wait_s, project_id and rollback_id is near-identical to what the description says, so the description adds little parameter meaning beyond restating it. Baseline 3 is correct when the schema carries the parameter documentation.

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 ('progress and final result of a rollback') and immediately distinguishes the two lookup modes, rollback_commit for starting vs this tool for polling. An agent can separate it from rollback_commit, get_app_status and get_build_status 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 Guidelines4/5

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

Explicitly routes the caller: use rollback_id when you have it from rollback_commit, use project_id when the reply was lost or the rollback came from the dashboard or an approved plan. It also explains when to use wait_s versus returning at once. It does not contrast with other status tools, but the selection guidance within the tool is clear.

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