20 dedicated tools across the full Bricks design system: global classes, theme styles, color palette, typography, components, query loops, ACSS, page diagnostics, and one-call design-system export.
Respira gives AI coding agents a structure-aware way to read and write Bricks 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.
Duplicating a Bricks section no longer throws. Bricks stores a flat element list where each element references its children by ID string, but the element-duplicate path used a nested-tree clone that expected each child t
Bricks now matches its real control contract. A scanner captures every Bricks element's full runtime control schema (75 elements, the complete control set) into a committed snapshot, and the element registry + schema now
Off-contract Bricks controls are flagged (warn mode). A settings validator checks each element's settings against its real control schema and surfaces unknown controls (with a "did you mean") in the write notes. It annot
The Bricks component library is reachable. Respira now reads the bricks_components option: find/replace and the SEO/readability analyzers resolve component instances (cid + properties) so component-owned text is no longe
Bricks elements now use Bricks' native 6-character IDs. Every Respira path that created a Bricks element (build_page, HTML convert, section presets, in-place inserts) minted long respira_-prefixed ids of 21 or more chara
SEO, schema, and readability checks now read Bricks content. Bricks stores the page in postmeta, not post_content, so the analyzers reported 0 words, 0 headings, no images, and no JSON-LD on Bricks pages that render fine
Bricks content extraction no longer fails its own output schema. extract-builder-content could return a null warning on a valid Bricks page, which the MCP output schema rejected ("output[warning] is not of type string").
Bricks Components survive Respira writes. A Component instance carries cid (the component template) and properties (per-instance overrides) at the element root. The write-path normalizer rebuilt every element from a fixe
Bricks writes no longer report a false "no-op". The write-verification signature cast the Bricks postmeta array straight to a string ("Array"), so every write looked byte-identical (pre_write_bytes:6, bytes_changed:0) an
Oxygen 6 "IO-TS decoding failed" no longer bricks the editor site-wide. Oxygen 6.0.0 swapped Breakdance's lenient JSON parse for a strict io-ts decoder that rejects null where it expects an object/array. Imported header/
Automatic.css (ACSS) detection + import: utility classes flow into the Bricks global class registry with source tagging (wordpress_bricks_detect_acss, _import_acss).
Query loop discovery across the site, filterable by post type (wordpress_bricks_query_loops).
Style profile learning: analyse a page's patterns and create matching content (wordpress_bricks_style_profile).
One-call design system export (wordpress_bricks_design_system) — classes, colors, styles, typography, components — for AI context.
HTML → native Bricks element-tree conversion for prototypes.
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.
Bricks Templates CPT supports first-class CRUD via PATCH / DELETE, but condition trees with deeply nested logic still need a human review pass.
Optimistic locking prevents concurrent overwrites; if two agents try to write the same page in parallel, the second is rejected — by design.
Bricks Pro license is detected but not validated by Respira. License-gated features are accessible if the Pro plugin says so on the site side.
Tools
25 Bricks-specific tools
Registered in mcp-server/src/bricks-tools.ts at MCP server build time. Each tool name is the canonical id you call from the MCP client.
Each one assumes Respira is connected to your WordPress site through the MCP server below. Copy a prompt, paste into your MCP client, run.
Export the design system for AI context
Call wordpress_bricks_design_system. Return the result so I can use it as context for the rest of this session.
Find every page using a specific global class
Search every Bricks page and template for elements using the global class "btn-primary-lg". Group results by page title.
Run a health check on the home page
Run wordpress_bricks_health_check on the home page. List orphaned elements, duplicate IDs, and heading hierarchy issues. Suggest fixes for the top 5.
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.