Version
DESTRUCTIVE

revert_recovery_operation

Undo a completed Disaster Recovery inside its window — a swapped channel put back, or the previous sign-in account restored.

A channel recovery is undone one swap at a time: name the resource_id to put back on its old chat, and every active member is re-admitted there again. An account relink is undone whole, moving sign-in back to the previous account, signing the creator out everywhere and opening a disputed-relink incident for support; name no resource_id. A bot replacement cannot be undone. The window is 24 hours from completion by default; revertible on the operation says whether it is still open. Only the creator who ran the recovery may undo it.

This tool is annotated destructive: a client that supports the annotation asks a human before running it. The REST twin is POST /v1/recovery/operations/{operation}/revert.

Requires ability

The token behind the MCP session must hold it, or the call is refused with TOKEN_MISSING_ABILITY.

The REST endpoint and this tool share one action, so validation, permissions and events are identical.

Delivered to every endpoint subscribed to it once the change is made.

Annotations

Destructive

A client that honours annotations asks a person before running it.

Arguments

operation_id*string

UUID of the completed recovery to undo, from `list_recovery_operations`.

resource_idstringoptional

For a channel recovery: UUID of the resource to put back on its old chat. Omit for an account relink.

What it returns

{  "data": {    "id": "9a4d2e71-5b38-4c6f-8e12-3d7c9b0a5f21",    "kind": "resources",    "kind_label": "Channels and Groups",    "status": "reverted",    "status_label": "Reverted",    "connector": "telegram",    "project_id": "7f3d1c92-8b45-4e6a-9d21-5c8e0a4b6f13",    "project_name": "Research Premium",    "grant_id": null,    "automatic": false,    "on_demand": true,    "failure_reason": null,    "started_at": "2026-09-12T10:00:00Z",    "completed_at": "2026-09-12T10:00:31Z",    "reverted_at": "2026-09-12T21:50:00Z",    "revertible": false,    "revert_window_ends_at": "2026-09-13T10:00:31Z"  },  "meta": {}}

How it fails

VALIDATION_FAILED

the window has closed, the swap is already put back, a bot replacement, a channel recovery with no resource_id, or not the creator's own recovery; the context carries the reason.

RESOURCE_NOT_FOUND

operation_id is not in this creator's ledger, or resource_id is not a resource they manage.

AUTHENTICATION_REQUIRED

no authenticated user on the request.

TOKEN_MISSING_ABILITY

token lacks project-recovery:update.

How is this guide?

Last updated on