GoBuildWP

Blocks and site design · 4 modules

WordPress Block Builder MCP that writes blocks WordPress can validate.

A WordPress block builder MCP starts by reading the installed block library, because every block plugin defines its own attributes. Schema readers report what the installed plugin registers. Ordinary composition uses Free's browser finalization queue; the separate Pro Kadence pattern-insert route writes eligible markup directly. Check assets, terminal results and the native editor for the exact route.

What goes wrong without a plugin-aware module

  1. Guessed block attributes that do not match the installed schema
  2. Serialized changes published without WordPress finalization
  3. Blocks reviewed without the active theme and responsive styles

Why it matters

What plugin-aware changes for blocks and site design

Gutenberg blocks are serialised as HTML comments carrying a JSON attribute payload, and every block plugin defines its own attribute schema. An attribute name that is close but not exact produces a block WordPress marks as invalid, which readers see as a recovery notice rather than the layout that was intended.

A first safe workflow

Ask the agent which blocks the site actually has registered before asking it to build anything, because the answer is rarely the list you expect once a theme and two plugins have each added their own. Then have it compose one section, open the editor, and confirm WordPress raises no validation warning. That single loop tells you more than any amount of planning.

How to tell it worked

Open the post in the block editor and look for validation warnings before you look at the front end. Then check the rendered page with the active theme's styles applied, because a block plugin and a theme can each contribute rules that only collide once both are loaded.

Worked example

Add a GenerateBlocks section to an existing post and have WordPress accept the blocks as valid.

GenerateBlocks, whose module only reads the block catalogue. The new section is written through the Free block-editor queue, which is the part most people do not expect; Kadence's pattern insert, in the questions below, is a direct route that skips it.

  1. wppilot/generateblocks-check-setupPro

    Confirms GenerateBlocks is active, whether GenerateBlocks Pro is too, and how many blocks each namespace registers. If the free plugin is missing, the session stops here.

  2. wppilot/generateblocks-list-blocksPro

    Lists the generateblocks/* and generateblocks-pro/* blocks with their parent and ancestor hints, so the agent knows which block may sit inside which.

  3. wppilot/generateblocks-get-block-schemaPro

    Returns the attribute schema for the one block it intends to use, straight from the block type WordPress registered, including enum values and defaults.

  4. wppilot/gutenberg-get-contentFree

    Reads the post's saved blocks as a tree and reports whether the Block Editor Queue page is open to finalise changes.

  5. wppilot/gutenberg-add-pending-changeFree

    Queues the new section in a draft batch. Nothing is live yet; the blocks are serialised later by the editor's own JavaScript.

  6. wppilot/gutenberg-enable-batch-finalizationFree

    Marks the batch ready for the open Block Editor Queue to validate and serialize. Poll to a terminal result and read every target back; a commit failure triggers attempted restoration, which can also fail.

What to check yourself. Open the post in the block editor and confirm no block shows a validation warning, then view it on the front end with the theme's styles loaded. A block placed outside the parent its schema asks for can still render while its interactive behaviour quietly fails.

Modules

4 modules compared

Each module loads only when its plugin is active and needs GoBuildWP Pro. Open a module for its full ability list, requirements and safety notes.

Blocks and site design modules, editions and ability counts
ModuleEditionAbilitiesInspect / change / destructiveCovers
GenerateBlocksPro33 / 0 / 0setup check, block discovery, block schemas, Gutenberg pending changes
Kadence BlocksPro54 / 1 / 0setup check, block discovery, block schemas, Gutenberg pending changes
SpectraPro2010 / 4 / 6block discovery and schemas, block activation, editor settings, form blocks
Spectra OnePro2213 / 1 / 8theme information, theme settings, color palettes, typography

Picking a block library for agent-built pages

Four modules: three block plugins and one block theme

This category groups products that all live in the block editor but do quite different jobs, so compare them by what an agent can actually change in each.

  • GenerateBlocks is the leanest. Its module only reads: setup, the block list and each block's attribute schema. New GenerateBlocks sections are composed through the Free block-editor queue, and styles are compiled to a stylesheet rather than stored inline.
  • Kadence Blocks adds a second route. Besides queued composition, kadence-insert-pattern places a ready Design Library or local pattern directly into a post, and rollback-change takes it out again.
  • Spectra is managed at the plugin level: popups and their display conditions, which blocks are switched on, editor settings and how Google Fonts load. Most of its static blocks define their attributes in JavaScript, so their schema read returns little, while dynamic blocks such as forms and post grids return the full map.
  • Spectra One is a block theme, not a block plugin. Its module writes the palette, typography, style variations, navigation, header and footer patterns and per-post display settings.

Which block library gives an agent the most to work with

For pages an agent will build from scratch, schema quality matters most. GenerateBlocks and Kadence Blocks both return attribute schemas straight from the registered block types, which is what lets an agent write blocks WordPress accepts as valid. Kadence's pattern route is the fastest way to a finished-looking section, with the caveat that licence-gated sections are listed but never inserted, and patterns that create their own posts, such as Kadence forms, are refused.

Spectra suits a site where the agent manages popups and site-wide block settings more than it composes layouts. If a site runs both Spectra and the Spectra One theme, pick one of them to configure fonts, since both can load the same Google Font family.

Undo in the block editor depends on the route the change took

People expect block changes to be easy to reverse because the editor has revisions. Through an agent, it depends on which path wrote the change:

  • Queued block content has no before-image in the change ledger. For a published page on GoBuildWP Pro, compose in a working copy with working-copy-create, inspect it with working-copy-preview, then publish; that keeps the live page untouched until you decide.
  • A Kadence pattern insert keeps existing blocks byte for byte and can be rolled back, although images you uploaded afterwards stay.
  • Deleting a Spectra popup is permanent, with no trash, and needs confirm.
  • Spectra One palette and style-variation writes can be restored from a before-image of the global-styles post. Applying a design snapshot, editing navigation, switching a header or footer pattern and installing a font are recorded as irreversible.

Where block styling goes wrong without an error

Block libraries fail quietly in ways a validation check does not catch. GenerateBlocks Pro blocks lose their own css attribute when the dynamic stylesheet is built, so styling belongs on the nearest wrapper element. Under the Kadence theme, Kadence blocks expect the theme's own palette slugs while core blocks expect the theme.json ones, so a colour that looks right in one block does nothing in the next. Disabling a Spectra block hides it from the inserter and strips its styles and scripts, yet copies already on pages still render as unstyled HTML.

After any block change, run verify-rendered-page for a server-side check, then open the page in a browser. Interactive blocks such as tabs, accordions and sliders need a real click to prove they work.

Keeping block libraries apart from page builders

A page belongs to one editor. Kadence pattern inserts refuse pages whose layout belongs to Elementor, Beaver Builder, Divi, Bricks, WPBakery, Oxygen or Breakdance, so pattern markup never lands under a builder's own data. Apply the same rule to every prompt: ask the agent which editor owns a page before it adds anything. If the site's pages are mostly built in a visual builder, the page builder modules are the ones to compare, and block libraries matter only for posts and templates the builder does not own.

FAQ

Blocks and site design and AI, answered

Why do blocks need a dedicated module?

Each block plugin defines its own attribute schema, and WordPress marks a block invalid when the attributes do not match. Discovering the real schema before writing is the difference between a working layout and a recovery notice on a live page.

Can an agent edit reusable patterns and synced blocks?

Where the block plugin exposes that surface, yes. Treat a change to a synced pattern as a change to every page using it, and check one of those pages afterwards rather than only the pattern itself.

Do block changes need to be finalised in the browser?

Sometimes. WordPress performs part of block validation client-side, so a staged change can look complete over the API and still need the editor opened once before it is settled.

Do the GenerateBlocks and Kadence Blocks modules write content?

Their block-catalogue and schema abilities are readers. Ordinary new block composition uses the Free pending-batch workflow and an open logged-in finalizer. The separate Pro Kadence Patterns surface can insert eligible Design Library markup into post_content directly; review its dependency checks, returned external images and post-content-only recovery separately. Do not treat every block-library operation as read-only or queued.

Why does finalising a batch need an admin page open?

Some block markup can only be produced by the block's editor JavaScript, which runs in a browser, not in PHP. The Block Editor Queue page is that browser: while it is open it picks up ready batches, serialises the blocks in a hidden editor frame and commits them. If it is closed, the batch waits and the agent is told to ask you to open it.

Can an agent insert a ready-made Kadence pattern?

Yes. wppilot/kadence-insert-pattern places one Design Library or local pattern at the start, the end or after a given top-level block, keeps the existing blocks byte for byte, and renames Kadence uniqueIDs that would clash. Patterns that need a Kadence licence are refused, and the insert is undone with wppilot/rollback-change.

Start in Read Only, then add what the site runs

Connect your AI client to the free MCP foundation and check what it can see. Add Pro when a job needs the module for your installed plugin.