Publish pages
publish_pagesUse this tool when the user asks to publish several pages at once: 「全部公開して」「このガイドページをまとめて公開して」, "publish these 20 pages", "make the new FAQ pages live" (ページの一括公開, ホームページ, Webサイト, ランディングページ).
Publishes the latest saved version of each page (siteIds, up to 10 per call) at its live URL, in two calls:
dryRun: true publishes nothing. Per page it gives the live URL, the publish check's warnings, and a status: ready, already_live, or blocked (with the reason). headroom has the plan's room left, and confirmToken works for these same pages for a short time (until expiresAt).
The real call takes the same siteIds and that confirmToken; without a valid token nothing is published (confirm_token_required, confirm_token_invalid), and a page saved after the dry run refuses the token (pages_changed): run the dry run again and show the user what changed. It is the step for after the user has seen the dry run and asked to publish. Per page the status is published, already_live, failed (with the reason), or limit_reached: a plan limit stopped the batch there, and the pages before it are live. summary counts each status. Like publish_site in production, the real call changes what anyone on the internet sees. idempotencyKey: a new id per batch; the same call sent again with the same key and token, after a timeout, returns the batch already run. A bigger job runs as several calls of up to 10 pages each, each with its own dry run. Every answer names the workspace (brand.id, name, host); with expectedBrandId, a connection that now works on another workspace changes nothing (brand_mismatch).
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| dryRun | No | true: check the pages and get a confirmToken; nothing is published | |
| siteIds | Yes | The pages' ids (get_brand or list_pages) | |
| confirmToken | No | The confirmToken from a dry run of the same siteIds; the real call needs it | |
| idempotencyKey | No | A new id for this batch, such as a UUID; the same one again only to retry | |
| expectedBrandId | No | The workspace's id from get_brand. When the connection now works on another workspace (the dashboard's active workspace was switched), the call changes nothing and answers brand_mismatch. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| brand | Yes | ||
| pages | Yes | ||
| dryRun | Yes | ||
| summary | Yes | ||
| guidance | No | ||
| expiresAt | No | ||
| confirmToken | No |