GoBuildWP

ThemesPro

Kadence Theme MCP: a thousand settings, found and patched by key

The Kadence theme exposes roughly a thousand individual settings, far more than an agent can read at once. This Kadence Theme MCP module turns that into a two-step lookup: list the areas, drill into one, read the current values, then patch just the keys you name. It also returns the theme's resolved theme.json, which matters because Kadence runs two colour systems side by side and the right slug depends on which block you are styling.

GoBuildWP Pro is required; the free Kadence theme is sufficient for the supported theme-mod operations.

AI clientyour-site.comVerify site policy

Make the Kadence content width 1200 pixels and reduce the main header row height, but do not touch anything else.

  1. wppilot/kadence-check-setupRead

    Shows the settings are theme mods on this site, and that the theme meets the supported floor.

  2. wppilot/kadence-list-customizer-settingsRead

    Called once with no area to see the area names, then with the layout and header areas and with_defaults true to get key names and types.

  3. wppilot/kadence-get-settingsRead

    Reads the current content width and header height values so the change can be described before and after.

  4. wppilot/kadence-edit-settingsWrite

    Writes the two keys only; the response lists any warnings about value shape.

Proposed sequence from source declarations; not a recorded task or proof of client compatibility. Inspect saved state and browser or provider results separately.
Edition
Pro
Abilities
5
Requires
WordPress 6.9+, PHP 8.0+, Kadence theme 1.2.0+

Data model

Theme mods by default, a single option when filtered

Kadence resolves every setting through its Options component, defaults merged with what you changed. Where those changes are stored depends on the build: by default each key is a theme mod inside the theme_mods row for the active stylesheet, while a site that sets the kadence_theme_option_type filter keeps them in one option whose name the kadence_theme_option_name filter chooses. The setup check reports which applies, the writer follows it automatically, and the undo restores whichever row that is.

Colour exists twice. theme.json publishes preset slugs such as theme-palette1, which core blocks resolve to --wp--preset--color variables; Kadence's own nine-colour palette is referenced by Kadence Blocks as palette1 to palette9, resolving to --global-palette variables. Both end up at the same hex, but a core paragraph given palette3 or a Kadence heading given theme-palette3 simply does not pick it up. Header, navigation and form builders are kadence_header, kadence_navigation and kadence_form posts, which the setup check flags but this module does not edit.

Worked example

Widening the content area and tightening the header

Expected outcome to verify on the installed stack; this sequence has not been recorded as a runtime test.

The container and header change on every template while every other setting keeps its stored value, and the change can be rolled back as one row. Responsive values may be objects with per-device entries; a warning in the response is the cue to re-read and check the stored shape.

Treat the settings census as the installed setup report, not a stable count across versions. Before the two-key patch, review the reported types and write caveats, then reread both values and inspect desktop and mobile output.

  1. kadence-check-setup

    Shows the settings are theme mods on this site, and that the theme meets the supported floor.

  2. kadence-list-customizer-settings

    Called once with no area to see the area names, then with the layout and header areas and with_defaults true to get key names and types.

  3. kadence-get-settings

    Reads the current content width and header height values so the change can be described before and after.

  4. kadence-edit-settings

    Writes the two keys only; the response lists any warnings about value shape.

Abilities

Discovery first, then a narrow patch

AbilityWhat it does hereUndo and limits
kadence-check-setupReports the theme version against the floor, the storage type and option name in use, which builder post types are registered, and the active palette's name with the colour in each slot.Read-only. It returns the palette but not the roughly thousand individual settings; those come from the list and get calls.
kadence-list-customizer-settingskadence-get-settingsThe first returns areas with key counts, or one area's keys with inferred types and defaults; the second reads current values for named keys and lists any that do not exist under unknown_keys.Read-only. Keys gated by another plugin or a typo show up as unknown rather than being dropped silently.
kadence-edit-settingsMerges the named keys through the storage Kadence is configured for, under a lock, and invalidates Kadence's static cache so a read straight afterwards shows the new value.Unknown keys are refused; a type mismatch is only a warning and the value is still written. Undo restores the whole settings row.
kadence-get-theme-jsonReturns the resolved settings, styles and flat preset catalogue that the block editor reads.Read-only; it does not write theme.json or the global-styles post.

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/kadence-get-settings

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.

ParameterType and meaning
keys requiredarray. List of setting keys to read. Use kadence-list-customizer-settings (with `area` + `with_defaults=true`) to discover keys ahead of time. Pass 1 to ~50 keys per call; very large requests waste tokens - narrow to what you actually need.
{
  "keys": [
    "replace-with-a-key-from-list-customizer-settings"
  ]
}
Input and output schema from the plugin source

1 input field. Required: keys. Optional parameters can affect response size and object selection.

{
  "input": {
    "type": "object",
    "properties": {
      "keys": {
        "type": "array",
        "items": {
          "type": "string"
        },
        "minItems": 1,
        "description": "List of setting keys to read. Use kadence-list-customizer-settings (with `area` + `with_defaults=true`) to discover keys ahead of time. Pass 1 to ~50 keys per call; very large requests waste tokens - narrow to what you actually need."
      }
    },
    "required": [
      "keys"
    ],
    "additionalProperties": false
  },
  "output": {
    "type": "object",
    "properties": {
      "settings": {
        "type": "array",
        "description": "Per-key records. Each entry is `{key, type, value}` - `type` mirrors kadence-list-customizer-settings, `value` is the current value Kadence resolves (overrides merged with defaults).",
        "items": {
          "type": "object",
          "properties": {
            "key": {
              "type": "string"
            },
            "type": {
              "type": "string",
              "enum": [
                "string",
                "integer",
                "number",
                "boolean",
                "array",
                "object",
                "null"
              ]
            },
            "value": {
              "type": [
                "string",
                "integer",
                "number",
                "boolean",
                "array",
                "object",
                "null"
              ],
              "description": "The current value (post-override)."
            }
          },
          "required": [
            "key",
            "type",
            "value"
          ]
        }
      },
      "unknown_keys": {
        "type": "array",
        "items": {
          "type": "string"
        },
        "description": "Keys you requested that are not in Kadence's defaults map on this install. Surface to the user - usually a typo or a key that belongs to a plugin / module that is not active."
      },
      "total": {
        "type": "integer"
      }
    },
    "required": [
      "settings",
      "total"
    ]
  }
}

Source: wppilot-pro/includes/wppilot-abilities/wppilot-kadence/wppilot-get-settings.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.

Other plugins

Kadence theme with Kadence Blocks

  • The theme page is about settings; blocks and Design Library sections are the Kadence Blocks integration. The build skill runs both setup checks before promising a Kadence-styled page.
  • When Kadence Blocks is missing, its blocks are unavailable. Core blocks use the theme.json slugs; inspect any other registered block library before composing with its own controls and palette conventions.

Limits

What stays out of reach

  • Header Builder, Navigation Builder and Advanced Form records are posts; they are built through the generic post and Gutenberg abilities, not through a Kadence-specific writer.
  • The palette itself is reported but there is no dedicated palette writer in this module.
  • Global styles overrides at the user layer are not written here.
  • Below the theme floor the check stops the session before any write is attempted.

Kadence colour and layout requests

Brand colour changes on a Kadence site: where they happen

Clients usually phrase a colour change as 'make the blue darker everywhere'. On Kadence the place that achieves that is the global palette, because buttons, links and Kadence Blocks point at palette slots rather than at fixed hex values. The palette is kept in its own kadence_settings_palette option, apart from the theme mods kadence-edit-settings writes, so this module reads it but does not change it. kadence-check-setup returns the active palette's name and every slot's colour, which is enough for the agent to say which slot holds the blue and which other elements will move with it.

The edit itself is then a quick job in the Customizer's global palette, made by a person, after which the agent can confirm the new value with check-setup and look up the matching preset in kadence-get-theme-json. If the request is narrower, such as one header background, look for a dedicated setting with kadence-list-customizer-settings in the header area first; changing a palette slot to fix one element recolours everything else bound to that slot.

  • Palette slot order is a convention, not a rule; read the colours rather than assuming slot one is the brand colour.
  • Core blocks need theme-palette slugs and Kadence Blocks need palette slugs, even when both resolve to the same hex.
  • Responsive settings may store per-device objects; re-read after a write that returned a shape warning.

Questions

Kadence questions

Why does my AI-styled Kadence heading ignore the brand colour?

It was probably given a theme.json slug. Kadence Blocks attributes expect palette1 to palette9; core blocks expect the theme-palette slugs.

Can the agent see every Kadence setting at once?

It can page through all of them, but the list ability is built to return an area overview first because dumping every key and default would overflow most context windows.

Does Kadence Pro need to be installed?

No. This module targets the free theme's settings; the setup check flags the builder post types if they are registered.

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 is a separate product; no partnership or endorsement is implied.

Try it on Kadence in Read Only first