GoBuildWP

GoBuildWP Free · 15 Gutenberg abilities

Gutenberg MCP for WordPress, finished by the block editor itself. Free, staged and recoverable.

GoBuildWP's Gutenberg MCP is free and gives an AI client 15 abilities for the WordPress block editor: read a page's block tree, stage a typed replacement in a recoverable batch, and let WordPress's own editor JavaScript validate and serialize the blocks before anything reaches live content.

Before connecting: WordPress 6.9+ and PHP 8.0+; keep the Block Editor Queue open in wp-admin for static blocks. Adding a new Block Note requires WordPress 7.1; existing notes can be read on earlier supported versions. Check the installed block assets and queue runtime before a write.

Free plugin, no account, WordPress 6.9+, Setup guide

Proposed sequence using source-declared abilities in GoBuildWP Free 1.18.6. Site, IDs, changes and outcomes are illustrative; no live client, native-editor or restore test is recorded here. Confirm the installed schema and policy separately. A confirmed call carries confirm: true, which the agent sets itself by default; a person approves only when Confirmation mode is “A person approves” or a Pro approval policy holds the call.

Why AI block markup breaks

Markup a model writes is checked against JavaScript it never ran

A static block is saved as the HTML its save function returns in the editor's JavaScript. When the editor opens a post it runs that function again on the stored attributes and compares the result with what was stored; if the two differ, by one class name or one attribute, the block is flagged as containing unexpected or invalid content and offered for recovery.

Block markup written by hand fails that check in predictable ways: an attribute the block's schema does not declare, a class the save function would not add, a child nested where the parent does not allow it, static inner HTML inside a dynamic block. Third-party blocks are harder still, because every library's save functions differ and change between versions.

So GoBuildWP does not guess. It stages the intended tree and hands it to an open Block Editor Queue page, where WordPress's own editor code serializes each block, and the markup that reaches the post is the markup the editor would have saved. Libraries such as GenerateBlocks, Kadence Blocks and Spectra have Pro modules that expose their block catalogues; the write still goes through this free queue.

Guard rails on block writes

  • Conflict check. A queued change remembers the post's content. If someone edits the post before finalization, the batch is marked conflicted and nothing is written.
  • All or nothing. If a target fails to save, the batch attempts to restore earlier writes. Restoration can fail; inspect the terminal batch result and every affected target before retrying.
  • Queued is not live. Draft batches never touch content; a batch finalizes only after enable-batch-finalization.
  • Direct writes limited. gutenberg-write-content accepts only GoBuildWP's own dynamic blocks.
Safety profiles and the change ledger

Safe Gutenberg workflow

Six steps from inspection to evidence

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

  1. Check the finalizer

    Read the Block Editor Queue runtime first. If it is offline, open the queue page in wp-admin and keep it open.

  2. Read the current tree

    Inspect the saved block tree and any pending change for the target page.

  3. Create a pending batch

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

  4. Queue the typed block change

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

  5. Enable finalization

    Mark the batch ready once every target is queued; the open editor validates and serializes the blocks.

  6. Verify the finished page

    Poll the batch to a result, read the content back, and check the editor and front end.

Other Gutenberg MCP tools

GravityKit Block MCP, a markup validator and GoBuildWP

GravityKit's Block MCP pairs a WordPress plugin with a Node.js server and edits posts as a block tree with a stable id for every block. pluginslab's wp-blockmarkup-mcp never touches a site: it validates markup against an index of core blocks. Each answers a different part of the invalid-block problem.

Gutenberg MCP tools compared
GravityKit Block MCPwp-blockmarkup-mcpGoBuildWP Free
Touches the live siteYes, through its own REST namespace, called from a local Node.js server.No: an index and validator for block markup.Yes, through a staged batch that the editor finalizes.
How markup is checkedRejects legacy blocks, validates both storage forms, and uses ETag checks against concurrent edits.Against a verified index of 121 core blocks.By the block editor's own JavaScript in an open wp-admin tab.
Third-party blocksLists registered block types; depth not documented.Not documented.Installed, runtime-registered blocks whose required editor scripts and assets load in the queue. Verify serialization and reopen behavior for the exact block/version; registration alone is not a compatibility test.
StagingAtomic batch writes; no staging step documented.Not applicable.Draft batches that leave content untouched until finalized.
UndoEvery write creates a WordPress revision, with a revert tool.Not applicable.Batches can be cancelled before they finalize; a post changed in the meantime is refused as a conflict.
RequirementsNode.js 20+, WordPress 6.0+, PHP 7.4+, HTTPS and an Application Password.Not documented.WordPress 6.9+, PHP 8.0+ and a wp-admin tab for static blocks.

Where the other route is stronger. GravityKit's server writes through its own REST API and does not describe any step that needs an open editor tab, which GoBuildWP's queue does for static blocks. Every write it makes leaves a WordPress revision you can revert to, and stable per-block ids survive reordering. For unattended edits to core blocks it is worth testing.

Competitor cells come from the vendors' own pages, seen 29 September 2026; “not documented” means the source is silent, not that the feature is missing: GravityKit/block-mcp, pluginslab/wp-blockmarkup-mcp.

All 15, all free

Every Gutenberg ability in GoBuildWP Free

Existing Block Notes can be read on earlier supported versions; adding a new block anchor requires WordPress 7.1.

Reads · 6
Gutenberg abilities: Reads
AbilityWhat it doesRead / Write / DestructiveEdition
gutenberg-get-contentGet Gutenberg ContentReadFree
gutenberg-get-finalization-urlGet Gutenberg Finalization URLReadFree
gutenberg-get-finalizer-runtimeGet Block Editor Queue RuntimeReadFree
gutenberg-get-pending-batchGet Gutenberg Pending BatchReadFree
gutenberg-list-pending-batchesList Gutenberg Pending BatchesReadFree
list-block-notesList Block NotesReadFree
Writes · 4
Gutenberg abilities: Writes
AbilityWhat it doesRead / Write / DestructiveEdition
add-block-noteAdd Block NoteWriteFree
gutenberg-create-pending-batchCreate Gutenberg Pending BatchWriteFree
reply-block-noteReply to Block NoteWriteFree
resolve-block-noteResolve Block NoteWriteFree
Destructive effects; inspect confirmation policy · 5
Gutenberg abilities: Destructive effects; inspect confirmation policy
AbilityWhat it doesRead / Write / DestructiveEdition
gutenberg-add-pending-changeAdd Gutenberg Pending ChangeDestructiveFree
gutenberg-delete-pending-batchDelete Gutenberg Pending BatchDestructiveFree
gutenberg-delete-pending-changeDelete Gutenberg Pending ChangeDestructiveFree
gutenberg-enable-batch-finalizationEnable Gutenberg Batch FinalizationDestructiveFree
gutenberg-write-contentWrite Gutenberg ContentDestructiveFree

Names drop the wppilot/ prefix. All 15 ship in GoBuildWP Free; no licence is involved. Supported writes are recorded in the change ledger with a redacted before and after, and reversible ones can be rolled back.

Queue abilities

The Gutenberg abilities behind one staged edit

Reads
6
Writes
4
Destructive effects
5
  • gutenberg-get-content

    Reads the saved post content as a compact parsed block tree, plus the queue's runtime status.

  • gutenberg-get-finalizer-runtime

    Says whether the Block Editor Queue page is open and heartbeating, before any static block write is planned.

  • gutenberg-create-pending-batch

    A recoverable draft batch. Draft batches never touch live content.

  • gutenberg-add-pending-change

    Queues a replacement block tree for one target; static blocks are finalized in a hidden editor frame.

  • gutenberg-enable-batch-finalization

    Marks the batch ready only after every target is queued, so a half-built batch cannot land.

  • gutenberg-write-content

    The direct path, allowed only when every block is a GoBuildWP-owned dynamic block.

Block work

Block editor jobs to hand to an agent

  • Rework a section of a block page

    Read the tree, queue the smallest coherent replacement, and let the editor finalize it.

    Example prompt: Replace the About page intro with a media and text block, image on the left.

  • Build with the blocks you installed

    Pull the block catalogue and schema from a supported library, then compose with it.

    Example prompt: List the GenerateBlocks blocks on this site, then build a three-card feature row with them.

  • Recover a stuck batch

    List pending batches, see which item failed and why, and cancel or retry without touching content.

    Example prompt: Show me any Gutenberg batches that did not finish, and why.

The site editor, not just the post editor

Block themes: Global Styles, templates, patterns and menus

From GoBuildWP Free 1.18.0, an agent can work on what the site editor manages, not only on posts. It can read and change Global Styles: colour palettes, font families, sizes and spacing, and the styles for the site, its elements and its blocks. It can list, read, change and revert templates and template parts, which is where a block theme keeps its header and footer. It can list, create and change the site's own patterns, and list and change block navigation menus. This needs WordPress 6.9; Global Styles also works on classic themes that support theme.json.

Every call goes through WordPress's own REST controllers inside the request. Core validates the input, checks the user's capabilities, filters the HTML, and makes a customised copy of a theme template exactly as the site editor would. A Global Styles change is merged into what is saved unless you ask to replace it, and any key WordPress refuses is dropped and reported back rather than lost without a word.

Undoing a site editor change

Supported site-editor writes can retain before-images. Inspect the exact entry and restore handler before requesting undo; later changes and external effects still need separate review. Undoing the first save of a theme template, or a pattern the agent created, deletes the copy that save made, so the theme's original shows again. Reverting a template to the theme's version is treated as destructive and needs a confirmation; undoing the revert saves the customisation back.

Building the header of a block theme

The same site header builder from GoBuildWP Free 1.18.0 works on block themes. The AI designs the header as block markup; GoBuildWP saves it as the theme's header template part, makes a translated part and a navigation menu for each Polylang language with the language switcher as the menu's last item, then checks the served page of every language and reports problems against the block that caused them. Undo deletes the parts and menus it made and puts the header part back as it was, or back to the theme's own file.

Style a block-theme header with block attributes rather than a style block: a custom style block only saves for people allowed to post unfiltered HTML. A classic theme without Elementor Pro is refused, with what that theme supports instead.

FAQ

Gutenberg MCP questions about invalid blocks and the queue

Builder MCP guides: Elementor, Bricks, Breakdance, Divi, Oxygen, Beaver Builder, WPBakery, Flatsome, Etch, Mosaic.

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. GoBuildWP ships the Gutenberg workflow in its free plugin.

Why does AI-written block markup show "This block contains unexpected or invalid content"?

Because the editor rebuilt the block from its attributes and got different HTML from what was stored. Markup typed by a model rarely matches a save function character for character. GoBuildWP has the editor produce the markup itself, so the stored HTML is what the save function returns.

Why does GoBuildWP 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 block's JavaScript would do.

Can Gutenberg changes run without opening wp-admin?

GoBuildWP's own dynamic-only blocks can use the direct write path. Native and third-party static blocks need the Block Editor Queue runtime, and the abilities report whether it is online.

Is Gutenberg MCP free?

Yes. The staged Gutenberg workflow ships in GoBuildWP Free. Pro block-library modules add catalogues and schemas for supported libraries; they do not replace the free queue.

Is this the same as the WordPress MCP Adapter?

No. The MCP Adapter is the WordPress project's bridge between abilities and MCP. GoBuildWP is a plugin that exposes its own abilities, including these Gutenberg ones, with safety profiles and a change ledger.

Requirements

The browser tab, the WordPress version and the limits

Requirements

WordPress
6.9 or newer with the block editor, PHP 8.0 or newer.
Browser
A wp-admin tab with the Block Editor Queue open for static and third-party blocks.
GoBuildWP
Free. All 15 Gutenberg abilities ship in the free plugin.
Block Notes
WordPress 7.1 for new note anchoring; existing note reads are supported earlier.
Current versions
GoBuildWP Free 1.18.6.

Limits

  • Native and third-party static blocks need the Block Editor Queue page open in a browser; only GoBuildWP's dynamic blocks can be written directly.
  • A full-content replacement is still destructive. Read first, stage, review, and keep a backup.
  • Queued is not live. Poll the batch to a finished state and read the page back before calling it done.

First run

  1. Install GoBuildWP Free

    WordPress 6.9+ and PHP 8.0+; the site becomes its own MCP endpoint.

  2. Connect a client

    OAuth 2.1 in the browser, or an Application Password where the client cannot sign in.

  3. Open the Block Editor Queue

    Keep the queue page open in wp-admin; gutenberg-get-finalizer-runtime reports when it is heartbeating.

  4. Queue one small change

    Replace one section of a draft, poll the batch to finalized, and read the page back.

Setup guide · OAuth 2.1 · Application Passwords · Client guides

Stage one block change and watch the editor finish it.

Open the queue page, queue a small replacement on a draft, and read the finalized blocks back before calling it done.