Element tree reads + writes for Breakdance Free and Pro. Knows the difference between Elements, Global Blocks, and Global Styles.
Respira gives AI coding agents a structure-aware way to read and write Breakdance content through a duplicate-first workflow. Every write is snapshotted. Every change can be reviewed before going live.
Everything below is read from this repo at build time: tool registrations come from the MCP server adapter files; changelog entries are filtered from the same source the /releases timeline uses.
inject_builder_content with mode:"append" no longer 500s on Breakdance. Calling append against a Breakdance page returned TypeError: Unsupported operand types: string + int. Root cause was a wrapper-normalisation gap: th
Breakdance content now lands at the native properties.content.content.* path the renderer reads. Confirmed against Breakdance 2.7.2's own element definitions: heading's defaultProperties() is ['content' => ['content' =>
This closes the content path for the common Breakdance content elements. Element-specific design properties (the Badge's colour, spacing, typography) live under properties.design.<section>.<control> where the section nam
Builds on the v7.0.20 resolve_breakdance_properties() shape-acceptance fix; the two together take a build_page payload from "empty properties / blank page" through to "populated native properties / renders correctly."
update_element no longer 500s on flat element-specific keys. apply_breakdance_updates recognised only text / content / design / attributes; any other shape (e.g. build_page-style button_text, or title / description / ite
Verified end-to-end on Studio (WP 6.9.4 + Breakdance 2.7.2): a build_page call with Ian's exact {type, data: {content: {...}}} payload now persists populated data.properties on every content element (_breakdance_data ins
Oxygen 6 and other builders are untouched; this is Breakdance-only.
Oxygen 6 reported the wrong version + the wrong documentation. get_version() returned the bundled CT_VERSION (4.9.7) instead of the Oxygen 6 plugin header version (6.1.0-beta.1), because Soflyy's Oxygen 6 (BREAKDANCE_MOD
Postmeta detection no longer false-positives Oxygen on Breakdance sites. is_oxygen_6() and detect_with_reason() fell through to has_oxygen6_postmeta() (any post with _oxygen_data → Oxygen) even when no Oxygen plugin slug
Breakdance catalog jumped from 68 to 158 elements. scan_module_catalog() walked only plugin/elements (the 56 wrappers) and subplugins/breakdance-design-system/components (absent on 2.7.x). It never opened subplugins/brea
coalesce_redundant_text_wrappers() now clears both content.text AND content.html on the collapsed parent. The prior implementation cleared only content.text, but the Breakdance Text writer (merge_content_to_breakdance())
Test coverage extended. tests/standalone/v6113-breakdance-collapse-and-inline.php now asserts BOTH content.text and content.html are unset after the collapse fires. Without the html-side assertion the latent bug passed t
Concrete features in the current MCP server release. Tool names link directly to the adapter.
Element tree reads return the actual Breakdance JSON, not just rendered HTML.
Per-element writes through the structure-aware patch path preserve children and attributes.
Global Blocks: list, insert by reference, swap underlying definition — references on every page auto-update.
Global Styles (colors, typography, sizes) read + write through Respira-managed options where Breakdance doesn't expose a native API.
Snapshot before every write; rollback through the standard recovery tools.
Breakdance Headers and Footers (theme builder) listed and assignment rules readable.
warning
Known limits
Where you still need a human pass
Honest list of edges. If you hit one of these, the snapshot workflow gives you a clean rollback path.
Some Breakdance Pro display conditions (cookie-based, query-based) read but only the simple ones (logged-in, role, post type) write today.
WooCommerce-specific Breakdance elements work for content edits; deeper Woo product-loop tuning still goes through the Breakdance UI.
Form Builder submissions are visible through respira_list_custom_posts; the form configuration itself is read-only via the MCP.
construction
Tools
Breakdance uses the universal toolset
Breakdance edits run through Respira's universal tools: respira_find_element, respira_update_element, respira_update_page (for full-page replacement only), respira_get_snapshot, and respira_create_page_duplicate. See the complete tool catalog.
chat
Example prompts
Three prompts you can paste right now
Each one assumes Respira is connected to your WordPress site through the MCP server below. Copy a prompt, paste into your MCP client, run.
Audit Global Block usage
List every Breakdance Global Block on the site, what pages reference it, and how many times each is used. Output a markdown table.
Swap a Global Block site-wide
Replace every reference to Global Block "cta-old" with "cta-2026" across all published pages. Snapshot each page first and show me the diff.
Update a global color
Change the Breakdance global color "brand-primary" from its current value to #1f6feb. Tell me how many pages and Global Blocks will visually change.
terminal
Setup
Connect Respira's MCP server
Drop this into your MCP client config (Claude Desktop, Cursor, Codex, Windsurf — any MCP-compatible client). Generate an API key from your Respira dashboard first.