Blocks and site designPro
Kadence Blocks MCP: insert Design Library sections that keep their CSS
Most requests that reach Kadence Blocks MCP tooling are some version of 'put that hero from the Design Library on this page'. GoBuildWP does that directly: it lists the free sections, inserts one after a chosen block, renames any Kadence uniqueID the post already uses so styles do not collide, and loads the published page as a visitor to check every block rendered. Hand-built layouts use the block schemas and the Gutenberg review queue instead.
GoBuildWP Pro is required for these calls. Licensed Kadence patterns are optional companion content, not part of the GoBuildWP licence.
Find a free hero section in the Kadence Design Library and put it straight after the first block on the About page.
wppilot/kadenceblocks-check-setupReadConfirms Kadence Blocks is active and whether Pro is present; Pro is not needed for free sections.
wppilot/kadence-list-patternsReadSearches the cloud library for hero sections and drops any marked requires_licence from the shortlist.
wppilot/kadence-insert-patternWriteInserts the chosen section with after_index 0, renames any uniqueID the About page already used, and reports the pattern's remote image URLs.
wppilot/verify-rendered-pageReadOptional second look at the served HTML for missing alt text or empty containers once the images are replaced.
- Edition
- Pro
- Abilities
- 5
- Requires
- WordPress 6.9+, PHP 8.0+
Worked example
A Design Library hero under the first block
Expected outcome to verify on the installed stack; this sequence has not been recorded as a runtime test.
The About page has a working Kadence hero with its own CSS, published or draft as it was, and one ledger entry that puts the old content back. It is refused if the page was built with Elementor or another builder, and its pictures still point at Kadence until you replace them.
Compare the insertion point before and after the change, whether it was a direct pattern insertion or a queued composition. Inspect the returned external-image list, approve any downloads and check the completed layout at desktop and mobile widths.
kadenceblocks-check-setupConfirms Kadence Blocks is active and whether Pro is present; Pro is not needed for free sections.
kadence-list-patternsSearches the cloud library for hero sections and drops any marked requires_licence from the shortlist.
kadence-insert-patternInserts the chosen section with after_index 0, renames any uniqueID the About page already used, and reports the pattern's remote image URLs.
verify-rendered-pageOptional second look at the served HTML for missing alt text or empty containers once the images are replaced.
Abilities
Pattern insertion plus schema lookups
| Ability | What it does here | Undo and limits |
|---|---|---|
kadence-list-patterns | Lists local patterns and cloud Design Library sections with categories, searchable and paged, and flags the ones that need a Kadence licence. | Read-only. Licensed sections are shown so you know they exist, but they cannot be inserted. |
kadence-insert-pattern | Adds one pattern at the start, the end or after a top-level block, leaves existing blocks byte for byte, renames clashing uniqueIDs, and for a published post checks that every block rendered and Kadence produced its CSS. | Refuses builder-laid-out posts, classic-editor content, licensed sections and patterns that bring their own posts. rollback-change restores post_content only. |
kadenceblocks-check-setupkadenceblocks-list-blockskadenceblocks-get-block-schema | Report free and Pro presence, list the kadence/ catalogue with nesting hints, and return one block's attribute map for hand-composed specs sent through the Gutenberg queue. | Read-only. Attribute types come back without allowed values, so a wrong string falls back to the block's default at render rather than failing. |
Reference: /docs/reference/kadenceblocks Reference: /docs/reference/kadence-patterns
Documented source abilities; live registration can be narrower. Edition and effect labels describe the source catalogue. The installed schema, dependency versions, licence, WordPress capability, safety profile and per-ability policy determine availability; labels alone do not prove confirmation or recovery.
Read example: wppilot/kadenceblocks-get-block-schema
Discover this ability and its live schema first. The input below illustrates a bounded read from the source declaration; replace the example ID or name with an object returned by your site. It is not a recorded execution result.
| Parameter | Type and meaning |
|---|---|
name required | string. Full block name, e.g. "kadence/rowlayout" or "kadence/postgrid". Must be in the `kadence/*` namespace. |
{
"name": "replace-with-a-block-name-from-list-blocks"
}Input and output schema from the plugin source
1 input field. Required: name. Optional parameters can affect response size and object selection.
{
"input": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Full block name, e.g. \"kadence/rowlayout\" or \"kadence/postgrid\". Must be in the `kadence/*` namespace."
}
},
"required": [
"name"
],
"additionalProperties": false
},
"output": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"title": {
"type": "string"
},
"family": {
"type": "string",
"enum": [
"free",
"pro"
]
},
"category": {
"type": "string"
},
"is_dynamic": {
"type": "boolean"
},
"attributes": {
"type": "object",
"description": "Map of attribute name -> JSON Schema as declared by the block. Pass the values you want under this key when building the `attributes` field of a block_spec for gutenberg-add-pending-change."
},
"parent": {
"type": "array",
"items": {
"type": "string"
}
},
"ancestor": {
"type": "array",
"items": {
"type": "string"
}
},
"uses_context": {
"type": "array",
"items": {
"type": "string"
}
},
"provides_context": {
"type": "object"
},
"supports": {
"type": "object"
},
"error": {
"type": "string"
}
},
"required": [
"name",
"title",
"family",
"category",
"is_dynamic",
"attributes"
]
}
}Source: wppilot-pro/includes/wppilot-abilities/wppilot-kadenceblocks/wppilot-get-block-schema.php
A successful read should identify the requested object and expose the structure described by the output schema. Compare it with the native editor before proposing a change. Troubleshoot missing or refused operations.
Data model
One namespace, uniqueIDs, and a cloud library
Every Kadence block, free or Pro, registers under kadence/. Pro does not add its own namespace, so the setup check tells the editions apart by inspecting each block's render callback class and reports a count per family. The blocks live in post_content, and each instance carries a uniqueID that Kadence uses to key the CSS it generates for that block. Two blocks sharing an ID on one page means one of them is styled by the other's rules, which is the reason the insert renames clashes rather than copying markup verbatim.
The Design Library is remote. GoBuildWP fetches Kadence's section index without sending the site's domain, licence key or email, caches it for 12 hours, and falls back to the copy Kadence's own editor cached when the library cannot be reached. Local patterns come from the theme, other plugins and the site's saved wp_block patterns that use Kadence blocks. Pattern images are not downloaded; they stay on Kadence's server and are listed so you can swap them.
Other plugins
Next to the Kadence theme and page builders
- Kadence Blocks runs under any theme. With the Kadence theme active, block colour attributes such as colorClass expect palette1 to palette9, not the theme.json slugs core blocks use; the Kadence theme page covers that split.
- A page whose layout belongs to Elementor, Beaver Builder, Divi, Bricks, WPBakery, Oxygen or Breakdance is refused, so pattern markup never lands underneath a builder's own data.
Limits
Boundaries on the Kadence Blocks side
- Pattern availability and licence gates are inspected on the live library; no handwritten library totals establish current availability. verify-rendered-page is a server-side rendered check, followed by actual browser layout and interaction checks.
- Some library sections are licence-gated; those sections are listed but never inserted, because inserting would need the site's Kadence licence.
- Patterns that create their own posts, such as Kadence forms, are refused rather than half-installed.
- Undo covers the post's content alone. It does not remove images you uploaded afterwards or settings changed elsewhere.
- Hand-composed blocks go through browser finalisation; the server does not check them against the block registry.
Finishing an inserted section
Swapping Design Library images before a page goes live
A Kadence Design Library section arrives with placeholder photography that still loads from Kadence's servers. That is fine on a draft and wrong on a live page: the pictures are not the client's, they depend on a server the site does not control, and they carry no meaningful alt text. kadence-insert-pattern lists those remote image URLs in its result, which turns the clean-up into a checklist rather than a hunt through markup.
For each listed image, the client's own photo goes into the Media Library first, through upload in wp-admin or import-media-url when the image already sits at a URL the owner provided, with alt text written for what the picture shows. The swap itself happens in the block editor, where the Kadence block's image control keeps its own sizing and focal settings intact. Downloading the Kadence placeholder itself only makes sense when its licence allows that use, so the default should be replacing it.
- Insert into a draft when the page is published and busy; the ledger can restore content, but visitors still see the interim state.
- After swapping, verify-rendered-page or a browser check confirms no image still points at Kadence's host.
- audit-media-alt reports newly uploaded images whose alt text is missing or just a file name.
Questions
Kadence Blocks questions
Can an AI insert Kadence Pro Design Library patterns?
No. They appear in the list with requires_licence set, but GoBuildWP fetches the library anonymously and will not insert anything that needs your licence.
Why does it rename uniqueIDs?
Kadence generates each block's CSS against its uniqueID. Reusing an ID the page already has makes two blocks share one set of rules, so a clash is renamed before saving.
Does anything about my site get sent to Kadence?
The library request goes out without your domain, licence key or email, and the index is cached for 12 hours so repeated searches do not refetch it.
Can it build Kadence Advanced Forms?
Not by pattern insert. A form is a kadence_form post referenced from the page block, and the skill builds it as two posts through the Gutenberg queue, never giving the form's root block its own id.
Where these facts come from
GoBuildWP behaviour is taken from the plugin source and the ability reference; third-party details from the vendor documentation below, checked by the GoBuildWP team.
Kadence Blocks is a separate product; no partnership or endorsement is implied.