# Versions

<!-- Generated by scripts/gen-docs-mcp.mjs from the shared tool catalog. Do not edit by hand —
     edit the catalog in packages/shared/src/mcp.ts and regenerate. -->

## Tools

One tool covers every kind of object, named by `kind`. An edit seals itself as a version after a quiet period; `manage_version` with `action: "save"` records one now, and with `action: "restore"` seals the current state before rolling back, so a restore is itself reversible.

| Tool | What it does | |
|---|---|---|
| [`list_dashboard_versions`](#list_dashboard_versions) | List dashboard versions | Read-only |
| [`manage_version`](#manage_version) | Save or restore a version | Destructive write |

## list_dashboard_versions

`Read-only`

List a dashboard's recorded version history, newest first: snapshotId, when it was recorded, what triggered it (manual save, automatic settle, pre-restore/pre-archive), who, and a summary of what changed. Edits seal themselves about 15–20 minutes after the last change; until then `pendingAutoVersionAt` says when the pending one is due (absent when nothing is pending), and manage_version `save` seals it now. Pass a snapshotId to manage_version `restore` (kind 'dashboard') to roll back — it restores EVERYTHING on the board to that point, not one widget (remove_widget restore:true brings back one removed widget).

## manage_version

`Destructive write` · `Reaches outside Vistazo`

Save or restore a version of a dashboard, skill, notebook or library visualization. `action: 'save'` records the current state as a version NOW instead of waiting for the automatic capture (an edit seals itself about 15–20 minutes after the last change): use it before you rewrite something substantially, especially someone else's. `action: 'restore'` rolls back to `version`; the current state is sealed as a version FIRST, so a restore is itself reversible. Each action's rules are on `action`, and what each kind replies, restores, who may, and what it refuses is on `kind`. Not remove_widget restore:true or archive_dashboard restore:true, which un-hide something and change no content. Requires edit access.

### `action: save`

`save` records the current state of a dashboard, skill or notebook as a version RIGHT NOW. written:false means the current state already matches the latest version — success, not an error. Versions are listed by list_dashboard_versions (dashboards) and by get_skill / get_notebook (`versions`). A library visualization seals a version on every code edit, so it has nothing to save. An archived skill or notebook refuses.

### `action: restore`

`restore` rolls the object back to `version`: the snapshotId for a dashboard (from list_dashboard_versions) and the rev for the others (from the `versions` of get_skill / get_notebook / get_visualization). The current state is sealed as a version FIRST, so a restore is itself reversible.
