GenerateBlocks MCP server, with undo on every edit.
A GenerateBlocks MCP server lets Claude, ChatGPT or Cursor read and edit GenerateBlocks pages on a live WordPress site, block by block. With Respira every edit lands on a copy first, and you can undo it for 90 days.
7 days free. No card. Runs on the AI subscription you already have.
- Support
- Partial
- GenerateBlocks tools
- Core set
- Latest release touching it
- 9.2.4
- Releases touching it
- 23
Respira is an independent MCP server. Not affiliated with, endorsed by, or sponsored by EDGE22 Studios Ltd, the maker of GenerateBlocks and GeneratePress.
What works today. What still needs you.
Read from the current MCP server release, core reads and writes work; some edges need a human pass.
Works now
- GenerateBlocks is detected on the site, and a page counts as a GenerateBlocks page when it holds at least one
generateblocks/*orgenerateblocks-pro/*block. A page with none is treated as plain Gutenberg. - Version 1 and version 2 blocks are read side by side. GenerateBlocks 2.0 did not migrate older content, so many sites carry both, and the parser reads the stored block markup either way.
- Existing GenerateBlocks blocks are edited in place with
respira_find_element+respira_update_element, keeping their attributes and inner blocks. Blocks you did not ask to change are written back byte for byte. - The add_* tools and
respira_update_elementwere run against GenerateBlocks 2.4.1 and the published page was read after each call. - Every write is render-checked: the saved markup is parsed the way WordPress parses it and each block is rendered in process. The result names any broken block, with the
snapshot_uuidthat undoes the write. - Custom CSS sent with a page update is stored, printed on the page and covered by the snapshot.
Where a human still steps in
- A new element an agent adds, through
respira_build_page, an add_* tool or an append, is written as WordPress core blocks (group, heading, paragraph, buttons, image), not as a GenerateBlocks block. Existing GenerateBlocks blocks stay GenerateBlocks blocks. - There are no GenerateBlocks-specific tools: pages run on the block editor tools and the universal page tools. Settings kept outside the page content, such as GenerateBlocks Pro global styles, are not written through them.
- The block editor's own save-time validation is a separate check from Respira's render check; a block whose markup renders but whose editor schema disagrees still shows a validation prompt the next time a person opens the page.
Hit one of these and the snapshot gives you a clean way back.
GenerateBlocks runs on the universal tools.
Find, update, move and remove elements, build whole pages, snapshot and roll back. Reads return the builder structure and writes keep it intact.
Three prompts you can paste right now.
Each one assumes Respira is connected to a GenerateBlocks site. Paste it into your AI tool and run.
-
Change a headline everywhere
Find every GenerateBlocks heading whose text is "Services" on published pages and change it to "What I can build for you". Keep its styling, and snapshot each page first. -
Find version 1 blocks
List every page that still uses GenerateBlocks version 1 blocks, such as generateblocks/headline or generateblocks/container, with a count per page. Do not change anything. -
Audit query loops
List every GenerateBlocks query loop on the site, the page it sits on and the post type it shows. Output a markdown table.
More recipes, per builder, in the Prompt Book.
Connect a GenerateBlocks site in two minutes.
Pick your client and paste. The site URL and key come from your setup page, or from Respira › Setup in wp-admin. Node.js 20 or newer for the local server.
Claude Code
claude mcp add respira-wordpress --env WORDPRESS_URL=https://yoursite.com --env WORDPRESS_API_KEY=respira_your_api_key_here -- npx -y @respira/wordpress-mcp-server@latest Put in your own site URL and key, run it, then check with /mcp. Every site at once: pass --env RESPIRA_CONFIG_B64=… from your setup page instead of the two values. The full Claude Code guide covers the first edit and undo.
Claude Desktop and Cursor
{
"mcpServers": {
"respira-wordpress": {
"command": "npx",
"args": ["-y", "@respira/wordpress-mcp-server@latest"],
"env": {
"WORDPRESS_URL": "https://yoursite.com",
"WORDPRESS_API_KEY": "respira_your_api_key_here"
}
}
}
} - Claude Desktop, macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Claude Desktop, Windows:
%APPDATA%\Claude\claude_desktop_config.json - Cursor:
.cursor/mcp.jsonin your project
The file is claude_desktop_config.json, not config.json. Every site at once: replace the two env values with RESPIRA_CONFIG_B64 from your setup page.
Codex
codex mcp add respira-my-site --url https://yoursite.com/wp-json/respira/v1/mcp
codex mcp login respira-my-site Run them one at a time. The second opens your browser to sign in to Respira; no key goes in the config. By hand, in ~/.codex/config.toml, then run the login command:
[mcp_servers.respira-my-site]
url = "https://yoursite.com/wp-json/respira/v1/mcp" Browser sign-in, no key
https://yoursite.com/wp-json/respira/v1/mcp Claude Desktop, claude.ai, ChatGPT and Cursor: add a custom connector, paste your site's MCP URL, leave Client ID and Client Secret blank, and approve the sign-in on respira.press. One connector per site.
Any other client
npx add-mcp "npx -y @respira/wordpress-mcp-server@latest" Detects Claude Code, Cursor, Codex, Windsurf and more, and writes the config. Set WORDPRESS_URL and WORDPRESS_API_KEY afterwards.
Common errors
- The server does not show up in /mcp, or the client says it failed to start.
- Cause Node.js is older than 20, or the site URL and key are missing.
- Fix Run
npx @respira/wordpress-mcp-server --doctorin the same shell. It names the missing setting, a bad URL or a refused key.node -vmust print 20 or newer. - ENOENT errors that mention
/_npx/ornode_modules. - Cause The npx cache is damaged, often by an interrupted install.
- Fix Run
rm -rf ~/.npm/_npxand restart the client. Or install once withnpm install -g @respira/wordpress-mcp-serverand userespira-wordpress-mcpas the command. - The browser sign-in opens a "Page not found" on
yoursite.com/authorize. - Cause A Client ID was filled in on the connector, usually the
respira_site_key. - Fix Remove the connector and add it again with the MCP URL only. Leave Client ID and Client Secret blank. Sign-in happens on respira.press, never on your site.
- The MCP address returns 404.
- Cause WordPress is on plain permalinks, so
/wp-json/addresses do not resolve. - Fix In wp-admin open Settings › Permalinks, choose Post name and save once.
- Calls fail with 401, 403, or HTML where JSON belongs.
- Cause A firewall, a bot filter or a challenge page answers before WordPress does, or the host strips the Authorization header.
- Fix Open Respira › Troubleshoot in wp-admin. It runs the checks from the site's own server, names what is in the way and writes a report for your host.
- The agent says it saved, and the live GenerateBlocks page looks the same.
- Cause The edit is on a draft duplicate, waiting for your approval. That is the default on a published page.
- Fix Approve the duplicate in wp-admin under Respira, or from its preview page. Until then the live page stays as it was.
Still stuck? Troubleshooting in the docs, or write to word@respira.press with the first error line.
What changed for GenerateBlocks lately.
The last 5 releases that mention GenerateBlocks, filtered from the same changelog the releases page reads.
-
- WPBakery pages with many addon elements can be read and edited again. On a WPBakery site running The7 with Ultimate VC Addons, Revolution Slider, Go Pricing and WooCommerce, every builder tool failed: finding an element, reading the page's structure, duplicating it, and every edit, even a one word change on a small draft.
-
- Every builder says what it can write. get_builder_info now carries write_capabilities for every builder: whether it builds pages, adds elements or only edits text, and whether a new element is native, written as core blocks, or partial.
-
- Custom CSS on block pages is stored and renders. update_page, update_post and update_custom_post silently dropped custom_css on Gutenberg, Kadence, Spectra, GenerateBlocks and GreenShift pages while reporting success.
-
- find_element by content, text or class works on every builder. A search for text that was not on the page answered HTTP 404, which agents read as a broken tool, and a class search on Elementor never read the custom class setting.
-
- wordpress_find_element searches content, text and class on every builder (plugin 9.1.11). The description says each match names its field with a snippet and that no match is a normal answer with found: 0. wordpress_apply_builder_patch points at it for pages other than Divi 4.
Questions people ask about GenerateBlocks and MCP.
Is there an MCP server for GenerateBlocks?
Yes. Respira is an independent MCP server that reads and writes GenerateBlocks in its own format, with core reads and writes work; some edges need a human pass. It is not made by the GenerateBlocks team.
Which tools does it use for GenerateBlocks?
GenerateBlocks runs through the universal tools: find, update, move and remove elements, build pages, snapshot and roll back. Reads return the builder structure, and writes keep it.
What happens when the agent gets an edit wrong?
Nothing on the live page. The agent edits a copy first, you approve it inside WordPress, and every write is snapshotted with 90 days of undo.
Do I need a developer or a terminal?
No. Sign in with your browser from Claude, ChatGPT or Cursor and approve the connection once. Coding tools get a one-line command.
Does it work with a GenerateBlocks site that also runs WooCommerce?
Yes. The WooCommerce add-on adds 104 store tools on the same connection, with the same duplicate-first approval flow.
The other builders, same server.
Start with one site. Free for 7 days.
Maker is €9 a month after the trial. No card for the trial, and it runs on the AI plan you already have, so there is no extra AI bill.