Module + row + column edits for Beaver Builder and Beaver Themer. Top-level font-field normalization keeps writes Visual Editor-safe.
Respira gives AI coding agents a structure-aware way to read and write Beaver Builder content through a duplicate-first workflow. Page and element writes are snapshotted, and changes 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.
Beaver Builder writes no longer fatal on compound settings. Respira stored compound Beaver settings (border, place_content, typography, dimension and friends) as objects, but Beaver reads every compound setting value wit
inject-builder-content now accepts raw HTML. Passing HTML (a string, or { html: "..." }) to inject-builder-content was refused with "did not map to any Beaver Builder nodes", even though convert-html-to-builder accepted
HTML-to-builder preserves section order on nested layouts (Beaver). Sections wrapping nested <div>s were reordered because the converter produced invalid row-in-row structures the builder reflowed; the Beaver hierarchy p
Duplicating a Beaver Builder page with PowerPack or UABB modules no longer corrupts it. The duplicate path copied the Beaver layout without the canonical type-reshape that the inject and restore paths use, so nested modu
HTML→Beaver convert builds real content, not a blank page. convert-html-to-builder with builder:beaver built the module tree but every module came back empty (blank page, success:true). Two causes: the beaver slug wasn't
Beaver in-place tools. extract-builder-content returned diagnostics: null and failed the tool's object schema; it now always returns an object. add-html accepts html as an alias for content. The add-section column build
write_was_noop detector is now builder-aware. Pre-fix the v7.0.61 byte-conservation check snapshotted post_content before and after the write. Four of the seven adapters (Elementor, Bricks, Beaver, Oxygen, Breakdance, Br
Concrete features in the current MCP server release. Tool names link directly to the adapter.
Row, column, and module CRUD via the standard respira_find_element + respira_update_element flow.
Built-in modules (heading, text, button, photo, callout, pricing table, etc.) are fully supported; a content-field map ships for the 7 most-used module types.
Top-level font fields ({ family, weight }) are normalized to PHP arrays, not stdClass — keeps the Visual Editor from re-serializing on save (the v7.0.25 rule).
Beaver Themer layouts (header, footer, singular, archive) are listed and assignment rules are readable.
Saved rows and saved templates: list + insert with automatic ID remapping.
Beaver Builder Lite and the full plugin both detected.
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.
Custom third-party Beaver modules without a content-field map fall back to raw-field writes. They work, but lose smart formatting. Custom map entries can be requested.
Beaver Builder Assistant Pro features (cloud library, brand kits) are out of scope for the MCP. Edit assets through Beaver's own UI.
Conditional logic on Themer layouts reads; complex rule trees need a human review pass before going live.
Tools
Beaver Builder uses the universal toolset
Beaver Builder 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.
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.
Rebrand button colors site-wide
Find every Beaver Builder button module across all published pages. Change the background color from #006eff to #0a5cd5. Snapshot each page first.
Fix heading hierarchy
For every page built with Beaver, list any case where an H3 appears before any H2 on the same page. Group by URL.
Apply a saved row across landing pages
For every page in the "/lp-" prefix, insert the saved row "footer-cta" at the bottom of the layout. Skip pages that already contain it.
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.
macOS Claude Desktop: this belongs in claude_desktop_config.json, not config.json. On some versions the "Edit Config" button opens config.json — a separate preferences file in the same folder that is not read for MCP servers — so the paste appears to do nothing. If the server doesn't show up after restarting, edit the right file directly: open -a TextEdit ~/Library/Application\ Support/Claude/claude_desktop_config.json
Top-level font fields must stay PHP arrays, not stdClass — Respira normalizes this automatically since v7.0.25. If you write to Beaver via custom code outside Respira, mirror the same convention or the Visual Editor will lose font settings on save.
cookies. the legal kind. one click and i'll get out of your way.
what you'd actually be saying yes to
tune your cookie preferences
essentials stay on regardless. the rest is opt-in. nothing fires until you tap save.
essentials
the cookies that make logging in work and remember which partner sent you. switching these off would just break the site, so the law does not let me make you opt out.
first-touch source on a /respira_acq cookie, plus a flag if an ai chatbot referred you. helps me figure out what is working without turning you into a tracking pixel statue.
messaging
customer.io for in-app notes, chatwoot when you click the support bubble. off by default. on means i can actually answer you in the app.