Abilities

175 abilities. 46 of them will not say what they do.

Captured from a live Bricks 2.4-beta2 installation, not transcribed from documentation. An ability may declare itself readonly, destructive or idempotent— and 46 declare none of the three.

Silence is not a licence. cwp treats every undeclared ability as a write, which means the full guard set applies to it: a protected environment refuses it, and it needs a source in the repository like anything else going upward.

Where the 175 come from

Two numbers get conflated constantly and they are not the same one. 145 is the Bricks integration surface — what Bricks itself registers. 175 is what a call actually reaches on a real site, because the theme is not the only thing registering abilities.

  • bricks/ 145
  • snn/ 24
  • core/ 3
  • mcp-adapter/ 3

Both figures are correct and neither replaces the other. Anything that calls an ability has to reckon with 175; anything describing what Bricks ships means 145.

The list

71

readonly

declares that it only reads

27

destructive

declares that it destroys something

46

declares nothing

cwp treats every one of these as a write

31

partial

some annotation, but not enough to be sure

Showing all 175.

  1. bricks/add-elementdeclares nothing

    Add one or more elements at a specific position. Supports nested children format and component instances.

    bricks-elements7 properties

  2. bricks/audit-design-systemreadonly

    Read-only scan for design-system rot: orphan references (errors), theme styles without conditions (warnings), unused resources and palette fragmentation (infos). Scans all Bricks posts + templates in one pass. Pass `scope` to narrow, or `skipPostScan: true` for a fast config-only check.

    bricks-design2 properties

  3. bricks/batch-update-elementspartial

    Partial-merge update multiple existing elements in one save/revision. Applies the same validation, permission checks, and `null`/`""` deletion sentinels as update-element. Supports dryRun and compact response options.

    bricks-elements8 properties

  4. bricks/cleanup-orphaned-elementsdestructive

    Strip orphan rows from the Bricks postmeta of every affected post. Destructive. Mirrors the admin "Clean up orphaned elements" button.

    bricks-maintenance1 property

  5. bricks/convert-html-css-to-bricks-datareadonly

    Convert raw HTML and/or CSS into Bricks element data, global classes, variables, and CSS-only update suggestions. Read-only: returns converted data without saving. Use element and design abilities to persist the result.

    bricks-elements5 properties

  6. bricks/create-colordeclares nothing

    Append a builder-shaped color to an existing palette. Root colors require `light`; `raw` is normalized to `var(--name)` or generated as `var(--bricks-color-{id})`. Set `darkModeEnabled:true` to derive the root dark pair from light, or provide root `dark` to enable dark mode with an explicit value. Shade rows require `parent` and `type`; dark shade rows require a dark-mode parent.

    bricks-design9 properties

  7. bricks/create-color-palettedeclares nothing

    Create a new color palette, optionally seeded with builder-shaped colors. Supplied color IDs are preserved so shade parent relationships survive imports; missing IDs/raw values are generated. Palette names should be unique; duplicates are accepted but make the UI ambiguous.

    bricks-design2 properties

  8. bricks/create-componentdeclares nothing

    Create a new component from an elements subtree. Labels must be unique (`bricks_conflict_duplicate_component_name` on collision). Incoming element ids are regenerated, property connections and parent-property references are remapped, and builder metadata is stamped so the component is not treated as a beta component.

    bricks-design11 properties

  9. bricks/create-custom-fontdeclares nothing

    Create a `bricks_fonts` family from `family`. Returns `{ font: { id, family, fontFaces } }`. Attach face files via `bricks/upload-custom-font-file` and `bricks/update-custom-font`.

    bricks-fonts1 property

  10. bricks/create-custom-icon-setdeclares nothing

    Create a new custom icon set so `upload-custom-icon` has a `setId` target. Appends a row to `BRICKS_DB_ICON_SETS` with a generated `set_<hex>` ID.

    bricks-icons2 properties

  11. bricks/create-global-classdeclares nothing

    Create a new global class with CSS settings and optional responsive overrides. Class names must be unique; duplicates return `bricks_conflict_duplicate_global_class_name`. Returns the new class with its generated ID.

    bricks-design4 properties

  12. bricks/create-global-querydeclares nothing

    Save a new reusable query. Use a unique label and a `query` object that mirrors an element's inline `query` setting (for example `{ objectType: "post", postType: ["post"], posts_per_page: 10 }`). Any optional `category` must already exist; create it first via `bricks/create-global-query-category`.

    bricks-queries4 properties

  13. bricks/create-global-query-categorydeclares nothing

    Create a new category that global queries can be grouped under. Returns the generated `{ id, name }` category row.

    bricks-queries1 property

  14. bricks/create-postdeclares nothing

    Create a new page or post. Optionally seed a Bricks element tree atomically with creation. Returns the new post ID, builder URL, and revision ID.

    bricks-content6 properties

  15. bricks/create-sidebardeclares nothing

    Register a new custom sidebar. The ID is derived from `name` (lowercased, spaces to underscores, stripped of other characters). Names must be unique. Once created, the sidebar shows up in the Bricks "Sidebar" element dropdown and accepts widgets via Appearance > Widgets.

    bricks-sidebars2 properties

  16. bricks/create-templatedeclares nothing

    Create a new Bricks template (`bricks_template` post type). Pass `type` (header / footer / content / section / popup / archive / search / error / password_protection, or a WooCommerce type such as wc_product), optional initial `elements` tree, and optional `status` (`draft`, `publish`, or `private`; default `draft`). Returns `templateId`, `editUrl`, and `status`. Note: header and footer templates are automatically wrapped in `<header>` / `<footer>` landmarks at render time. Do NOT set `tag: "header"` (or `customTag: "header"`) on the template root, because that produces nested landmarks. Use `section` / `block` / `container` with their default tag.

    bricks-templates5 properties

  17. bricks/create-theme-styledeclares nothing

    Create a new theme style. Settings groups (typography, general, and so on) match the shape used in the Bricks builder. Pass `conditions: [{ main: "any" }]` for site-wide defaults. By default, Bricks applies the highest-scoring matching style; if the Theme styles loading method setting collects all matches, matching styles load in score order.

    bricks-design3 properties

  18. bricks/delete-builder-capabilitydestructive

    Delete one custom builder capability definition and remove that WordPress capability from all roles. Built-in Bricks capabilities cannot be deleted.

    bricks-permissions1 property

  19. bricks/delete-colordestructive

    Remove a single color from a palette. Destructive and unrecoverable: colors live in a site option, not in a post, so there is no revision path to undo. Any setting that references the deleted palette color id will lose that palette value. Returns a `beforeDelete` snapshot of the removed color.

    bricks-design2 properties

  20. bricks/delete-color-palettedestructive

    Permanently delete a color palette and every color inside it. Destructive and unrecoverable: palettes are stored in a site option, not in a post, so there is no revision path to undo. Returns a `beforeDelete` snapshot (id, name, color count) so you can show what was removed.

    bricks-design1 property

  21. bricks/delete-componentdestructive

    Remove a component from the global store. Requires expectedDesignSystemVersion and expectedUsageCount from a recent read. Destructive and blocked when the component is used unless `allowOrphans=true` is explicitly passed. Returns a `beforeDelete` snapshot with label, element count, usage count, and usedOnPosts.

    bricks-design4 properties

  22. bricks/delete-custom-fontdestructive

    Delete a custom font family post. Face attachments stay in the media library; remove them separately if they are no longer needed. Destructive: pages using the font will fall back to their next available choice.

    bricks-fonts1 property

  23. bricks/delete-custom-icondestructive

    Remove a custom icon by ID from the `BRICKS_DB_CUSTOM_ICONS` option. Destructive.

    bricks-icons1 property

  24. bricks/delete-custom-icon-setdestructive

    Remove a custom icon set from `BRICKS_DB_ICON_SETS`. Cascades to drop every custom icon row in `BRICKS_DB_CUSTOM_ICONS` assigned to that set. SVG attachments stay in the Media Library. Destructive.

    bricks-icons1 property

  25. bricks/delete-global-classdestructive

    Permanently delete a global class. Destructive and unrecoverable: classes are stored in a site option, not in a post, so there is no revision path to undo. Any element that references the class will lose its styling. Locked classes cannot be deleted. Returns a `beforeDelete` snapshot (id, name, category, selector count) so you can show what was removed.

    bricks-design1 property

  26. bricks/delete-global-querydestructive

    Delete a global query by ID. Elements referencing the deleted query will fall back to their inline query settings (if any) or show no loop.

    bricks-queries1 property

  27. bricks/delete-global-query-categorydestructive

    Delete a global-query category. Queries inside the category are kept; their `category` field is cleared.

    bricks-queries2 properties

  28. bricks/delete-global-variabledestructive

    Delete one global CSS variable by ID. Destructive and not revision-backed. Returns a beforeDelete snapshot of the removed variable.

    bricks-design1 property

  29. bricks/delete-mediadestructive

    Delete a media library attachment by ID. Use after upload-media QA runs or when replacing unused assets. Destructive: returns a beforeDelete snapshot and respects WordPress attachment trash behavior.

    bricks-media2 properties

  30. bricks/delete-nav-menudestructive

    Delete a WordPress nav menu by ID, slug, or exact name. Destructive and not Bricks revision-backed; returns a full beforeDelete snapshot including menu items and Bricks mega-menu metadata.

    bricks-navigation3 properties

  31. bricks/delete-nav-menu-itemsdestructive

    Delete explicit WordPress nav menu item IDs from a selected menu. Destructive and not Bricks revision-backed; returns beforeDelete snapshots for every removed item. Never use this for reordering or partial updates.

    bricks-navigation2 properties

  32. bricks/delete-postdestructive

    Move a post or page to trash (recoverable) or permanently delete it. Lock-aware: refuses to delete a post that another user is currently editing.

    bricks-content5 properties

  33. bricks/delete-sidebardestructive

    Delete a custom sidebar by ID. Widgets placed in the sidebar are removed from `sidebars_widgets` (same behavior as the admin UI). Destructive.

    bricks-sidebars1 property

  34. bricks/delete-templatedestructive

    Permanently delete a Bricks template. Destructive and unrecoverable: this calls `wp_delete_post` with `force=true` and there is no Bricks revision path to undo. The response includes a `beforeDelete` snapshot (title, type, element count) so you can show what was removed.

    bricks-templates3 properties

  35. bricks/delete-theme-styledestructive

    Delete a theme style from the global theme-style option. Destructive and not revision-backed. Returns a beforeDelete snapshot so callers can show or restore the removed row manually if needed.

    bricks-design1 property

  36. bricks/duplicate-postdeclares nothing

    Clone a post/page including its Bricks element tree, page settings, and featured image. The duplicate is created as a draft by default.

    bricks-content7 properties

  37. bricks/export-transfer-packagereadonly

    Create a unified Bricks import/export ZIP package and return it as base64 for MCP transport. Call `bricks/list-transfer-items` first and pass explicit item IDs for every selected type. Sensitive settings tabs (`api-keys`, `custom-code`) require `allowSensitiveSettings: true`.

    bricks-import-export3 properties

  38. bricks/extract-component-from-elementsdestructive

    Lift an existing element subtree out of a post and into a new global component, replacing the original subtree with a component instance. External references inside the subtree (global class names, CSS variables) are preserved as-is, so the component stays coupled to whatever tokens the original elements used. A revision is captured before the post write.

    bricks-design6 properties

  39. bricks/find-mediareadonly

    Search the media library by filename, title, or alt text. Filter by MIME type. Supports compact results or full media objects with all size variants.

    bricks-media5 properties

  40. bricks/find-postreadonly

    Search posts, pages, and templates by slug, title, or free-text fragment. Returns only the records the current user can edit, annotated with Bricks metadata (`bricksEnabled`, `hasBricksData`, `locked`, `builderUrl`).

    bricks-elements9 properties

  41. bricks/generate-color-shadesdeclares nothing

    Generate light, dark, or transparent shades from a base color, using the same algorithm as the builder's Color Shades popup (TinyColor mix in linear RGB). Pass `paletteId` and `colorId` to target an existing palette color, plus `save: true` to persist; persisting replaces existing shades of the same type/mode. Dark-mode shade generation requires the parent color to have `darkModeEnabled`, matching the builder UI. Alternatively, pass `baseColor` and optionally `baseVariable` for preview-only generation.

    bricks-design8 properties

  42. bricks/generate-scale-variablesdeclares nothing

    Generate fluid clamp() CSS variables for a typographic or spacing scale. Ports the builder's Scale Generator (Popup Styles > Scale). Pass an existing `categoryId` to use its configured scale, or pass an inline `category` object for preview-only generation. Returns variable objects ready to upsert via set-global-variables, or pass `save: true` to persist directly. Math is identical to the builder, so round-trip preview matches what the Generate button produces.

    bricks-design4 properties

  43. bricks/get-builder-guidereadonly

    Reference documentation for generating valid Bricks element JSON. Requires a topic: elements, layout, styling, dynamic-data, query-loops, or components.

    bricks-reference1 property

  44. bricks/get-componentreadonly

    Full component data: elements tree, property definitions with connections, variants, slots, and designSystemVersion for safe follow-up writes.

    bricks-design1 property

  45. bricks/get-custom-fontreadonly

    Fetch a single custom font family by post ID. Returns `{ font: { id, family, fontFaces } }`.

    bricks-fonts1 property

  46. bricks/get-design-contextreadonly

    One-call summary of the site design context: color palettes, global classes, theme styles, components, global variables, and responsive breakpoints. Pass `responseFormat: "summary"` for capped orientation output, or `includeUsage: true` to add `usedOnPosts` per component.

    bricks-design3 properties

  47. bricks/get-element-conditionsreadonly

    Read the `_conditions` array stored on an element's settings. Conditions are OR groups containing AND items: the element renders when any group matches and every item inside that group matches. Read-only.

    bricks-elements5 properties

  48. bricks/get-element-interactionsreadonly

    Read an element's own `_interactions` rows plus inherited global-class interactions in frontend order. Each interaction has a trigger (such as `click`, `enterView`, `scroll`, `formSubmit`) and an action (such as `show`, `hide`, `setAttribute`, `startAnimation`, `toggleOffCanvas`, `javascript`, `storageAdd`). `target` is optional and defaults to `self` at runtime; valid explicit values are `self`, `custom`, and `popup`. Read-only.

    bricks-interactions5 properties

  49. bricks/get-element-schemareadonly

    Full settings schema (controls, groups, defaults) for a specific element type.

    bricks-reference1 property

  50. bricks/get-filter-elementreadonly

    Read a single Query Filter element's full settings (source, field, label, style, filterQueryId, etc.). Read-only.

    bricks-filters5 properties

  51. bricks/get-form-configreadonly

    Read a Form element's fields, actions, and settings for a given post + elementId. Read-only. Use before update-form-fields / update-form-actions to see current shape.

    bricks-forms5 properties

  52. bricks/get-global-queryreadonly

    Read a single global query by ID. Returns the full stored row, including `id`, `name`, optional `category`, and `settings` using the same shape as an element's inline `query` setting.

    bricks-queries1 property

  53. bricks/get-global-settingsreadonly

    Read current values for every allow-listed Bricks global setting. Excluded keys (credentials and code-execution settings) are never returned even if set. Remote template source passwords are redacted to passwordConfigured booleans. Pair with `bricks/list-settings-schema` to know what each key means.

    bricks-settings1 property

  54. bricks/get-mcp-versionreadonly

    Report the Bricks plugin version, the Bricks abilities contract version, the WordPress MCP Adapter version, and the WordPress core version. Call once at the start of a session to detect version drift mid-conversation. `disabledAbilityCount` includes both admin-disabled and default-off abilities; `adminDisabledAbilityCount` and `defaultDisabledAbilityCount` split those states.

    bricks-meta

  55. bricks/get-nav-menureadonly

    Fetch one WordPress nav menu as an ordered nested item tree. Includes menu item links, object references, classes, target/rel fields, assigned locations, and Bricks item options (`megaMenuTemplateId`, `multilevel`). Read-only.

    bricks-navigation3 properties

  56. bricks/get-page-elementsreadonly

    Full element data for a page/template with all settings. Optionally filter to a specific element and its children.

    bricks-elements8 properties

  57. bricks/get-page-settingsreadonly

    Page settings for a post (SEO, body classes, header/footer disable, custom CSS, etc.).

    bricks-elements4 properties

  58. bricks/get-page-structurereadonly

    Lightweight tree view of page elements for understanding layout without full settings data. Optionally filter to a specific element and/or descendant depth.

    bricks-elements6 properties

  59. bricks/get-popup-configreadonly

    Read a popup template's configuration: the template conditions (where it can appear), the popup-specific settings (`popupCloseOn`, `popupBodyScroll`, `popupAjax`, `popupLimit*`), and the interaction triggers that reference it (elements whose target is `popup` with `templateId` pointing at this popup). Read-only.

    bricks-popups4 properties

  60. bricks/get-reading-settingsreadonly

    Read WordPress Reading settings: whether the front page shows latest posts or a static page, the selected homepage, and the selected posts page.

    bricks-cms

  61. bricks/get-revisionreadonly

    Fetch the full Bricks element tree from a specific revision. Read-only; use `bricks/restore-revision` to roll back.

    bricks-revisions2 properties

  62. bricks/get-style-managerreadonly

    Return the `BRICKS_DB_STYLE_MANAGER` option verbatim, or null if unset. Common keys: `htmlFontSize`, `minScreenWidth`, `maxScreenWidth`, `defaultMode` (light|dark|auto).

    bricks-style-manager

  63. bricks/get-system-informationreadonly

    Read-only environment snapshot covering theme, Bricks, WordPress, server, and active plugins. Mirrors Settings > Bricks > System Information. License and API key values are never included.

    bricks-system

  64. bricks/get-templatereadonly

    Fetch a single Bricks template by ID. Returns title, type, status, edit URL, and by default settings plus the element tree for the rendered template area. Pass includeElements=false or includeSettings=false for a lighter response; use get-page-elements when you need scoped element-tree reads.

    bricks-templates5 properties

  65. bricks/get-template-settingsreadonly

    Template settings including conditions, header sticky/popup config, password protection, preview.

    bricks-templates3 properties

  66. bricks/get-theme-stylesreadonly

    Theme styles configuration. Without a filter returns lightweight summaries; with a style ID returns full settings.

    bricks-design1 property

  67. bricks/get-woo-setup-optionsreadonly

    Read the safe WooCommerce core options that Bricks setup needs: assigned shop/cart/checkout/account pages, coupon/login/registration checkout settings, and native archive AJAX add-to-cart behavior. Bricks-owned Woo toggles remain in bricks/get-global-settings. Credentials and payment/shipping gateway settings are not exposed.

    bricks-woocommerce1 property

  68. bricks/get-woo-setup-statusreadonly

    Inspect Bricks/WooCommerce setup readiness for shop, single product, cart, checkout, and account areas. Returns assigned pages, existing Bricks data/content risks, available classic/v2 presets, Bricks Woo settings, and WooCommerce core page/account/checkout settings. Read this before planning or running Woo setup.

    bricks-woocommerce2 properties

  69. bricks/import-transfer-packagedestructive

    Import selected items from an inspected unified transfer ZIP. Requires explicit `types`, exact manifest item IDs, and `expectedZipHash` from `bricks/inspect-transfer-package`. Defaults to keeping existing data on conflicts. Any replacement requires `allowOverwrite: true`; sensitive settings tabs require `allowSensitiveSettings: true`.

    bricks-import-export10 properties

  70. bricks/insert-remote-templatedeclares nothing

    Fetch a template from a remote template-library source such as `wireframes` or `design-sets`, optionally import missing design assets, and insert its element tree into a target post. Uses the same placement options as `bricks/insert-template`. Existing local design assets are preserved and the target post receives a pre-save revision.

    bricks-templates12 properties

  71. bricks/insert-templatedeclares nothing

    Copy a local Bricks template's element tree into a target post at a chosen position. Supported positions: `replace` (overwrite everything), `start` and `end` (root-level top or bottom; defaults to `end`), `before` and `after` (sibling of `anchorElementId`), and `append` and `prepend` (child of `anchorElementId`). Every source element ID is regenerated to avoid collisions. A revision is captured before the write, so `replace` is destructive but reversible via `bricks/restore-revision`. For remote library templates use `bricks/insert-remote-template`.

    bricks-templates6 properties

  72. bricks/inspect-transfer-packagereadonly

    Inspect a base64 unified transfer ZIP without writing. Returns the manifest filtered by current user permissions plus conflicts, warnings, `zipHash`, and size. Call this before `bricks/import-transfer-package` and pass the returned `zipHash` as `expectedZipHash`.

    bricks-import-export1 property

  73. bricks/list-ability-statusreadonly

    Every Bricks ability known to this site, each with an `enabled` flag, category, and `destructive` / `readonly` / `idempotent` annotations. Disabled abilities stay inspectable through adapter discovery/get-info but execution returns `bricks_ability_disabled`, so if an expected tool is missing, call this first: a false `enabled` means the site admin turned it off under Bricks > Settings > AI. When Bricks abilities are enabled, this ability bypasses the deny-list so it can diagnose drift even when other abilities are locked down.

    bricks-meta

  74. bricks/list-breakpointsreadonly

    Read the site's responsive breakpoints. Returns `{ baseKey, baseWidth, customEnabled, isMobileFirst, breakpoints, defaults }`, with `breakpoints` sorted by width for the active paradigm. `customEnabled` reflects the `customBreakpoints` master toggle.

    bricks-breakpoints

  75. bricks/list-builder-permissionsreadonly

    Read the real builder-access model: permission sections, default and custom capability definitions, and the current WordPress role assignments. Custom definitions live in `BRICKS_DB_CAPABILITIES_PERMISSIONS`; role access lives on WordPress roles, not in `bricks_global_settings`.

    bricks-permissions

  76. bricks/list-cms-sourcesreadonly

    Introspect the site's content model. Pass a `source` (one of `wp`, `acf`, `jetengine`, `metabox`, `cmb2`, `pods`, `toolset`, `woo`) to fetch its schema, or omit to receive only the availability directory. Read-only: Bricks does not expose CRUD for third-party field providers. Use this to understand what data the site already carries so you can reference it correctly in templates and dynamic-data tags.

    bricks-cms1 property

  77. bricks/list-color-palettesreadonly

    All palettes with colors including IDs, raw CSS variable references, light/dark values, and shade relationships. Supports pagination and single-palette filter.

    bricks-design3 properties

  78. bricks/list-componentsreadonly

    List all components with labels, descriptions, property summaries, variant names, slot counts, and the current designSystemVersion. Use before building new page sections to see whether an existing component should be reused. Supports pagination.

    bricks-design2 properties

  79. bricks/list-credential-statusreadonly

    Read whether Bricks credentials are configured without returning secret values. Covers the license key, API/site/secret keys, access tokens, and template passwords. Every row returns configured/readable/writable flags; readable and writable are false because credential values stay admin-UI-only for now.

    bricks-settings2 properties

  80. bricks/list-custom-fontsreadonly

    Enumerate custom font families registered via the `bricks_fonts` CPT. Returns paginated rows with `id`, `family`, and `faceCount`; call `bricks/get-custom-font` for the full `fontFaces` map.

    bricks-fonts3 properties

  81. bricks/list-custom-iconsreadonly

    Enumerate uploaded custom SVG icon rows from `BRICKS_DB_CUSTOM_ICONS`, optionally filtered by `setId`. Rows use the builder icon-manager shape: `id`, `setId`, `name`, `url`, and `attachment_id`. Paginated.

    bricks-icons3 properties

  82. bricks/list-dynamic-data-tagsreadonly

    List available dynamic-data tags with syntax, labels, and provider groups. Pass `postId` to scope results to tags applicable on that post (ACF groups, Woo product tags, JetEngine CCTs). Pass `includeModifiers: true` to include the modifier grammar (positional `:plain`, `:link`, `:image`, `:{number}` and key-value `@fallback`, `@sanitize`, `@date`). Paginated.

    bricks-reference6 properties

  83. bricks/list-element-typesreadonly

    All registered Bricks element types with metadata (name, label, category, nestable).

    bricks-reference3 properties

  84. bricks/list-form-submissionsreadonly

    Read stored submissions for a Form element from the `{prefix}bricks_form_submissions` table. Paginated. When the table is missing (the Save Submission action has never run), returns an empty list with an explanatory `note` rather than a hard error.

    bricks-forms7 properties

  85. bricks/list-global-classesreadonly

    All global classes with their settings. Supports pagination and category filter.

    bricks-design3 properties

  86. bricks/list-global-queriesreadonly

    Enumerate the reusable query-loop configurations saved in Bricks. Supports search, category filter, and pagination. Returns a summary row per query (`id`, `label`, `category`, and a `summary` object with fields such as `objectType`, `postType`, and `posts_per_page`) plus the category list. Call `bricks/get-global-query` to fetch the full stored row.

    bricks-queries4 properties

  87. bricks/list-global-variablesreadonly

    All global CSS variables. Supports pagination and category filter.

    bricks-design3 properties

  88. bricks/list-icon-setsreadonly

    Enumerate custom icon sets (`BRICKS_DB_ICON_SETS`) and the list of disabled built-in or custom icon-set IDs (`BRICKS_DB_DISABLED_ICON_SETS`).

    bricks-icons

  89. bricks/list-nav-menusreadonly

    List WordPress nav menus with item counts, assigned theme locations, and whether any menu item uses Bricks mega-menu or multilevel metadata. Read-only. Use before deciding whether to reuse an existing WordPress menu or build a new Nav Nested menu directly in a Bricks header.

    bricks-navigation

  90. bricks/list-orphaned-elementsreadonly

    Scan every post that uses Bricks meta for elements whose parent no longer exists in the same tree. Read-only: returns what `bricks/cleanup-orphaned-elements` would remove without touching anything.

    bricks-maintenance

  91. bricks/list-popupsreadonly

    List all popup templates (`bricks_template` posts whose template type is `popup`). Returns id, title, status, and conditions summary. Read-only. Equivalent to list-templates with type=popup plus extra popup-specific meta.

    bricks-popups2 properties

  92. bricks/list-pseudo-classesreadonly

    Return the list of pseudo-class selectors available in the builder style panel. `isDefault` is true when the option is unset and Bricks is using the built-in fallback (`:hover`, `:active`, `:focus`).

    bricks-pseudo-classes

  93. bricks/list-query-filtersreadonly

    Enumerate Query Filter elements across posts/templates (filter-checkbox, filter-radio, filter-select, filter-range, filter-search, filter-datepicker, filter-submit, filter-active-filters). Returns post/location + filter target (filterQueryId). Read-only.

    bricks-filters4 properties

  94. bricks/list-query-loop-typesreadonly

    List the exact runtime query loop objectType values after Bricks core, dynamic-data providers, WooCommerce, and custom filters have registered them. Use before building provider-backed loops such as ACF repeaters, Meta Box groups, JetEngine relations, or WooCommerce cart loops.

    bricks-reference

  95. bricks/list-remote-templatesreadonly

    List templates available in a built-in source (`wireframes` or `design-sets`) or an admin-configured remote template URL. Use a source `id` or `url` from `bricks/list-template-sources`. Returns paginated template metadata by default; request a specific page/perPage and use `mode: "full"` only for targeted inspection.

    bricks-templates4 properties

  96. bricks/list-revisionsreadonly

    List Bricks-aware revisions for a post. Shows which areas (content/header/footer) each revision has data for.

    bricks-revisions5 properties

  97. bricks/list-settings-schemareadonly

    Discover which Bricks global-settings keys are writable via MCP. Returns an allow-list registry: each entry declares `key`, `type`, `category` (general/performance/maintenance/builder/templates/forms), `label`, and validation hints. Call this before `bricks/set-global-settings` to know what you can touch. Credentials, code-execution toggles, and builder role data are excluded from this surface; use list-credential-status to check whether credentials are configured.

    bricks-settings1 property

  98. bricks/list-sidebarsreadonly

    Enumerate custom sidebars registered via Bricks > Settings > Sidebars. Read-only. Returns `[{ id, name, description }]`.

    bricks-sidebars

  99. bricks/list-template-sourcesreadonly

    List remote template-library sources: Bricks built-ins (`wireframes`, `design-sets`), admin-configured remote template URLs, and group rows. Returns the raw source records used by the builder source picker. Use a returned `id` or `url` with `bricks/list-remote-templates` to inspect remote templates or `bricks/insert-remote-template` to insert one.

    bricks-templates

  100. bricks/list-templatesreadonly

    List all Bricks templates with type, status, and condition summary. Supports pagination and type filter.

    bricks-templates3 properties

  101. bricks/list-theme-stylesreadonly

    Paginated list of theme style summaries (id, label, conditions, settings group counts). Use get-theme-styles with an id for full settings.

    bricks-design2 properties

  102. bricks/list-transfer-itemsreadonly

    Read the unified import/export selector for the current site. Returns exportable transfer types and exact item IDs for color palettes, theme styles, classes, variables, custom fonts, breakpoints, global queries, components, templates, settings tabs, and custom capabilities, filtered by the current user permissions.

    bricks-import-export1 property

  103. bricks/plan-woo-setupreadonly

    Dry-run Bricks WooCommerce setup. Produces a planId plus page creation/reuse/assignment operations, selected classic or advanced presets, template-drafting side effects, blockers, warnings, and confirmation requirements. Defaults to classic mode because modular v2 Woo elements are experimental.

    bricks-woocommerce9 properties

  104. bricks/preview-dynamic-tagreadonly

    Render a dynamic-data expression against a real post so you can verify the output before committing it to a template. Accepts full expressions with modifiers (for example `{post_title:plain}` or `Hello {user_first_name @fallback:'there'}`). Returns the rendered value alongside an `isEmpty` flag, which catches tags that would silently disappear in production. Read-only.

    bricks-reference4 properties

  105. bricks/regenerate-css-filespartial

    Mirror of Settings > Bricks > General > "Regenerate CSS files". Rebuilds the per-post CSS files served when `cssLoading` is `file`. When `cssLoading` is `inline`, the regenerated files act only as a fallback; the live output is still inline `<style>` tags.

    bricks-maintenance

  106. bricks/reindex-filtersdeclares nothing

    Drop/recreate the query-filter index table and queue index jobs. Use after bulk filter changes, schema changes, or to recover from a corrupted index. The background job may continue after this call returns. Equivalent to clicking Regenerate filter index in Bricks > Settings > Query filters.

    bricks-filters

  107. bricks/remove-elementdestructive

    Remove an element and, optionally, all of its children. Destructive: a pre-save revision is captured automatically. Pass the returned `revisionId` to `bricks/restore-revision` to undo.

    bricks-elements6 properties

  108. bricks/render-elementsreadonly

    Render HTML + CSS for a proposed Bricks element tree without saving. Useful for verifying JSON before committing it via element-write abilities. Read-only.

    bricks-elements2 properties

  109. bricks/restore-revisiondestructive

    Roll back a post to a previous revision. Copies Bricks postmeta (element tree + page settings) from the revision onto the current post. Takes a new snapshot first so the restore itself is reversible.

    bricks-revisions2 properties

  110. bricks/run-woo-setupdestructive

    Apply a reviewed Woo setup plan: create only missing Woo pages, reuse matching pages only when empty or shortcode-only, assign Woo page options, optionally enable experimental advanced modular elements, and run the shared Woo setup wizard for selected areas. Existing Bricks/non-empty/block page content requires explicit overwriteExistingPageContent and destructive confirmation.

    bricks-woocommerce12 properties

  111. bricks/save-nav-menupartial

    Create or update a WordPress nav menu, assign registered theme locations, and create/update/reorder menu items from a nested tree. Omitted existing items are preserved, not deleted; use `bricks/delete-nav-menu-items` for explicit item deletion. Supports Bricks item options for top-level items: `megaMenuTemplateId` attaches a published Bricks template for the Nav Menu element mega-menu path, and `multilevel` enables Bricks multilevel behavior.

    bricks-navigation7 properties

  112. bricks/set-breakpointspartial

    Full-replacement write of the breakpoint list. Pass `{ breakpoints: [{ key, label, width, icon?, base? }, ...], customEnabled?: boolean }`; exactly one row must have `base: true`, and keys must be unique. The writer stores rows descending by width to match core Bricks. When `cssLoading` is set to `file`, follow up with `bricks/regenerate-css-files` so on-disk caches pick up the new widths.

    bricks-breakpoints2 properties

  113. bricks/set-builder-role-accesspartial

    Assign existing builder access capabilities to WordPress roles. Empty string means no builder access. The administrator role is intentionally not writable here because Bricks always treats administrators as full access.

    bricks-permissions1 property

  114. bricks/set-disabled-icon-setspartial

    Full-replacement write of the disabled-icon-set list. Use this to hide built-in libraries or custom icon sets from the builder picker. Pass an empty array to re-enable all.

    bricks-icons2 properties

  115. bricks/set-filter-target-querypartial

    Bind a filter element to a target query-loop element via `filterQueryId`. Filter elements that lack this binding never fire. Pass an empty string to unbind. A pre-save revision is taken.

    bricks-filters6 properties

  116. bricks/set-global-settingspartial

    Partial-merge write to Bricks global settings. Pass `{ settings: { key: value, ... } }`; only the keys you send are touched, and everything else is preserved. Keys outside the registry return `bricks_setting_unknown`, and excluded keys return `bricks_setting_excluded`. Every value is validated against the registry schema before write.

    bricks-settings1 property

  117. bricks/set-global-variablespartial

    Upsert global CSS variables. Variables with matching IDs are updated, new ones are appended. Existing variables not in the input are preserved. For spacing and typography scales, use bricks/generate-scale-variables; static values targeting a configured scale prefix are rejected.

    bricks-design2 properties

  118. bricks/set-page-elementsdestructive

    Replace the entire element tree on a page or template. Destructive: every existing element is overwritten. A pre-save revision is captured automatically; pass the returned `revisionId` to `bricks/restore-revision` to undo. Granular alternatives: `bricks/add-element`, `bricks/update-element`, `bricks/remove-element`.

    bricks-elements5 properties

  119. bricks/set-page-settingspartial

    Set page settings via partial merge. Only provided keys are updated.

    bricks-elements5 properties

  120. bricks/set-pseudo-classespartial

    Full-replacement write of the pseudo-class selector list. Each selector must start with `:` and match `/^:[a-z][a-z0-9-]*(\(.+\))?$/i`. Empty/null input resets to the built-in defaults.

    bricks-pseudo-classes1 property

  121. bricks/set-reading-settingspartial

    Set WordPress Reading settings for site builds. Covers `show_on_front`, `page_on_front`, and `page_for_posts` only. Requires manage_options.

    bricks-cms6 properties

  122. bricks/set-style-managerpartial

    Full-replacement write of the style-manager option. Pass null or empty object to reset to defaults.

    bricks-style-manager1 property

  123. bricks/set-template-conditionspartial

    Replace the `templateConditions` array on a template. Each condition has a `main` kind (`any`, `frontpage`, `postType`, `archiveType`, `search`, `error`, `terms`, or `ids`) plus kind-specific fields. Section templates can also include `hookName` and optional `hookPriority` to render on a WordPress hook. Legacy `main=hook` input is normalized to `any` when `hookName` is present. Full replacement, not a merge.

    bricks-templates4 properties

  124. bricks/set-template-settingspartial

    Set template settings via partial merge. Covers conditions, header sticky/popup config, password protection.

    bricks-templates4 properties

  125. bricks/set-woo-setup-optionspartial

    Partial-merge write to the small allow-list of WooCommerce core options Bricks setup needs. Page IDs must reference existing non-trashed pages or 0 to clear, boolean values are stored as WooCommerce yes/no options, and unrelated Woo settings are preserved. Bricks-owned Woo toggles remain in bricks/set-global-settings.

    bricks-woocommerce1 property

  126. bricks/start-herereadonly

    Returns the canonical Bricks workflow rules clients should read once per session: orient via `bricks-get-design-context` before design writes, never force duplicate names, capture `revisionId` on element writes, structured-error-code dispatch, multi-identifier post addressing. Skill-pack users see the same content via their installed skill; skill-less clients get the rules in-band by calling this once on connection.

    bricks-meta

  127. bricks/update-colorpartial

    Partial-merge update of a single palette color. Accepts top-level or nested `color` fields: `light`, `dark`, `raw`, `darkModeEnabled`, `parent`, `type`, `index`, and `utilityClasses`. Raw renames update child shade variables and global references; disabling dark mode removes dark values and dark-mode shades.

    bricks-design11 properties

  128. bricks/update-color-palettepartial

    Rename a color palette. Does not modify its colors. Use create-color / update-color / delete-color for individual color management.

    bricks-design2 properties

  129. bricks/update-componentdestructive

    Update an existing component. Requires expectedDesignSystemVersion from a recent read. Only provided fields are changed, but `elements` replaces the entire component tree, so read the component first with `bricks/get-component` before editing one element. Slot IDs are preserved where possible, and removing slots with instance content is blocked unless `allowSlotOrphans=true` is explicit. Property connections, variants, property groups, block fields, and missing builder metadata are validated.

    bricks-design14 properties

  130. bricks/update-custom-fontpartial

    Update a custom font family. Accepts `family` for renaming and `fontFaces` for full replacement of the face map, keyed by weight/style strings such as `400` or `400italic`. Every file value must reference an attachment ID.

    bricks-fonts3 properties

  131. bricks/update-elementpartial

    Partial-merge update of an existing element's settings. Only provided keys are updated. Pass `null` or `""` for a key to delete it (matches the builder, which removes a key when its control is cleared). Supports dryRun and compact response options.

    bricks-elements9 properties

  132. bricks/update-element-conditionspartial

    Replace the `_conditions` array on an element. Conditions are full-replacement ordered repeaters, never a merge. Missing row IDs are generated. Pass an empty array to clear all conditions. A pre-save revision is taken.

    bricks-elements6 properties

  133. bricks/update-element-interactionspartial

    Replace the element-level `_interactions` array. Order is significant, so this is always a full replacement, never a merge. Missing row IDs are generated. Trigger, action, target, JavaScript function references, and action/trigger-specific required fields are validated. Global-class interactions are read-only here; update the class to change inherited rows. A pre-save revision is taken.

    bricks-interactions6 properties

  134. bricks/update-filter-elementpartial

    Partial-merge update of a filter element's settings. Use to change source (taxonomy/customField/wpField), field mapping, labels, or UI options without touching filterQueryId. For retargeting to a different loop, use set-filter-target-query. A pre-save revision is taken.

    bricks-filters6 properties

  135. bricks/update-form-actionspartial

    Update the actions list and/or partial-merge per-action settings (emailTo, webhookUrl, redirectUrl, etc.). Built-in actions are validated against the same runtime list the Form element uses, so `save-submission` and `unlock-password-protection` require their global settings. Custom action keys are accepted only when a matching `bricks/form/action/{key}` hook is registered. Provide at least one of `actions` or `settings`. A pre-save revision is taken.

    bricks-forms7 properties

  136. bricks/update-form-fieldspartial

    Replace the entire `fields` array on a Form element. Order is significant, so this is always a full replacement, never a merge. Each field needs at least `{ id, type }`, and `type` must be one of the 18 supported field types (see `skills/forms`). A pre-save revision is taken.

    bricks-forms6 properties

  137. bricks/update-global-classpartial

    Update an existing global class. Settings are deep-merged (only provided keys are updated). Selectors are fully replaced.

    bricks-design5 properties

  138. bricks/update-global-querypartial

    Partial-merge update of a global query's label, category, or inline query object. When the `query` field is sent it is replaced in full (no deep merge inside), so always pass the complete query-settings object.

    bricks-queries5 properties

  139. bricks/update-popup-settingspartial

    Partial-merge update of popup-specific template settings: popupCloseOn (esc/backdrop), popupBodyScroll, popupAjax, popupLimitWindow, popupLimitSessionStorage, popupLimitLocalStorage, and popupLimitTimeStorage. Does NOT manage template display conditions (use set-template-conditions) or interaction triggers on opener elements (use update-element-interactions on the caller).

    bricks-popups5 properties

  140. bricks/update-sidebarpartial

    Partial-merge update of a sidebar's `name` and/or `description`. The `id` is immutable; to change it, delete and recreate the sidebar.

    bricks-sidebars3 properties

  141. bricks/update-theme-stylepartial

    Update an existing theme style. By default `settings` is deep-merged into existing settings (only provided keys change). Pass `replace: true` to fully replace the settings object instead. `label` and `conditions` are always replaced when provided.

    bricks-design5 properties

  142. bricks/upload-custom-font-filedeclares nothing

    Upload a font face file (woff2, woff, ttf, otf, or eot) as a private attachment. Enforces an extension allow-list, MIME sniffing via `wp_check_filetype_and_ext`, and an 8 MB size cap (filterable via `bricks/abilities/fonts/max_bytes`). Returns the new attachment ID; pass it to `bricks/update-custom-font` to bind it to a weight and style.

    bricks-fonts2 properties

  143. bricks/upload-custom-icondeclares nothing

    Add an SVG icon to an existing custom icon set. The raw SVG is sanitized server-side, stored as a Media Library attachment, then saved in `BRICKS_DB_CUSTOM_ICONS` with `url` and `attachment_id` so the builder icon manager can use it.

    bricks-icons3 properties

  144. bricks/upload-mediadeclares nothing

    Upload a media file from a URL or base64 data. Returns the attachment object with all size variants, ready to use in Bricks image elements.

    bricks-media7 properties

  145. bricks/upsert-builder-capabilitypartial

    Create or update one custom builder access capability. The capability grants a validated list of builder permission keys and then appears in the Builder access role selector. Built-in Bricks capability ids cannot be overwritten.

    bricks-permissions4 properties

  146. core/get-environment-inforeadonly

    Gibt wichtige Details zum Laufzeitkontext der Website für Diagnose- und Kompatibilitätszwecke zurück (Umgebung, PHP-Runtime, Datenbank-Serverinformationen, WordPress-Version).

    site

  147. core/get-site-inforeadonly

    Gibt die in WordPress konfigurierten Website-Informationen zurück. Standardmäßig werden alle Felder oder optional ein gefilterter Teilsatz ausgegeben.

    site1 property

  148. core/get-user-inforeadonly

    Gibt grundlegende Profildetails des aktuell authentifizierten Benutzers zurück, um Personalisierung, Überwachung und Zugriffsverhalten zu unterstützen.

    user

  149. mcp-adapter/discover-abilitiesreadonly

    Discover all available WordPress abilities in the system. Returns a list of all registered abilities with their basic information.

    mcp-adapter

  150. mcp-adapter/execute-abilitydestructive

    Execute a WordPress ability with the provided parameters. This is the primary execution layer that can run any registered ability.

    mcp-adapter2 properties

  151. mcp-adapter/get-ability-inforeadonly

    Get detailed information about a specific WordPress ability including its input/output schema, description, and usage examples.

    mcp-adapter1 property

  152. snn/active-theme-infodeclares nothing

    Retrieves comprehensive information about the active WordPress theme including version, author, requirements, template files, theme modifications, and supported features. Returns child theme and parent theme data if applicable. Can optionally include all installed themes, template file list, and theme customizer settings. Use this when you need to understand the current theme setup, check compatibility, analyze theme structure, or investigate theme-related issues.

    system-info3 properties

  153. snn/analyze-post-seodeclares nothing

    Performs comprehensive SEO analysis on a WordPress post or page. Checks title length, meta description, keyword usage, content length, heading structure, image alt text, internal/external links, readability score, and provides actionable recommendations. Use this to optimize content for search engines and improve rankings.

    seo2 properties

  154. snn/check-seo-quality-title-and-contentdeclares nothing

    Performs comprehensive SEO analysis on posts (including custom post types) and taxonomy terms. Analysis includes: title optimization (length, power words, numbers), meta description quality, content analysis (word count, readability score, sentence/paragraph structure), keyword density analysis with focus keyword support, heading hierarchy (H1-H6 structure), internal/external link analysis, image alt text audit, URL/slug optimization, duplicate content detection, taxonomy term SEO analysis, and overall weighted SEO scoring. Supports any registered post type (post, page, product, portfolio, etc.) and taxonomy (category, tag, custom taxonomies). Returns detailed scores across multiple categories with actionable recommendations prioritized by impact. Use this to audit content quality, identify SEO issues, and get specific improvement suggestions.

    seo13 properties

  155. snn/create-postdeclares nothing

    Creates a new WordPress post or page with specified title, content (HTML supported), excerpt, status (draft/publish/pending/private), categories, and tags. Automatically sanitizes input and sets the current user as author. Returns the new post ID, permalink, and edit URL. Use this when you need to programmatically create content, import posts, generate articles, or add new pages to the site. Always create as draft first unless explicitly instructed to publish immediately. CRITICAL: Content must be valid HTML with ALL tags properly closed to prevent broken blocks: - Good: <h2>Title</h2><p>Introduction text.</p><ul><li>Point 1</li><li>Point 2</li></ul><p>Conclusion.</p> - Bad: <p>Text without closing <h2>Title</h2> More loose text (will break) - Lists must use: <ul><li>Item</li></ul> or <ol><li>Item</li></ol> - No empty blocks: <p></p> (remove these) See includes/ai/docs/block-generation-rules.md for complete guidelines.

    content7 properties

  156. snn/create-post-summariesdeclares nothing

    Analyzes long-form content and automatically generates TL;DR summaries by extracting key sentences, identifying main points, and creating concise overviews. Detects posts exceeding minimum word count threshold (default 500 words), extracts first paragraph and key sentences, calculates reading time, and suggests summary lengths (short/medium/long). Returns posts needing summaries with suggested content for excerpts. Use this to identify posts missing meta descriptions, generate excerpt suggestions for long articles, improve content accessibility, and help readers quickly understand post topics.

    content-analysis5 properties

  157. snn/create-termsdeclares nothing

    Creates a new term (category, tag, or custom taxonomy term) with name, slug, description, and optional parent (for hierarchical taxonomies). CRITICAL: You MUST provide a valid taxonomy slug. Call list-taxonomies FIRST if you don't know the exact taxonomy slugs available on this site. Common built-in taxonomies: "category" (hierarchical post categories), "post_tag" (flat post tags). Custom taxonomies vary by site (e.g., "product_cat", "course_category"). Returns the new term ID, slug, and URL. Validates taxonomy exists before creation and provides helpful error messages with available taxonomies if invalid slug provided.

    taxonomy5 properties

  158. snn/edit-block-contentdeclares nothing

    Surgically edit existing block content with precision. Use this for targeted modifications without affecting other blocks. WHEN TO USE THIS ABILITY: - User wants to update/modify a SPECIFIC section or block (e.g., "update the pricing section", "change the hero button text") - User wants to insert content BETWEEN existing blocks (e.g., "add a testimonial after the services section") - User wants to delete specific blocks (e.g., "remove the third FAQ item") - User wants to find and replace text/blocks (e.g., "replace all Read More buttons with Get Started") CRITICAL: POST_ID AUTO-DETECTION - post_id is OPTIONAL when user is in block editor - The ability will automatically detect post_id from context - Only provide post_id manually if editing a different post than the current one - Accepts both integer (123) and string ("123") formats ABSTRACT TARGETING SYSTEM (Priority Order): 1. anchor (BEST) - Target by HTML ID (e.g., "snn-section-hero-x92") - Most reliable, survives text changes - Use when available from pattern generation 2. section_identifier - Target by heading text (e.g., "About Us") - Fuzzy match fallback - Less reliable if user changes text 3. block_index - Target by position (e.g., 0 = first, -1 = last) - Use when other methods unavailable - Changes if blocks are added/removed AVAILABLE EDIT ACTIONS: 1. INSERT_AT_INDEX - Insert new blocks at a specific position - Use when user says: "add X after/before Y", "insert X at position N" - Parameters: insert_index (required), content (required) - Example: Insert testimonial after services section 2. REPLACE_BLOCK_RANGE - Replace a range of blocks - Use when user says: "replace the X section", "change blocks 3-5" - Parameters: start_index (required), end_index (required), content (required) - Example: Replace pricing table with new one 3. DELETE_BLOCKS - Delete blocks by index range - Use when user says: "remove X section", "delete the third item" - Parameters: start_index (required), end_index (optional, defaults to start_index) - Example: Remove FAQ item 4. FIND_AND_REPLACE_SECTION - Find section by heading/anchor and replace it - Use when user says: "update the About Us section", "change the Services heading" - Parameters: anchor OR section_identifier (required), content (required) - Example: Update "Who We Are" section content - NOTE: This finds the heading block matching identifier and replaces it + all blocks until next heading 5. FIND_AND_REPLACE_TEXT - Find and replace text within blocks - Use when user says: "change all mentions of X to Y", "replace the word X" - Parameters: find_text (required), replace_text (required), block_types (optional array) - Example: Replace "Read More" with "Learn More" in all buttons PARAMETERS: - post_id: (integer|string, optional) Post ID to edit - auto-detects from context if omitted - action: (string, required) Edit action type - anchor: (string, optional) HTML anchor/ID for abstract targeting (MOST RELIABLE) - section_identifier: (string, optional) Heading text or fuzzy match string - block_index: (integer, optional) Target by position (0=first, -1=last) - content: (string) Block markup to insert/replace - insert_index: (integer) Position to insert blocks - start_index: (integer) Start index for range operations - end_index: (integer) End index for range operations - find_text: (string) Text to find for replacement - replace_text: (string) Text to replace with - block_types: (array) Optional: limit operations to specific block types - fallback_to_append: (boolean) If target not found, append instead of failing (default: false) - save_immediately: (boolean) Save post after edit (default: false) RETURN FORMAT: Returns client_command for real-time editor updates with: - type: "edit_block_content" - action: the edit action performed - All relevant parameters for JavaScript execution - requires_client_update: true EXAMPLES: 1. Update hero section by anchor (BEST METHOD): { "action": "find_and_replace_section", "anchor": "snn-section-hero-a7f", "content": "<!-- wp:heading --><h1>Shorter Title</h1><!-- /wp:heading -->" } 2. Update hero section by text (FALLBACK): { "action": "find_and_replace_section", "section_identifier": "Hero", "content": "<!-- wp:heading --><h1>Shorter Title</h1><!-- /wp:heading -->" } 3. Insert testimonial after services (auto-detect post_id): { "action": "insert_at_index", "insert_index": 1, "content": "<!-- wp:quote -->...</quote><!-- /wp:quote -->" } 4. Replace pricing section: { "post_id": 123, "action": "replace_block_range", "start_index": 5, "end_index": 8, "content": "<!-- wp:group -->...new pricing...<!-- /wp:group -->" } 5. Delete third FAQ item: { "action": "delete_blocks", "start_index": 2 } 6. Replace button text across all buttons: { "action": "find_and_replace_text", "find_text": "Read More", "replace_text": "Learn More", "block_types": ["core/button"] } CRITICAL WORDPRESS BLOCK RULES: - All HTML tags must be properly closed - Block comments must have opening and closing pairs - JSON attributes must be valid (no trailing commas) - Escape % symbols as %% in inline styles - See generate-block-pattern ability for full block syntax rules

    content14 properties

  159. snn/generate-block-patterndeclares nothing

    Generates rich, detailed block patterns using WordPress core blocks. Creates complete sections from scratch with professional styling. Use for rapid prototyping and structured layouts. PATTERN TYPES (pattern_type): - hero: Hero banners with headings, descriptions, CTAs (large text, centered, buttons) [ALIGN: full] [CLASS: hero-section] - about: About sections with text + imagery (2-column, lists, professional) [ALIGN: wide] [CLASS: about-section] - services: Service grids (1-4 columns, titles, descriptions) [ALIGN: wide] [CLASS: services-section] - cta: Call-to-action sections (centered, prominent buttons, conversion-focused) [ALIGN: full] [CLASS: cta-section] - testimonials: Customer reviews (quotes in columns, attribution) [ALIGN: wide] [CLASS: testimonials-section] - team: Team member grids (images, names, positions, configurable columns) [ALIGN: wide] [CLASS: team-section] - stats: Statistics showcase (large numbers, labels, multi-column) [ALIGN: wide] [CLASS: stats-section] - faq: FAQ sections (accordion/details blocks, expandable Q&A) [ALIGN: wide] [CLASS: faq-section] - custom: Generic flexible pattern [ALIGN: none] [CLASS: custom-section] ALIGNMENT BEHAVIOR: Patterns automatically apply appropriate alignment based on type: - "full" (alignfull): Full-width edge-to-edge sections for maximum impact (hero, cta) - "wide" (alignwide): Wide but contained sections for most content (services, about, team, testimonials, stats, faq) - "none": Default constrained width for generic content STYLE OPTIONS (style_preference): modern (clean/contemporary), minimal (essential only), bold (attention-grabbing), elegant (refined), playful (creative/fun), professional (corporate), creative (artistic/unique) KEY PARAMETERS: - content_description: BE SPECIFIC about headings, text, items, layout. Good: "Hero with heading 'Transform Business', subtext about digital services, 'Get Started' button". Bad: "Make a hero" - layout_columns: 1-4 columns for grids (services, team, testimonials, stats) - color_scheme: {background: "#fff", text: "#000", accent: "#0066cc"} - spacing: compact (40/16/8px), normal (80/24/12px), spacious (120/40/20px) - action_type: replace (all content), append (add to end), prepend (add to start) - semantic_class: Optional custom semantic class name. If not provided, defaults to pattern-type-based class (hero-section, services-section, etc.) USAGE EXAMPLES: 1. Hero: {pattern_type: "hero", content_description: "Heading 'Welcome to Our Agency', description about creative services, 'Start Project' button", style_preference: "modern", color_scheme: {background: "#000", text: "#fff", accent: "#00ff88"}, semantic_class: "agency-hero"} 2. Services: {pattern_type: "services", content_description: "3 services: Web Dev (custom sites), Mobile Apps (iOS/Android), Cloud (scalable)", layout_columns: 3, semantic_class: "our-services"} 3. Stats: {pattern_type: "stats", content_description: "500+ projects, 50+ team, 98% satisfaction", spacing: "spacious", semantic_class: "company-stats"} 4. Team: {pattern_type: "team", content_description: "4 leadership members", layout_columns: 4, include_images: true, semantic_class: "leadership-team"} AVAILABLE CORE BLOCKS: Layout: group, columns, column, cover, media-text, spacer, separator | Content: paragraph, heading, list, list-item, quote, pullquote, table | Media: image, gallery, video, audio | Interactive: button, buttons, accordion, details, social-links CRITICAL WORDPRESS BLOCK RULES (prevent broken blocks): 1. HTML STRUCTURE: - Close ALL tags: <p>Text</p> NOT <p>Text - Proper nesting: <p><strong>Bold</strong></p> NOT <strong><p>Bold</p></strong> - Lists need containers: <ul><li>Item 1</li><li>Item 2</li></ul> - No loose text outside block elements - Escape % symbols in inline styles: 50%% NOT 50% 2. BLOCK COMMENT SYNTAX: - Opening: <!-- wp:block-name {JSON_attributes} --> - Closing: <!-- /wp:block-name --> - Self-closing NOT allowed - always use opening/closing pair - JSON must be valid: {"key":"value"} with proper quotes - No trailing commas in JSON objects 3. BLOCK ATTRIBUTES (JSON structure): - metadata: {"categories":["category"],"patternName":"name","name":"Display Name"} - style: {"spacing":{},"color":{},"typography":{},"border":{},"elements":{}} - layout: {"type":"constrained|flex","contentSize":"1180px","justifyContent":"left|center|right"} - Spacing: {"padding":{"top":"80px","right":"26px","bottom":"80px","left":"26px"},"margin":{"top":"0","bottom":"0"},"blockGap":"24px"} - Border: Individual sides {"top":{"color":"#e0e0e0","width":"1px","style":"solid"},"radius":"24px"} 4. CSS CLASSES (WordPress conventions): - Color classes: has-text-color, has-background, has-link-color, has-{slug}-color - Typography: has-custom-font-size (required when using inline font-size styles) - Border: has-border-color - Alignment: has-text-align-center, aligncenter, alignleft, alignright - Always include semantic classes when using colors/backgrounds/typography 5. SEMANTIC CLASS NAMES: - ALWAYS include semantic className in root group: "className":"pattern-section" - Pattern type defaults: hero-section, about-section, services-section, cta-section, etc. - Use descriptive, kebab-case names: agency-hero, our-services, company-stats - Class appears in HTML: class="wp-block-group alignfull hero-section has-text-color..." - Allows for easy CSS targeting and styling customization 6. INLINE STYLES (format strictly): - Format: style="property:value;property:value" - Colors: color:#000000;background-color:#ffffff - Spacing: margin-top:24px;padding-top:80px (include units) - Typography: font-size:48px;line-height:1.2;font-weight:500 - Borders: border-radius:24px;border-color:#e0e0e0;border-width:1px - No spaces around colons/semicolons 7. COLUMN LAYOUTS: - Parent: <!-- wp:columns {"style":{}} --> - Child: <!-- wp:column {"width":"50%%"} --> (escape % as %%) - Use flex-basis in inline style: style="flex-basis:50%%" - Equal columns: omit width attribute - Column gaps: blockGap:{"top":"34px","left":"24px"} 8. COLOR INHERITANCE: - Elements for link colors: "elements":{"link":{"color":{"text":"#000"}}} - Apply to parent groups to cascade to children - Use both class and inline style for reliability 9. IMAGE BLOCKS: - Structure: <!-- wp:image {"sizeSlug":"large","align":"center"} --> - Wrap in <figure>: <figure class="wp-block-image"><img src="" alt=""/></figure> - Always include alt text (can be empty: alt="") - Include size classes: size-large, aligncenter - For sized images: {"width":"161px","height":"auto"} 10. BUTTON BLOCKS: - Always wrap button in buttons: <!-- wp:buttons --> with <!-- wp:button --> - Structure: <div class="wp-block-button"><a class="wp-block-button__link">Text</a></div> - Include wp-element-button class on link - CRITICAL: When using custom font size, add has-custom-font-size class - Example: class="wp-block-button__link has-text-color has-background has-custom-font-size wp-element-button" - Colors: {"style":{"color":{"background":"#000","text":"#fff"}}} 11. SPACING CONSISTENCY: - Section padding: 80px (normal), 40px (compact), 120px (spacious) - Block gaps: 24px (normal), 16px (compact), 40px (spacious) - Element margins: 12px (normal), 8px (compact), 20px (spacious) - Always use margin:{top:"0",bottom:"0"} on containers to prevent double spacing 12. METADATA REQUIREMENTS: - Root group must have: {"metadata":{"categories":["type"],"patternName":"unique-slug","name":"Display Name"}} - Categories match pattern type: hero, about, services, cta, testimonials, team, stats, faq - patternName should be unique and descriptive 13. VALIDATION CHECKLIST: - Every opening block comment has matching closing comment - All HTML tags are properly closed and nested - JSON attributes are valid (no trailing commas, proper quotes) - All % symbols in styles are escaped as %% - Color values are valid hex codes (#000000 not #000) - Spacing values include units (24px not 24) - Classes match WordPress conventions - Semantic className is included in root group and appears in HTML class attribute BEST PRACTICES: - Always include semantic class names (hero-section, services-section, custom-hero, etc.) for easy CSS targeting - Be descriptive in content_description (specific headings, exact text, structure details) - Match colors to brand (use color_scheme with hex codes, always 6 digits: #000000 not #000) - Choose appropriate spacing (compact for dense info, spacious for emphasis) - Layer patterns with action_type: "append" to build complete pages - Use layout_columns based on content: 1 (detailed), 2 (balanced), 3 (standard grid), 4 (dense grid) - Maintain consistent contentSize: 1180px for full width, 900px for centered content, 800px for narrow (CTA/FAQ) - Apply margin:{top:"0",bottom:"0"} to container groups to prevent unwanted spacing - Use semantic heading levels: h2 for section titles, h3 for subsection titles - Include both CSS classes AND inline styles for maximum compatibility - Test color contrast: ensure text is readable against backgrounds (WCAG AA minimum) - Use blockGap instead of individual margins where possible for consistency - Group related elements in nested groups for better structure and maintainability

    content10 properties

  160. snn/get-commentsdeclares nothing

    Retrieves comments with full details including comment ID, post ID, author name, email, content, date, and approval status. Can filter by specific post ID to get post-specific comments or retrieve site-wide comments. Supports filtering by status (approved, pending, spam) and limiting results (max 100 for performance). Returns array of comment objects. Use this to moderate comments, analyze engagement, find spam comments, check specific post discussions, or export comment data.

    comments3 properties

  161. snn/get-mediadeclares nothing

    Retrieves media library items (images, videos, documents, audio) with complete details including attachment ID, title, file URL, MIME type, file size in bytes, upload date, and alt text. Can filter by MIME type (e.g., "image/jpeg", "image/png", "application/pdf", "video/mp4") to get specific file types. Limited to 100 items per request for performance. Use this to audit media library, find unused images, check file sizes, locate specific media types, export media data, or analyze media usage patterns.

    media2 properties

  162. snn/get-post-by-iddeclares nothing

    Retrieves complete details for a specific post by ID including title, full content (unfiltered HTML), excerpt, status, post type, permalink, edit URL, author information (ID and display name), publication date, last modified date, assigned categories (with IDs, names, slugs), and tags (with IDs, names, slugs). Use this when you need full post data for a known post ID, to read specific content, analyze post details, check metadata, or prepare content for editing. More detailed than get-posts which returns summarized data.

    content1 property

  163. snn/get-post-contentdeclares nothing

    Retrieves the full content and metadata of a WordPress post or page. Returns title, content (both raw HTML and plain text), excerpt, status, author, dates, categories, tags, featured image, word count, and block information. Use this to analyze or read existing content, check what's in a post before editing, or gather information for SEO analysis.

    content2 properties

  164. snn/get-post-metadeclares nothing

    Retrieves custom fields and metadata for a specific post by ID. Can fetch a specific meta key value or all metadata at once. Automatically filters out WordPress internal/protected fields (those starting with underscore) when retrieving all meta. Returns clean key-value pairs of post metadata. Use this to access custom field values, ACF fields, post metadata added by plugins, custom post settings, or any data stored in the postmeta table. Essential for reading custom data attached to posts.

    content2 properties

  165. snn/get-postsdeclares nothing

    Retrieves a list of posts with filtering and sorting options. By default includes both published and draft posts since users are in dashboard context. Returns post ID, title, permalink, excerpt (30 words), publication date, post status, and author display name. Supports filtering by post type (post/page/custom), post status, category slug, ordering (date/title/modified/random), sort direction (ASC/DESC), and limiting results (max 100 for performance). Returns summarized data - use get-post-by-id for full content. Use this to list recent posts, browse by category, get post overviews, create content listings, or analyze publication patterns.

    content6 properties

  166. snn/get-site-infodeclares nothing

    PREFERRED SYSTEM INFO TOOL: Retrieves comprehensive WordPress site health report including: WordPress version/config/theme, server details (software/OS/hostname/IP), PHP version/settings/memory limits/extensions/opcache status, database version/charset/table count, complete content statistics (posts/pages/media/comments/users by type and status), active plugin list with versions, security settings (SSL/file editing/auto-updates/user registration), performance metrics (object cache/cron/disk space/writable directories), and important WordPress constants. Use this as your FIRST call for system diagnostics, troubleshooting, compatibility checks, or getting a complete site overview. Most comprehensive system information available.

    system

  167. snn/get-tagsdeclares nothing

    Retrieves post tags (post_tag taxonomy) with ID, name, slug, post count, tag archive URL, and description. Can show/hide empty tags and limit result count. Returns flat list of all tags. This is a convenience wrapper for get-terms with taxonomy="post_tag". Use this for quick tag listings, tag clouds, or when you specifically need post tags. For more advanced filtering, custom taxonomies, or hierarchical terms, use get-terms or list-taxonomies instead.

    taxonomy2 properties

  168. snn/get-termsdeclares nothing

    Retrieves terms from any taxonomy with advanced filtering options. Returns term ID, name, slug, taxonomy, post count, URL, parent ID, and description. Supports filtering by taxonomy (REQUIRED - call list-taxonomies first if unknown), show/hide empty terms, limit count (max 100), ordering (name/slug/count/ID), sort direction, parent ID (for hierarchical taxonomies), and search. CRITICAL: Must provide valid taxonomy slug - built-in ones are "category" and "post_tag", but custom taxonomies vary by site. Validates taxonomy and provides helpful errors. Use this for advanced term queries, building category trees, filtered term lists, or working with custom taxonomies.

    taxonomy7 properties

  169. snn/get-usersdeclares nothing

    Retrieves WordPress users with complete details including user ID, username (login), display name, email address, assigned roles (administrator/editor/author/contributor/subscriber), registration date/time, and total authored post count. Can filter by specific role and limit results (max 100 for performance). Use this when you need user lists, want to find users by role, need email addresses for notifications, analyze author activity, check user registrations, or export user data. Returns all public user information.

    users2 properties

  170. snn/installed-plugin-list-and-infosdeclares nothing

    Retrieves comprehensive information about all installed plugins including: plugin file path, name, version, description, author, URIs, text domain, WordPress/PHP requirements, active/inactive status, and available updates with version numbers. Can filter by status (all/active/inactive/update_available), search by name/description, and optionally include must-use plugins and drop-ins. Returns counts, update information, and sorted lists (active first). Use this to audit plugins, check for updates, find inactive plugins, troubleshoot conflicts, document site setup, or analyze plugin requirements.

    system-info4 properties

  171. snn/list-taxonomiesdeclares nothing

    CRITICAL DISCOVERY TOOL: Lists all registered taxonomies on the site with slug (required for get-terms/create-terms), singular/plural names, hierarchical status (true for category-like, false for tag-like), public visibility, associated post types, and term count. Can filter by public taxonomies only or by post type association. ALWAYS call this FIRST when working with taxonomies if you don't know the exact taxonomy slugs - never guess taxonomy names. Built-in taxonomies are "category" and "post_tag", but sites often have custom ones like "product_cat", "course_category", "portfolio_tag". Returns sorted list by label.

    taxonomy2 properties

  172. snn/search-contentdeclares nothing

    Performs full-text search across WordPress content (posts, pages, custom post types) matching query against titles and content. Returns post ID, title, post type, permalink, excerpt (20 words), publication date, plus total found count and returned count. Can limit to specific post type or search all ("any"), supports pagination with limit/offset (max 100 per request), searches any post status. Use this to find posts by keyword, locate specific content, search across all content types, or build search functionality. Returns relevance-ordered results matching WordPress default search behavior.

    content4 properties

  173. snn/suggest-content-ideasdeclares nothing

    Analyzes existing categories and tags to identify content gaps and generate strategic content suggestions. Finds empty or underutilized categories/tags (below threshold), identifies popular topics, suggests cross-referencing popular categories with underused tags, and prioritizes opportunities. Returns gap analysis (empty vs underutilized), suggestion list with priority levels (high/medium), popular topics rankings, and analysis summary. Use this for content strategy planning, editorial calendar ideas, identifying neglected topics, balancing content coverage, or finding new angles by combining popular and underused topics.

    content-analysis3 properties

  174. snn/update-postdeclares nothing

    Updates an existing post by ID with new title, content (HTML supported), status (draft/publish/pending/private), or excerpt. All fields are optional - only provided fields will be updated. Automatically sanitizes input and preserves unchanged fields. Returns post ID, success status, updated permalink, and last modified timestamp. Use this to edit existing content, change post status, update excerpts, revise posts, or programmatically modify content. Requires post ID - use get-posts or search-content to find posts first if ID unknown. CRITICAL: When updating content, use valid HTML with ALL tags properly closed to prevent broken blocks: - Good: <h2>Updated Section</h2><p>New content here.</p><ul><li>Item 1</li><li>Item 2</li></ul> - Bad: <p>Unclosed tag <h2>Title (will cause block recovery errors) See includes/ai/docs/block-generation-rules.md for guidelines.

    content5 properties

  175. snn/update-post-metadatadeclares nothing

    Updates metadata (title, excerpt, status, categories, tags, featured image) for a WordPress post or page. Does not modify the main content. Use this to change post settings, update SEO excerpts, change publication status, assign categories/tags, or set the featured image. Supports both post and page types.

    content7 properties

Captured 2026-08-02 with cwp abilities --json against Bricks 2.4-beta2 on WordPress 7.0.2. The classification is computed from the annotations rather than stored, so the counts above and the badges below cannot disagree.