---
title: "MCP Tools Reference — PageWeave"
---

> For the full documentation index, see [PageWeave Documentation](https://pageweave.dev/docs) or fetch [llms.txt](https://pageweave.dev/llms.txt).

# Releases

A **release** is an immutable snapshot of the latest versions of all pages, components, snippets, and the theme into a JSONB manifest. Creating one changes nothing live; attaching it to an environment freezes that environment to the manifest. Rollback = attach an older release. Every release has a permanent `*.r.pageweave.site` permalink for QA.

## Actions

### create_release

Snapshot the latest versions of all pages, component instances, snippets, and the theme into a new release. Returns the release number and `*.r.pageweave.site` permalink.

**Parameters:**
- `website` — Website subdomain, domain, or UUID
- `note` — Optional note describing the release

### list_releases

List releases, newest first. Each shows its permalink and which environments currently serve it.

### get_release

Get a release's manifest summary: how many pages, components, snippets, whether it freezes a theme version, and which environments serve it.

### attach_release

Attach a release to an environment so that environment serves the release's frozen manifest — this is how changes go live on a surface. Re-attaching an older release rolls the environment back. Requires user confirmation.

**Parameters:**
- `website` — Website subdomain, domain, or UUID
- `environment` — Environment name or `default`
- `release` — Release number

### detach_release

Detach the current release from an environment, returning it to track-latest mode (serves the newest versions directly). Requires user confirmation.

## Serving asymmetry

A release freezes exact versions for everything in the manifest, but per content type:

- **Pages** — a page absent from the manifest **404s** on the attached environment (it was created after the release).
- **Components** (header/footer/html_head) — an instance absent from the manifest is **excluded** (no chrome where the release has none).
- **Snippets** — absent from the manifest **falls back to the live version** (a dangling ref keeps rendering rather than breaking).
- **Theme** — absent from the manifest **falls back to the live theme**.

Environments without a release serve the newest versions directly. Release permalinks are noindex and excluded from analytics.

## OAuth Scopes

| Action | Scope |
|--------|-------|
| list, get | `release:read` |
| create, attach, detach | `release:write` |

