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.
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.
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.
Read the current tree
Inspect the saved block tree and any pending change for the target page.
Create a pending batch
One recoverable batch for the coherent set of changes. Draft batches do not touch live content.
Queue the typed block change
Use registered block names and attributes from the installed site, against the exact post or template.
Enable finalization
Mark the batch ready once every target is queued; the open editor validates and serializes the blocks.
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.
| GravityKit Block MCP | wp-blockmarkup-mcp | GoBuildWP Free | |
|---|---|---|---|
| Touches the live site | Yes, 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 checked | Rejects 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 blocks | Lists 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. |
| Staging | Atomic batch writes; no staging step documented. | Not applicable. | Draft batches that leave content untouched until finalized. |
| Undo | Every 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. |
| Requirements | Node.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
| Ability | What it does | Read / Write / Destructive | Edition |
|---|---|---|---|
gutenberg-get-content | Get Gutenberg Content | Read | Free |
gutenberg-get-finalization-url | Get Gutenberg Finalization URL | Read | Free |
gutenberg-get-finalizer-runtime | Get Block Editor Queue Runtime | Read | Free |
gutenberg-get-pending-batch | Get Gutenberg Pending Batch | Read | Free |
gutenberg-list-pending-batches | List Gutenberg Pending Batches | Read | Free |
list-block-notes | List Block Notes | Read | Free |
Writes · 4
| Ability | What it does | Read / Write / Destructive | Edition |
|---|---|---|---|
add-block-note | Add Block Note | Write | Free |
gutenberg-create-pending-batch | Create Gutenberg Pending Batch | Write | Free |
reply-block-note | Reply to Block Note | Write | Free |
resolve-block-note | Resolve Block Note | Write | Free |
Destructive effects; inspect confirmation policy · 5
| Ability | What it does | Read / Write / Destructive | Edition |
|---|---|---|---|
gutenberg-add-pending-change | Add Gutenberg Pending Change | Destructive | Free |
gutenberg-delete-pending-batch | Delete Gutenberg Pending Batch | Destructive | Free |
gutenberg-delete-pending-change | Delete Gutenberg Pending Change | Destructive | Free |
gutenberg-enable-batch-finalization | Enable Gutenberg Batch Finalization | Destructive | Free |
gutenberg-write-content | Write Gutenberg Content | Destructive | Free |
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-contentReads the saved post content as a compact parsed block tree, plus the queue's runtime status.
gutenberg-get-finalizer-runtimeSays whether the Block Editor Queue page is open and heartbeating, before any static block write is planned.
gutenberg-create-pending-batchA recoverable draft batch. Draft batches never touch live content.
gutenberg-add-pending-changeQueues a replacement block tree for one target; static blocks are finalized in a hidden editor frame.
gutenberg-enable-batch-finalizationMarks the batch ready only after every target is queued, so a half-built batch cannot land.
gutenberg-write-contentThe 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
Install GoBuildWP Free
WordPress 6.9+ and PHP 8.0+; the site becomes its own MCP endpoint.
Connect a client
OAuth 2.1 in the browser, or an Application Password where the client cannot sign in.
Open the Block Editor Queue
Keep the queue page open in wp-admin; gutenberg-get-finalizer-runtime reports when it is heartbeating.
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.