---
title: "Get App Revision"
description: "Use this to read what an earlier revision contained before restoring it."
sidebar:
  order: 12
---

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

MCP name: `get_app_revision`

## Tool contract

```json
{
  "annotations": {
    "destructiveHint": false,
    "openWorldHint": false,
    "readOnlyHint": true,
    "title": "Get App Revision"
  },
  "description": "Use this to read what an earlier revision contained before restoring it. Returns the revision’s History entry and its source: a package revision returns `source.files`, a module-contract revision returns `source.module`, `source.ui`, and `source.styles`. Needs permission to change the app. A revision older than the plan’s History window is refused with `version_limit_exceeded`.",
  "execution": {
    "taskSupport": "forbidden"
  },
  "inputSchema": {
    "$schema": "https://json-schema.org/draft/2020-12/schema",
    "properties": {
      "app_id": {
        "description": "The app ID (UUID).",
        "type": "string"
      },
      "revision": {
        "description": "The revision to read.",
        "exclusiveMinimum": 0,
        "maximum": 9007199254740991,
        "type": "integer"
      }
    },
    "required": [
      "app_id",
      "revision"
    ],
    "type": "object"
  },
  "name": "get_app_revision",
  "outputSchema": {
    "$schema": "https://json-schema.org/draft/2020-12/schema",
    "additionalProperties": false,
    "properties": {
      "appId": {
        "type": "string"
      },
      "createdAt": {
        "description": "ISO timestamp the revision was saved.",
        "type": "string"
      },
      "current": {
        "description": "True for the desired revision, the newest source Charming accepted.",
        "type": "boolean"
      },
      "description": {
        "type": [
          "string",
          "null"
        ]
      },
      "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"
        ]
      },
      "ok": {
        "const": true,
        "type": "boolean"
      },
      "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"
      },
      "source": {
        "anyOf": [
          {
            "additionalProperties": false,
            "properties": {
              "files": {
                "additionalProperties": {
                  "type": "string"
                },
                "description": "The package file tree, keyed by path.",
                "propertyNames": {
                  "type": "string"
                },
                "type": "object"
              }
            },
            "required": [
              "files"
            ],
            "type": "object"
          },
          {
            "additionalProperties": false,
            "properties": {
              "module": {
                "type": "string"
              },
              "styles": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "ui": {
                "type": [
                  "string",
                  "null"
                ]
              }
            },
            "required": [
              "module",
              "ui",
              "styles"
            ],
            "type": "object"
          }
        ],
        "description": "A package revision returns `files`; a module-contract revision returns `module`, `ui`, and `styles`."
      }
    },
    "required": [
      "revision",
      "createdAt",
      "manifestVersion",
      "current",
      "live",
      "restorable",
      "ok",
      "appId",
      "description",
      "source"
    ],
    "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.
