Gutenberg MCP

Build with WordPress blocks, through WordPress.

Read live block trees, stage typed changes, let the real Block Editor validate and serialize them, and keep a recoverable batch record from proposal through finalization.

Block Editor Queue

1Read saved block tree
2Create draft batch
3Add typed block spec
4Enable finalization
5WordPress editor serializes
6Verify final state

Why a queue exists

A block is more than its saved comment.

Core and third-party blocks can depend on editor-side JavaScript to validate attributes and serialize final markup. WPPilot stages the intended tree, then asks WordPress's own Block Editor runtime to finish it. That preserves the editor's contract and makes failure visible before a partial batch reaches live content.

  • Read the current block tree before replacement
  • Use registered block names and live attribute schemas
  • Keep the batch in draft until every target is present
  • Finalize static blocks with the WordPress editor runtime
  • Poll the batch to finalized, failed, or conflicted
  • Read back and inspect editor plus front end

Safe Gutenberg workflow

Six states from inspection to evidence.

The workflow is intentionally staged. A client can prepare, inspect, cancel, retry, or finalize a batch without pretending a queued change is already live.

  1. 01

    Check the finalizer

    Read the Block Editor Queue runtime before planning a static or native block write. If it is offline, open the queue page and keep it available.

  2. 02

    Read the current tree

    Use gutenberg-get-content to inspect the saved block tree and any non-terminal pending change for the target.

  3. 03

    Create a pending batch

    Create one recoverable batch for the coherent set of page changes. Draft batches do not touch live content.

  4. 04

    Add the typed block change

    Queue the replacement block tree against the exact post or template. Use registered block names and attributes from the installed site.

  5. 05

    Enable finalization

    Mark the complete batch ready only after every target is queued. The open Block Editor Queue then validates and serializes blocks with WordPress's own editor JavaScript.

  6. 06

    Verify the finished page

    Poll the batch to a terminal result, read the content back, then inspect the editor and front end at representative breakpoints.

11 current Gutenberg abilities

The live module is the inventory.

These names are generated from the plugin's current ability reference. The installed site, active policy, WordPress user, and runtime state remain authoritative.

wppilot/gutenberg-add-pending-change

Add Gutenberg Pending Change

Adds one replace-content target change to a draft Gutenberg pending batch, or auto-creates a draft batch when batch_id is omitted. Static/native blocks are finalized in a hidden editor iframe so registered third-party blocks can be serialized by their editor JavaScript. Queued changes are not live until gutenberg-enable-batch-finalization marks the batch ready and an open Block Editor Queue page completes it.

Guarded write

wppilot/gutenberg-create-pending-batch

Create Gutenberg Pending Batch

Creates an empty draft Gutenberg pending batch and reports the Block Editor Queue runtime with curl SSE/poll URLs. Draft batches are recoverable but not finalizable; after adding target changes, call gutenberg-enable-batch-finalization. If the runtime is offline, ask the user to open the generic Block Editor Queue page and keep it open while you work.

Write

wppilot/gutenberg-delete-pending-batch

Delete Gutenberg Pending Batch

Cancels a draft, ready, running, prepared, failed, or conflicted Gutenberg pending batch and its non-finalized items without touching target content.

Guarded write

wppilot/gutenberg-delete-pending-change

Delete Gutenberg Pending Change

Cancels one Gutenberg pending item without touching target content. The MVP batch page does not expose per-item cancellation, but agents can use this ability for recovery.

Guarded write

wppilot/gutenberg-enable-batch-finalization

Enable Gutenberg Batch Finalization

Marks a draft Gutenberg pending batch ready after all target changes are queued. If the Block Editor Queue page is open, it can pick up the batch automatically; otherwise the response tells the agent to ask the user to open the generic Block Editor Queue page. The response also includes token-gated SSE and poll URLs agents can watch with curl. Browser-serialized items are staged first; queued changes are still not live until the whole batch commits and reports finalized.

Guarded write

wppilot/gutenberg-get-content

Get Gutenberg Content

Reads the live saved Gutenberg post_content for one target and returns a compact parsed block tree. This also reports the Block Editor Queue runtime plus curl SSE/poll URLs so agents can ask the user to open the queue page before queueing static/native block changes. This does not read queued pending block_spec data; if a non-terminal Gutenberg queue item exists for the target, pending_gutenberg_change summarizes it separately.

Read

wppilot/gutenberg-get-finalization-url

Get Gutenberg Finalization URL

Returns the generic Block Editor Queue admin page URL for one ready or failed Gutenberg batch, plus the current finalizer runtime status and curl SSE/poll URLs. If the page is open and can finalize the batch, prefer watching the status URL instead of asking the user to do anything.

Read

wppilot/gutenberg-get-finalizer-runtime

Get Block Editor Queue Runtime

Reports whether the WPPilot Block Editor Queue admin page is open and heartbeating, including token-gated SSE and poll URLs that agents can watch with curl. Call this at the start of Gutenberg work: if the runtime is offline, ask the user to open the returned generic Block Editor Queue page URL and keep it open while static/native Gutenberg changes are queued and finalized.

Read

wppilot/gutenberg-get-pending-batch

Get Gutenberg Pending Batch

Returns compact status, target summaries, validation errors, Block Editor Queue runtime status, and curl SSE/poll URLs for one pending batch.

Read

wppilot/gutenberg-list-pending-batches

List Gutenberg Pending Batches

Lists compact queue state grouped by Gutenberg batch for agent recovery, plus the current Block Editor Queue runtime status and curl SSE/poll URLs. Full block specs are not returned.

Read

wppilot/gutenberg-write-content

Write Gutenberg Content

Directly writes Gutenberg post_content only when every supplied block is a registered WPPilot-owned dynamic-only block. Native/static Gutenberg blocks require browser JS finalization; queue them with gutenberg-add-pending-change, then call gutenberg-enable-batch-finalization and send the finalization link to the user.

Guarded write

Block-library depth

Use the queue with the schema for the blocks you actually installed.

GenerateBlocks, Kadence Blocks, Spectra, and other libraries register their own namespaces and attributes. Supported WPPilot Pro modules can expose setup checks, block catalogues, and schemas. The composition still lands through the Free Gutenberg workflow.

  • Confirm the block plugin and supported version are active
  • List registered blocks from the live site
  • Fetch the exact schema for each block type
  • Respect parent, ancestor, and context constraints
  • Queue the resulting tree through Gutenberg
  • Review recovery notices, responsive layout, and front-end assets

Gutenberg MCP FAQ

What can finalize, what must wait, and what Free includes.

What is Gutenberg MCP?

Gutenberg MCP is a set of typed operations an MCP client can use to read WordPress block content and coordinate staged block changes. WPPilot ships the core Gutenberg workflow in Free.

Why does WPPilot use a browser finalization queue?

Static and native blocks are validated and serialized by JavaScript registered in the WordPress block editor. The queue lets the real editor runtime produce the final markup instead of asking a PHP-only request to guess what a third-party block's JavaScript would do.

Can Gutenberg changes run without opening wp-admin?

WPPilot-owned dynamic-only blocks can use the direct write path. Native and third-party static blocks require the Block Editor Queue runtime. The live ability response reports whether that runtime is online and provides the finalization route.

Does Gutenberg MCP require WPPilot Pro?

No. The staged Gutenberg workflow and its current ability module ship in WPPilot Free. Pro block-plugin integrations add discovery and schemas for supported companion block libraries; they do not replace the Free queue.

Can an AI safely replace an existing block page?

Only after it reads the current tree, preserves the intended blocks, queues the smallest coherent replacement, and verifies the final editor and front end. A full-content replacement is still destructive and should be staged, reviewed, and backed up.

Your site · your policy · your AI client

Run one recoverable Gutenberg batch.

Begin with a draft page on staging, inspect the live tree and schemas, queue the smallest coherent change, and verify the editor plus the public page before scaling the workflow.