---
title: "List App Revisions"
description: "Use this to see an app’s History before undoing a change."
sidebar:
  order: 14
---

<!-- Generated by apps/docs/scripts/generate-mcp-reference.mjs. -->

MCP name: `list_app_revisions`

## Tool contract

```json
{
  "annotations": {
    "destructiveHint": false,
    "openWorldHint": false,
    "readOnlyHint": true,
    "title": "List App Revisions"
  },
  "description": "Use this to see an app’s History before undoing a change. Lists revisions newest first, starting with the current one; `live` marks the revision serving visitors and `restorable` the ones restore_app_revision accepts. Needs permission to change the app. The list stops at the plan’s History window (`historyLimit`); page with `before` set to `nextBefore`.",
  "execution": {
    "taskSupport": "forbidden"
  },
  "inputSchema": {
    "$schema": "https://json-schema.org/draft/2020-12/schema",
    "properties": {
      "app_id": {
        "description": "The app ID (UUID).",
        "type": "string"
      },
      "before": {
        "description": "Return revisions older than this one. Pass the previous page’s `nextBefore`.",
        "exclusiveMinimum": 0,
        "maximum": 9007199254740991,
        "type": "integer"
      },
      "limit": {
        "description": "Page size. Defaults to 50, at most 200.",
        "exclusiveMinimum": 0,
        "maximum": 200,
        "type": "integer"
      }
    },
    "required": [
      "app_id"
    ],
    "type": "object"
  },
  "name": "list_app_revisions",
  "outputSchema": {
    "$schema": "https://json-schema.org/draft/2020-12/schema",
    "additionalProperties": false,
    "properties": {
      "activeRevision": {
        "maximum": 9007199254740991,
        "minimum": 0,
        "type": "integer"
      },
      "appId": {
        "type": "string"
      },
      "currentRevision": {
        "description": "The desired revision. Pass it as expected_revision to restore_app_revision.",
        "maximum": 9007199254740991,
        "minimum": 0,
        "type": "integer"
      },
      "historyLimit": {
        "description": "How many prior revisions the owner’s plan keeps in History.",
        "maximum": 9007199254740991,
        "minimum": 0,
        "type": "integer"
      },
      "items": {
        "items": {
          "additionalProperties": false,
          "properties": {
            "createdAt": {
              "description": "ISO timestamp the revision was saved.",
              "type": "string"
            },
            "current": {
              "description": "True for the desired revision, the newest source Charming accepted.",
              "type": "boolean"
            },
            "live": {
              "description": "True for the revision serving visitors. A package build is not live until it publishes.",
              "type": "boolean"
            },
            "manifestVersion": {
              "description": "The contract the revision was written against: `2026-10-25` for a package, an earlier date for a module contract.",
              "type": [
                "string",
                "null"
              ]
            },
            "restorable": {
              "description": "True when restore_app_revision accepts the revision. The current and live revisions are never restorable.",
              "type": "boolean"
            },
            "revision": {
              "maximum": 9007199254740991,
              "minimum": 0,
              "type": "integer"
            }
          },
          "required": [
            "revision",
            "createdAt",
            "manifestVersion",
            "current",
            "live",
            "restorable"
          ],
          "type": "object"
        },
        "type": "array"
      },
      "nextBefore": {
        "anyOf": [
          {
            "maximum": 9007199254740991,
            "minimum": -9007199254740991,
            "type": "integer"
          },
          {
            "type": "null"
          }
        ],
        "description": "Pass as `before` to read the next page. Null when the plan’s window has no older revisions."
      },
      "ok": {
        "const": true,
        "type": "boolean"
      }
    },
    "required": [
      "ok",
      "appId",
      "currentRevision",
      "activeRevision",
      "historyLimit",
      "items",
      "nextBefore"
    ],
    "type": "object"
  }
}
```

Found a bug or need a feature? [Tell us](/docs/capabilities/feedback) with `submit_feedback` or `POST /app/{id}/feedback`. Your feedback shapes what we build next.
