# canvas_restore

Restore a canvas session to a previously saved checkpoint.

Agent View of the PolicyLayer registry record for `canvas_restore`. HTML page: https://policylayer.com/tools/cowork-os/canvas-restore

## Facts

- Tool: `canvas_restore`
- Server: CoWork OS (`CoWork-OS/CoWork-OS`) — https://policylayer.com/tools/cowork-os.md
- Homepage: https://github.com/CoWork-OS/CoWork-OS
- Risk category: Write (Medium risk)
- Registry record: grade F, identity unverified
- Server rate-limited: no
- Parameters: 0
- Recommended policy verdict: Rate-limited

## Example call (MCP tools/call, JSON-RPC 2.0)

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "canvas_restore",
    "arguments": {}
  }
}
```

## Why canvas_restore is rated Medium

This tool restores (overwrites) the current canvas session state with a previously saved checkpoint. While restoration is reversible (a new checkpoint can be saved), it modifies application state and could lose unsaved work if misused. This is Write-category behavior (state modification) rather than Read (no modification), and less severe than Destructive (the original checkpoint remains available).

From the tool's own definition: "Tool name 'canvas_restore' and description 'Restore a canvas session to a previously saved checkpoint' indicate loading/restoring state from a saved point, which modifies the current canvas state by replacing it with prior data."

## Use case

AI agents use canvas_restore to create or update resources in CoWork OS, usually the action step of a workflow, after the agent has gathered context. Every call changes real data in your CoWork OS environment.

## Recommended policy (PolicyLayer)

Verdict: **Rate-limited**. Enforced by the PolicyLayer MCP gateway (https://policylayer.com/mcp-gateway) before a call reaches CoWork OS:

```json
{
  "version": "1",
  "default": "deny",
  "tools": {
    "canvas_restore": {
      "limits": [
        {
          "counter": "canvas_restore_rate",
          "window": "minute",
          "max": 30,
          "scope": "grant"
        }
      ]
    }
  }
}
```

## Other tools on CoWork OS (341)

- `cancel_agent` — Destructive — https://policylayer.com/tools/cowork-os/cancel-agent.md
- `cancel_video_generation_job` — Destructive — https://policylayer.com/tools/cowork-os/cancel-video-generation-job.md
- `cloud_sandbox_delete` — Destructive — https://policylayer.com/tools/cowork-os/cloud-sandbox-delete.md
- `delete_file` — Destructive — https://policylayer.com/tools/cowork-os/delete-file.md
- `disable_macos_launch_agents` — Destructive — https://policylayer.com/tools/cowork-os/disable-macos-launch-agents.md
- `domain_dns_delete` — Destructive — https://policylayer.com/tools/cowork-os/domain-dns-delete.md
- `google-workspace.calendar_event_delete` — Destructive — https://policylayer.com/tools/cowork-os/google-workspace.calendar-event-delete.md
- `google-workspace.slides_delete_slide` — Destructive — https://policylayer.com/tools/cowork-os/google-workspace.slides-delete-slide.md
- `google-workspace.tasks_clear_completed` — Destructive — https://policylayer.com/tools/cowork-os/google-workspace.tasks-clear-completed.md
- `google-workspace.tasks_delete` — Destructive — https://policylayer.com/tools/cowork-os/google-workspace.tasks-delete.md
- `google-workspace.tasks_lists_delete` — Destructive — https://policylayer.com/tools/cowork-os/google-workspace.tasks-lists-delete.md
- `kg_delete_edge` — Destructive — https://policylayer.com/tools/cowork-os/kg-delete-edge.md
- `kg_delete_entity` — Destructive — https://policylayer.com/tools/cowork-os/kg-delete-entity.md
- `skill_delete` — Destructive — https://policylayer.com/tools/cowork-os/skill-delete.md
- `supermemory_forget` — Destructive — https://policylayer.com/tools/cowork-os/supermemory-forget.md
- `blender.render_view` — Execute — https://policylayer.com/tools/cowork-os/blender.render-view.md
- `browser_act_batch` — Execute — https://policylayer.com/tools/cowork-os/browser-act-batch.md
- `browser_attach` — Execute — https://policylayer.com/tools/cowork-os/browser-attach.md
- `browser_back` — Execute — https://policylayer.com/tools/cowork-os/browser-back.md
- `browser_click` — Execute — https://policylayer.com/tools/cowork-os/browser-click.md
- `browser_close` — Execute — https://policylayer.com/tools/cowork-os/browser-close.md
- `browser_close_tab` — Execute — https://policylayer.com/tools/cowork-os/browser-close-tab.md
- `browser_drag` — Execute — https://policylayer.com/tools/cowork-os/browser-drag.md
- `browser_emulate` — Execute — https://policylayer.com/tools/cowork-os/browser-emulate.md
- `browser_evaluate` — Execute — https://policylayer.com/tools/cowork-os/browser-evaluate.md
- `browser_fill` — Execute — https://policylayer.com/tools/cowork-os/browser-fill.md
- `browser_forward` — Execute — https://policylayer.com/tools/cowork-os/browser-forward.md
- `browser_handle_dialog` — Execute — https://policylayer.com/tools/cowork-os/browser-handle-dialog.md
- `browser_hover` — Execute — https://policylayer.com/tools/cowork-os/browser-hover.md
- `browser_navigate` — Execute — https://policylayer.com/tools/cowork-os/browser-navigate.md
- …and 311 more: https://policylayer.com/tools/cowork-os.md

## For agents

This record is a snapshot. Live verdicts and the full registry:

- Check every server in your MCP config at once: `npx -y policylayer stack`
- Vet a server before you add it: install the mcp-precheck skill — `npx skills add https://policylayer.com` (skill text: https://policylayer.com/skill.md)
- Query the registry over MCP: endpoint `https://api.policylayer.com/mcp` — tools `check_mcp_server`, `check_mcp_stack`, `check_tool`, `search_registry`, `get_change_events`

---

Source: the PolicyLayer MCP registry — one continuously verified record per MCP server. Full record: https://policylayer.com/registry?q=cowork-os · API: https://policylayer.com/registry/api · Policy library: https://policylayer.com/policies/cowork-os
