The Bricks MCP tools catalog

Bricks MCP tools for AI agents

Respira tools for Bricks Builder. Global classes, color palette, theme styles, typography variables, the bricks_template component library, and full ACSS-aware element tree operations.

69tools
3categories
100%writes snapshot-backed

Page Builder Core(17)

Cross-builder element operations. Target elements by selector or ID, extract content, inject content, patch pages, find builder-specific targets. The intelligence layer under every builder-native tool.

wordpress_get_builder_info
Detect which page builder is active on the site and get its version, support level (Full Intelligence / Smart Defaults / Basic), available modules/widgets, and capabilities. Call this first before working with builder content to understand what format to use. Pass debug=true to bypass the cache and include per-builder detection_signals (constants, classes, active plugin slugs, plugin headers, theme) — use this when a builder is installed but reports detected=false.
read maker
wordpress_list_theme_builder_templates
List the Divi Theme Builder global templates on the site (headers, footers, and body layouts). Each entry carries a layout_id you pass to update_theme_builder_template or apply_builder_patch to edit it, its kind (header/footer/body), name, and where it is assigned. Use this to find a global header before editing it (e.g. to build a mega menu). Works on Divi 4 and Divi 5.
read maker
wordpress_create_theme_builder_template
Create a Divi global header, footer, or body Theme Builder template, with optional page assignments. Snapshot-protected (reversible within a session). Pass structure as a Divi 4 shortcode string, or a Divi 5 block/node array. Works on Divi 4 and Divi 5.
write maker
wordpress_update_theme_builder_template
Replace the content of an existing Divi Theme Builder layout (a global header, footer, or body) by its layout_id (from list_theme_builder_templates). This rewrites the layout on EVERY page that uses it, and unlike a page edit it goes live immediately: there is no staged duplicate and no approval step, because Divi resolves a global layout by id and a second copy would compete with the original. A snapshot is taken first, so it is reversible with restore_snapshot. The first call is refused unless confirm_live_edit is true. For a targeted single-module edit, use apply_builder_patch on the same layout_id instead. Works on Divi 4 and Divi 5.
write maker
wordpress_extract_builder_content
Extract the full structured content from a page as builder-native JSON. Use this to see the complete page layout with all sections, columns, and widgets. For targeted searches, prefer find_element (faster). For a lightweight overview, prefer find_builder_targets. Returns the raw builder data structure that can be modified and passed back to inject_builder_content. Works on any post type (pages, posts, custom post types). The `builder` arg is optional — if omitted, the active site builder is auto-detected via get_builder_info.
read maker
wordpress_find_builder_targets
List all editable builder modules/blocks on a page with their types, labels, and text content — without returning the full builder JSON. Use this for a quick overview of what is on a page. For finding a specific element by text or class, use find_element instead. Returns `total_matches` (true total independent of limit), `offset`, `has_more`, and `next_offset` for pagination. WPBakery / Uncode targets now surface a populated `label` / `admin_label` / `text` so you do not have to grep the raw shortcode preview.
read maker
wordpress_get_builder_inline_schemas
Per-shortcode / per-block inline attribute schemas for the requested builder. Currently populated for WPBakery + Uncode + TagDiv via vc_map() at runtime (cached as a transient for 1h). Other builders return `schemas: {}` + `supported: false` + a structured hint. Use this to discover what attributes a specific `vc_*` / `uncode_*` shortcode accepts before writing.
read maker
wordpress_inject_builder_content
REPLACE (or append to) the entire page builder layout. WARNING: By default this REPLACES all existing content (use mode:"append" to add content without destroying existing elements). For editing a single module, use wordpress_update_module instead. Use exactly: gutenberg, divi, elementor, bricks, beaver, oxygen, breakdance, brizy, thrive, visual-composer, wpbakery, flatsome, spectra, kadence, generateblocks, greenshift. For Divi, divi_version is required ("4" or "5"). Replacing a page that already has content with mode="replace" requires confirm_replace=true, else returns 409 respira_replace_confirmation_required. Alternatives: mode="append" to add to existing content, or edit_target="live" to overwrite the live page directly. The gate prevents silent data loss.\n\nCanonical Divi 5 nested shape: `content: [{ type: "section", children: [{ type: "row", children: [{ type: "column", children: [{ type: "heading", settings: {...} }] }] }] }]` (rows/cols/columns/modules/elements/innerBlocks also accepted as `children` aliases). Each Divi module needs its render-critical attr in `settings` (e.g. heading→title, text→content, button→button_text); the plugin names any missing one via `respira_divi_required_attrs_missing`.
write maker
wordpress_update_module
Update a specific module within a page builder page. Supports finding modules by admin_label, path, or type. Only updates the specified module while preserving all other content.
write maker
wordpress_apply_builder_patch
Apply a list of targeted builder patch operations. Each operation is { identifier: { id|admin_label|path|type [+match_content] }, updates: { content?, attributes?, ...flat_settings? } }. The identifier block follows the same shape as wordpress_find_element\
write maker
wordpress_find_element
Find an element in a page by ID, type, CSS class, text content, or uncode_shortcode_id. This is the PRIMARY tool for locating content to edit — use it instead of searching the database or reading PHP files. Works with all 17 page builders. Use identifier_type "content" to search by visible text (e.g. find a heading containing "2025" to update a year). On WPBakery + Uncode pages, prefer identifier_type "uncode_shortcode_id" — the id is stable across saves and theme updates while class lists and admin labels drift. Returns matching element(s) with their position, settings, and element ID for use with update_element.
read maker
wordpress_update_element
Update settings or content on a specific element in a page. This is the PRIMARY tool for making content changes (text edits, style changes, image swaps, link updates, etc.). Works with all 17 page builders. First use find_element to locate the element, then pass the same identifier here with the updates object containing the new values. On WPBakery + Uncode pages, prefer identifier_type "uncode_shortcode_id" for stable round-trip matching. Response includes target_id, original_id, edit_target ("live" or "duplicate"), is_duplicate, duplicate_created and post_status so the caller can never mistake a duplicate-routed write for a live-page change.\n\nLive-edit confirmation: when respira_allow_direct_edit=1 AND the post is a published original, the first call returns `status: "confirmation_required"` with a `next_call_examples` payload. Re-call with the suggested `edit_target` (and `confirm_live_edit: true` for the live path) to acknowledge. Both params are exposed at the top level here so autonomous flows can complete the handshake through MCP without polluting the `updates` object.
write maker
wordpress_move_element
Move an element to a different container or position within the page. Locate the element using the same identifier_type/identifier_value pattern as respira_find_element / respira_remove_element. The destination is a container PATH (e.g. "0.1" for sections[0].rows[1], or "root"/empty for top level), not a container element id.\n\nLive-edit confirmation: when writing to a published original, the first call can return `status: "confirmation_required"` with a `next_call_examples` payload. Re-call with `edit_target` (and `confirm_live_edit: true` for the live path) to acknowledge. Both params are exposed at the top level here; earlier schemas omitted them, so agents saw the handshake but could never complete it (C.Y., Elementor, bug: infinite confirmation loop).
write maker
wordpress_duplicate_element
Duplicate an element in a page. The copy is inserted immediately after the original. Uses the same identifier_type / identifier_value contract as find_element / update_element / remove_element — first locate the element, then pass the matching identifier here. Builders with no stable element IDs (WPBakery, Uncode, Flatsome, Visual Composer) should use identifier_type="text" / "css_class" / "widget_type" / "path" instead of "id".
readwrite maker
wordpress_remove_element
Remove an element from a page. Use the same identifier_type/identifier_value pattern as find_element and update_element — first locate the element, then pass the matching identifier to remove it.
destructive maker
wordpress_reorder_elements
Reorder child elements within a container. The container is identified by its PATH inside the page (e.g. "0.1" for sections[0].rows[1], or "root"/"" for the top level).\n\nLive-edit confirmation: when writing to a published original, the first call can return `status: "confirmation_required"`. Re-call with `edit_target` (and `confirm_live_edit: true` for the live path) to acknowledge. Both params are exposed at the top level here; earlier schemas omitted them, so agents could never complete the handshake.
write maker
wordpress_convert_html_to_builder
Convert HTML into native page builder content. Extracts CSS styles, maps sections to builder widgets, and creates a page with a fidelity report showing conversion accuracy.
write maker

Widget Shortcuts(27)

Convenience tools for adding common page-builder widgets (heading, button, image, section, etc.) without needing the full element schema. Accepts natural prompts like "add a hero with title X".

add_heading
Add a heading widget to a page.
write maker
add_text
Add a text/paragraph widget to a page.
write maker
add_button
Add a button widget to a page.
write maker
add_image
Add an image widget to a page.
write maker
add_section
Add a section container to a page.
write maker
add_video
Add a video widget to a page.
write maker
add_divider
Add a divider/horizontal rule to a page.
write maker
add_spacer
Add vertical spacing to a page.
write maker
add_icon
Add an icon widget to a page.
write maker
add_icon_list
Add an icon list widget to a page.
write maker
add_social_icons
Add social media icons to a page.
write maker
add_form
Add a contact form to a page.
write maker
add_map
Add a Google Maps widget to a page.
write maker
add_counter
Add a number counter widget to a page.
write maker
add_progress_bar
Add a progress bar widget to a page.
write maker
add_testimonial
Add a testimonial widget to a page.
write maker
add_tabs
Add a tabbed content widget to a page.
write maker
add_accordion
Add an accordion/FAQ widget to a page.
write maker
add_toggle
Add a toggle (collapsible content) widget to a page.
write maker
add_alert
Add an alert/notice widget to a page.
write maker
add_html
Add a raw HTML widget to a page.
write maker
add_sidebar
Add a sidebar widget area to a page.
write maker
add_slider
Add an image/content slider to a page.
write maker
add_pricing_table
Add a pricing table widget to a page.
write maker
wordpress_add_stock_image
Search for a stock image, download it to the Media Library, and add it as an image widget to a page — all in one call. Builder-agnostic: works with Elementor, Bricks, Beaver Builder, etc. Saves 3 separate tool calls.
write maker

Bricks Intelligence(25)

Bricks Builder-native tools: global classes, color palette, theme styles, typography variables, and the bricks_template component library. Full ACSS awareness.

wordpress_list_bricks_global_classes
List all Bricks global CSS classes with their settings (CSS properties). Returns array of {id, name, settings, category}. Use this to discover existing design tokens before creating new ones.
read maker needs bricks
wordpress_create_bricks_global_class
Create a new Bricks global CSS class. Settings use Bricks composite key format (e.g. "_padding", "_margin", "_typography"). Returns the created class with its generated ID.
write maker needs bricks
wordpress_update_bricks_global_class
Update an existing Bricks global class. Merges provided fields into the existing class — omitted fields are preserved. Returns previous and current state for rollback.
write maker needs bricks
wordpress_delete_bricks_global_class
Delete a Bricks global class by ID. Returns the deleted class data for rollback. Warning: elements referencing this class will lose its styling.
destructive maker needs bricks
wordpress_get_bricks_theme_styles
Get the Bricks theme styles configuration. Returns an object keyed by style ID, each containing label, settings (with element-type groups like "heading", "text-basic", "button"), and conditions.
read maker needs bricks
wordpress_update_bricks_theme_styles
Update Bricks theme styles (full replace). Pass the complete styles object. Returns previous and current values for rollback. Affects site-wide typography, colors, and element defaults.
write maker needs bricks
wordpress_get_bricks_color_palette
Get the Bricks color palette. Returns array of palette groups, each with {id, name, colors: [{id, raw, name}]}. Colors use raw hex values or CSS variable references.
read maker needs bricks
wordpress_update_bricks_color_palette
Update the Bricks color palette (full replace). Pass the complete palette array. Returns previous and current values for rollback.
write maker needs bricks
wordpress_get_bricks_typography
Get Bricks global CSS variables and typography scales. Returns {variables: [{id, name, value, category}], categories: [{id, name, scale?}]}. Categories with a "scale" property are typography scales.
read maker needs bricks
wordpress_update_bricks_typography
Update Bricks global CSS variables and typography. Pass variables array and optionally categories. Returns previous and current values for rollback.
write maker needs bricks
wordpress_list_bricks_components
List all Bricks saved templates/components (reusable element groups). Returns array of {id, title, type, modified}. Components are stored as bricks_template custom post type.
read maker needs bricks
wordpress_get_bricks_component
Get a Bricks component/template by ID. Returns the full element structure ({id, title, type, elements}) that can be inspected or applied to a page.
read maker needs bricks
wordpress_apply_bricks_component
Insert a Bricks component/template into a page. Clones the component elements with new IDs and inserts them at the specified position. Creates a snapshot before writing.
write maker needs bricks
wordpress_search_bricks_elements
Search across ALL pages and templates for Bricks elements by type, global class, or setting value. Finds every instance of a specific element type, class usage, or setting across your entire site.
read maker needs bricks
wordpress_bricks_health_check
Run a health check on a Bricks page. Detects orphaned elements, duplicate IDs, broken parent/child references, invalid global class references, empty containers, and heading hierarchy issues. Returns issues sorted by severity.
read maker needs bricks
wordpress_bricks_detect_acss
Detect if Automatic.css (ACSS) is installed and active. Returns ACSS version, utility class count, color variables, and spacing variables. Use before importing ACSS classes into the Bricks global class registry.
readwrite maker needs bricks
wordpress_bricks_import_acss
Import Automatic.css utility classes into the Bricks global class registry. Skips classes that already exist. Imported classes are tagged with an ACSS source marker. Run detect_acss first to preview what will be imported.
write maker needs bricks
wordpress_bricks_import_design_tokens
Import a design-token file into the Bricks colour palette and global CSS variables. Accepts a Tailwind theme object, a Figma Tokens Studio export, or a Style Dictionary / DTCG file. Colours land as palette swatches plus `--color-*` variables; spacing, typography, radius and shadow tokens land as grouped CSS variables. Aliases (e.g. {colors.primary}) are resolved and names are deduped against existing palette colours and variables, so re-running imports nothing new. Set dry_run to preview what would be imported.
write maker needs bricks
wordpress_bricks_list_section_presets
List the curated Bricks section presets (hero, features, CTA, testimonials, pricing, stats, FAQ, ...). Returns each preset slug with title, description, category and tags. Use a slug with wordpress_bricks_insert_section_preset to drop a production-ready section onto a Bricks page.
read maker needs bricks
wordpress_bricks_insert_section_preset
Insert a curated section preset into a Bricks page as a new section. Elements get fresh ids and are appended (or placed at a position). Multi-column presets use flex rows, so a follow-up wordpress_make_responsive call makes them fully responsive. Run wordpress_bricks_list_section_presets first to pick a slug.
readwrite maker needs bricks
wordpress_bricks_scaffold_bem
Scaffold a BEM block as Bricks global classes. Given a block name plus element and modifier lists, it creates block, block__element, and block--modifier global classes (skipping any that already exist) and returns the name->id map so you can assign them to elements via _cssGlobalClasses. Set dry_run to preview the names without creating them.
readwrite maker needs bricks
wordpress_bricks_lint_bem
Audit the existing Bricks global-class registry against the BEM convention. Returns only the offending class names, each with the reasons it is not BEM-shaped (uppercase, whitespace, single underscore, multiple element/modifier segments, wrong order) and a normalised suggestion.
readwrite maker needs bricks
wordpress_bricks_query_loops
Find all Bricks elements that use query loops across the site. Filter by object type (post, term, user) or queried post type (product, page, etc.). Essential for auditing dynamic content and WooCommerce product loops.
readwrite maker needs bricks
wordpress_bricks_style_profile
Analyze a Bricks page and extract its design patterns: colors used (with frequency), spacing values, typography (fonts, sizes, weights), and global class usage. Use this to learn a page's design system before creating new content that matches.
readwrite maker needs bricks
wordpress_bricks_design_system
Export the complete Bricks design system in a single call: global classes, color palette, theme styles, typography/variables, components, element types, and Bricks version. Optimized for AI agent context — use this to understand the full design system before building pages.
readwrite maker needs bricks

All tools, all builders

Need the complete picture? Browse every Respira MCP tool across 22 categories with filters for operation, license tier, and safety feature.

See the full tools catalog →
The community · building in public

You're not the only one talking to WordPress.

The Respira community is where agency owners debug Divi migrations at 11pm, where vibe coders swap prompts that actually ship, and where the roadmap gets written out loud. Breathe with us.

Lines of code pushed through Respira
11,172,100
Live from the Respira ecosystem · updates as the agent ships
Slack
Async threads, release-day huddles, and the #show-your-work channel that never sleeps.
Join
Discord
Live voice on release days, screenshare debugging, and the vibe-coder corner that's always buzzing.
Join
GitHub Discussions
Long-form Q&A, bug reports, feature requests, and the public roadmap.
Open