Element-tree editing for Oxygen Classic 4.x and the new Oxygen 6 (Bloom). Reads the JSON tree, writes through structure-aware patches.
Respira gives AI coding agents a structure-aware way to read and write Oxygen 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.
wordpress_apply_design_direction pushes the direction's tokens into each builder's own stores: Bricks global colors, the Elementor kit, Oxygen variables, nine builders in all. Approval-gated, with a per-builder report of
Design tokens now register on the other builders too, and the converted page references them. 8.3.2 did this for Gutenberg. Elementor, Bricks, Divi, Beaver Builder, Breakdance, Oxygen and Oxygen 6 now do it as well, each
Oxygen style writes (color, background-color, etc.) to global Theme Builder templates now actually persist and render. The style-key lift that nests these properties under options.original (where Oxygen's renderer reads
batch_update on Oxygen 6 / Breakdance elements reported success but silently didn't persist a design (typography, spacing, layout) update, while the identical edit via a single update_element call worked correctly. batch
Oxygen 6: editing an element's design (typography, spacing, layout) after it was already built silently dropped almost every property except color. update_element's own design update key is a nested bucket (design.typogr
Concrete features in the current MCP server release. Tool names link directly to the adapter.
Oxygen Classic 4.x and Oxygen 6 (Bloom) both detected at site-context read time.
Element tree JSON read + structure-aware writes preserve parent / child references on every patch.
Global colors and global typography settings are accessible through Respira-managed options when Oxygen does not expose a native API.
Templates, reusable parts, and class registry are all readable; class registry writes are supported.
Snapshot-protected writes: every change creates a recoverable snapshot before touching the post.
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.
Oxygen Composite Elements (Bloom) read fine but write coverage is partial in the current release — track Bricks-parity in the changelog feed below.
Page-level Code Block and Custom CSS overrides are surfaced as-is and not parsed; the agent edits raw, no syntax validation.
Conditional display rules read; only simple rules (logged-in, post type, role) write through the MCP today.
Tools
Oxygen uses the universal toolset
Oxygen 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.
Update global color palette
Read the current Oxygen global color palette. Change "primary" from its current hex to #1f6feb. Show me which pages and templates reference that color before applying.
Inventory templates
List every Oxygen template on the site, what its assignment rule is, and which pages it currently renders on.
Find broken class references
Find every Oxygen element that references a global class that no longer exists in the class registry. Group results by page.
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
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.