# Divi MCP server for Claude and ChatGPT, with undo

> A Divi MCP server lets Claude, ChatGPT or Cursor read and edit Divi 4 and Divi 5 pages on a live WordPress site.

Source: https://www.respira.press/divi-mcp

---

# *Divi* MCP server, with undo on every edit.

A Divi MCP server lets Claude, ChatGPT or Cursor read and edit Divi 4 and Divi 5 pages on a live WordPress site. With Respira every edit lands on a copy first, and you can undo it for 90 days.

[Start free](https://www.respira.press/signup) [Connect in one command](#setup) 

7 days free. No card. Runs on the AI subscription you already have.

Support

Full

Divi tools

Core set

Latest release touching it

9.2.22

Releases touching it

203

Respira is an independent MCP server. Not affiliated with, endorsed by, or sponsored by Elegant Themes, Inc. Divi is a trademark of Elegant Themes, Inc.

## Divi MCP in 77 seconds.

 77 seconds, with captions. Also on [YouTube](https://www.youtube.com/watch?v=r0DrA4nyrZk). 

## What works today. What still needs you.

Read from the current MCP server release, first-class reads and writes across the builder structure.

### Works now

- Divi 5 block-based layouts (`divi/*` blocks) read and write through native block tools.
- Divi 4 shortcode pages: parser walks `post_content`, `_et_pb_page_layout`, `_et_pb_layout_content`, `_et_pb_page_content`, four meta sources for maximum compatibility.
- 117 Divi 5 module types from the Divi 5.15.1 catalogue, including the Slot module and the Gravity Forms and Imagely Gallery modules Divi registers when those plugins are active.
- Inserts change nothing else: `inject_builder_content` with mode append, a `target_path` plus position, or `after_element_id` / `before_element_id` serializes only the new content and splices it into the stored page. Global modules, Divi 5.15 Components and Slots, and third-party modules (WPForms, Divi Supreme) stay byte for byte, and the response reports the inserted path, ids and bytes.
- Global modules stay references: reading a Divi 5 page returns `divi/global-layout` references instead of the Library item's blocks, so a write keeps the link. To change a global module, edit the Library item.
- Chunked builds for Divi 4 and Divi 5: the frame first, then rows and modules by path. A `chunk_id` makes a retried call a no-op, and a `session_id` from `begin_session` keeps one recovery snapshot per page.
- Content added to a Divi 4 shortcode page is written as shortcodes, whichever Divi version the site runs.
- Edit links open Divi 4 and Divi 5 pages in the Divi Visual Builder and Theme Builder layouts in the Theme Builder. A render check that gets no answer in time reports `render_validator_state: "unverified"` instead of a failed write.
- 13-point payload validation: context checks, nesting rules, flexColumnStructure counts, variable references, 16 common mistake patterns caught BEFORE write.
- Auto-wraps bare modules in Section → Row → Column so the Visual Builder never sees invalid nesting.
- Color tokens map to Divi 5's native `et_global_colors` option. Typography / spacing / breakpoints use Respira-managed options (`respira_divi_typography_variables`, etc) since Divi has no native equivalents.
- Divi Migrator (Divi's own D4→D5 converter) is detected and surfaced through the Migration Copilot at /divi-5-migration-copilot.
- Divi 5 writes are native by default. Every agent write to a Divi 5 page (build\_page, inject\_builder\_content, update\_element, update\_module, batch\_update, apply\_builder\_patch and the add\_\* shortcuts) takes `allow_inline_styles` and `allow_code_modules`, both false unless you say otherwise. A style Divi 5 has a design setting for is written as that attribute, whether it arrives as a settings key, a CSS name or a `style=""` on the module's wrapper: text transform, italic, underline, border width, style and colour, opacity, height, z-index, overflow and more. A style with no native place is not written and comes back as `unmapped_styles`, one entry per style with the element, the property, the value and the reason. A write that adds a divi/code module is refused and names the native module to use. What a page already stores is left as it is, and Divi 4 is unchanged.

### Where a human still steps in

- Respira does NOT convert Divi 4 to Divi 5 on its own. Use Divi's native Migrator; Respira helps plan and validate.
- A colour on part of a sentence, a `<style>` block in a text module, or a CSS variable other than a Divi global colour has no native Divi 5 setting. By default it is reported in `unmapped_styles` rather than written inline; `allow_inline_styles: true` writes it the way earlier releases did.
- A full rewrite (mode replace) of a Divi 4 shortcode page with deeply nested third-party shortcodes can lose attributes on round-trip. Insert instead where you can, and run a duplicate first.
- Theme Builder layouts (header, footer, body) have no draft in Divi, so a change to one goes live at once. Respira takes a snapshot first, so it can be restored.

Hit one of these and the snapshot gives you a clean way back.

## Divi 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. 

[Browse every tool](https://www.respira.press/tools)

## Three prompts you can paste right now.

Each one assumes Respira is connected to a Divi site. Paste it into your AI tool and run.

1. ### Sync color palette across pages  
```  
Read the Divi 5 global color palette. Find every page where a heading uses a custom hex color instead of a palette reference. Suggest the closest palette entry for each and show me the list before changing anything.  
```
2. ### Update CTAs on Divi 4 landing pages  
```  
For every Divi 4 page in the "/offers/" path, find the et_pb_button shortcodes and replace the button text "Buy now" with "Start free trial". Snapshot each page first.  
```
3. ### Migrate a single Divi 4 page to Divi 5  
```  
Run the Migration Copilot dry-run for the page slug "pricing". Report what would convert cleanly, what needs review, and what would fail.  
```

More recipes, per builder, in the [Prompt Book](https://www.respira.press/prompt-book).

## Connect a Divi site in two minutes.

Pick your client and paste. The site URL and key come from [your setup page](https://www.respira.press/dashboard/mcp), 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](https://www.respira.press/blog/claude-code-wordpress) 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.json` in 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 --doctor` in the same shell. It names the missing setting, a bad URL or a refused key. `node -v` must print 20 or newer.

ENOENT errors that mention `/_npx/` or `node_modules`.

Cause The npx cache is damaged, often by an interrupted install.

Fix Run `rm -rf ~/.npm/_npx` and restart the client. Or install once with `npm install -g @respira/wordpress-mcp-server` and use `respira-wordpress-mcp` as 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 Divi 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](https://www.respira.press/docs/troubleshooting), or write to [word@respira.press](mailto:word@respira.press) with the first error line.

## What changed for Divi lately.

The last 5 releases that mention Divi, filtered from the same changelog the releases page reads.

1. [9.2.22](https://www.respira.press/releases#plugin-v-9-2-22) Oct 24, 2026  

  - On a Bricks site, asking for the theme builder's headers and footers now points to the right tools. An agent working on a Bricks site called the Divi Theme Builder tools for the header and footer and got only "Divi Theme Builder is not available", with nothing about where Bricks keeps them, so it guessed.
2. [9.2.17](https://www.respira.press/releases#plugin-v-9-2-17) Oct 21, 2026  

  - get\_builder\_info no longer runs out of memory on Bricks sites with a 128M limit. The Bricks element reference that ships with the plugin was read separately by three parts of the plugin, and again for every element a write checked, and the builder information cache never hit on a site without Divi, so every call rebuilt it.
3. [9.2.13](https://www.respira.press/releases#plugin-v-9-2-13) Oct 19, 2026  

  - Activity review. Menu and redirect proposals join the existing approval queue with their complete before/after, versions and expiry. Each is reviewed individually.
4. [9.2.7](https://www.respira.press/releases#plugin-v-9-2-7) Oct 15, 2026  

  - WordPress 7.1 accordions, tabs and icons in the block editor. A generic accordion, tabs, icon, video, spacer, divider or list sent to build\_page on a block editor page used to be saved as an empty block.
  - A generic section on a Beaver Builder page shows its content. The shape agents send to every builder, a section holding a heading and text, was saved on Beaver with "section" and "text" as module names. Beaver has neither, so the page showed nothing but its title while the write said success.
  - Fidelity mode runs on Flatsome. A designed page now converts in fidelity mode on Flatsome, as it does on Divi, Elementor, Bricks and the others: one root section carries the page, the source sections, rows and boxes become Flatsome rows and columns with their own classes and ids, each element keeps its markup and its classes in an HTML element, forms stay real forms, and the page's stylesheet travels with it, scoped to the page.
5. [9.2.6](https://www.respira.press/releases#plugin-v-9-2-6) Oct 15, 2026  

  - Inserting into a Divi page no longer rewrites the rest of it. Adding content with inject\_builder\_content (mode append, a target\_path, or the new after\_element\_id / before\_element\_id) used to read the whole page into a tree and write the whole tree back.
  - Chunked builds for Divi 4 and Divi 5\. A large page can be built as a sequence of small inserts: the frame first, then rows and modules by path (target\_path plus position, into a section or a column).
  - A full Divi 5 rewrite keeps the blocks it did not change. inject with mode replace, update\_module and the add\_\* tools re-emit the whole page.

[All 203 releases that touched Divi](https://www.respira.press/releases?builder=divi)

## Questions people ask about Divi and MCP.

Is there an MCP server for Divi? 

Yes. Respira is an independent MCP server that reads and writes Divi in its own format, with first-class reads and writes across the builder structure. It is not made by the Divi team.

Which tools does it use for Divi? 

Divi 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 Divi 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.

Looking for the Divi overview, with visuals and the conversion story? [Divi features](https://www.respira.press/divi)

## The other builders, same server.

- [ ! Gutenberg Full ](https://www.respira.press/gutenberg-mcp)
- [ ! Elementor Full ](https://www.respira.press/elementor-mcp)
- [ ! Bricks Deep ](https://www.respira.press/bricks-mcp)
- [ ! WPBakery Partial ](https://www.respira.press/wpbakery-mcp)
- [ ! Oxygen Full ](https://www.respira.press/oxygen-mcp)
- [ ! Beaver Builder Full ](https://www.respira.press/beaver-mcp)
- [ ! Breakdance Full ](https://www.respira.press/breakdance-mcp)
- [ ! Flatsome Full ](https://www.respira.press/flatsome-mcp)
- [ ! Kadence Blocks Full ](https://www.respira.press/kadence-mcp)
- [ ! Spectra Full ](https://www.respira.press/spectra-mcp)
- [ ! GenerateBlocks Full ](https://www.respira.press/generateblocks-mcp)
- [ ! GreenShift Full ](https://www.respira.press/greenshift-mcp)
- [ ! Brizy Partial ](https://www.respira.press/brizy-mcp)
- [ ! Visual Composer Partial ](https://www.respira.press/visual-composer-mcp)
- [ ! Thrive Architect Text edits ](https://www.respira.press/thrive-mcp)
- [ ! SeedProd Read only ](https://www.respira.press/seedprod-mcp)

[Everything the WordPress MCP does](https://www.respira.press/mcp)[WooCommerce MCP](https://www.respira.press/addons/woocommerce)

## 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.

[Start free](https://www.respira.press/signup) [Email Mihai](#)
