@respira/wordpress-mcp-server 5.2.0 → 5.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/README.md +302 -284
  2. package/package.json +14 -3
package/README.md CHANGED
@@ -1,144 +1,78 @@
1
1
  <p align="center">
2
2
  <a href="https://respira.press">
3
- <img src="https://respira.press/hero/respira-press-cover.jpg" alt="Respira for WordPress" width="100%">
3
+ <img src="https://respira.press/hero/elemental-hero.jpg" alt="Respira v5.2 Elemental — AI Infrastructure for WordPress" width="100%">
4
4
  </a>
5
5
  </p>
6
6
 
7
7
  <h1 align="center">Respira WordPress MCP Server</h1>
8
8
 
9
9
  <p align="center">
10
- <strong>The only WordPress MCP with page builder support.</strong><br>
11
- Edit Divi, Elementor, Bricks & 8 more builders with Cursor, Claude Code & Windsurf.<br>
12
- 103 total tools: 82 WordPress core + 21 conditional WooCommerce tools.
10
+ <strong>147 MCP tools. 11 page builders. The AI infrastructure layer for WordPress.</strong><br>
11
+ Element-level editing, full page creation, HTML-to-builder conversion, stock images, bulk operations all through one MCP server.
13
12
  </p>
14
13
 
15
14
  <p align="center">
16
- <a href="https://www.npmjs.com/package/@respira/wordpress-mcp-server"><img src="https://img.shields.io/npm/v/@respira/wordpress-mcp-server.svg?style=flat-square&color=blue" alt="npm version"></a>
15
+ <a href="https://www.npmjs.com/package/@respira/wordpress-mcp-server"><img src="https://img.shields.io/npm/v/@respira/wordpress-mcp-server.svg?style=flat-square&color=10b981" alt="npm version"></a>
17
16
  <a href="https://www.npmjs.com/package/@respira/wordpress-mcp-server"><img src="https://img.shields.io/npm/dm/@respira/wordpress-mcp-server.svg?style=flat-square" alt="npm downloads"></a>
18
- <img src="https://img.shields.io/badge/page%20builders-11-green?style=flat-square" alt="11 Page Builders">
19
- <img src="https://img.shields.io/badge/tools-103-purple?style=flat-square" alt="103 Tools">
20
- <img src="https://img.shields.io/badge/WooCommerce%20add--on-21%20conditional%20tools-7F54B3?style=flat-square" alt="WooCommerce conditional tools">
17
+ <img src="https://img.shields.io/badge/tools-147-10b981?style=flat-square" alt="147 Tools">
18
+ <img src="https://img.shields.io/badge/builders-11-10b981?style=flat-square" alt="11 Page Builders">
21
19
  <img src="https://img.shields.io/badge/TypeScript-100%25-blue?style=flat-square&logo=typescript&logoColor=white" alt="TypeScript">
22
- <a href="https://respira.press"><img src="https://img.shields.io/badge/website-respira.press-orange?style=flat-square" alt="Website"></a>
23
20
  </p>
24
21
 
25
22
  <p align="center">
26
23
  <a href="https://respira.press">Website</a> •
27
- <a href="https://respira.press/docs">Documentation</a> •
28
- <a href="https://respira.press/releases">Download Plugin</a> •
29
- <a href="https://respira.press/support">Support</a>
24
+ <a href="https://respira.press/docs">Docs</a> •
25
+ <a href="https://respira.press/plugin">Plugin</a> •
26
+ <a href="https://respira.press/support">Support</a>
27
+ <a href="https://respira.press/addons/woocommerce">WooCommerce Add-on</a>
30
28
  </p>
31
29
 
32
30
  ---
33
31
 
34
- ## Why Respira?
35
-
36
- **Other WordPress MCP servers** use basic REST API calls. They can create posts and pages, but **they can't touch your page builder content**.
37
-
38
- **Respira** includes a WordPress plugin that gives AI **deep access** to your page builders:
39
-
40
- | Feature | Respira | Other MCP Servers |
41
- |---------|---------|-------------------|
42
- | **Page Builder Support** | 11 builders | None |
43
- | Edit Divi modules | 200+ module types | - |
44
- | Edit Elementor widgets | Full support | - |
45
- | Edit Bricks elements | Full support | - |
46
- | Module-level updates | By path or label | - |
47
- | **Safety Features** | | |
48
- | Duplicate-before-edit | Yes | No |
49
- | Live page protection | Yes | No |
50
- | Approval workflow | Yes | No |
51
- | **Analysis Tools** | | |
52
- | SEO Analysis | Yes | No |
53
- | Core Web Vitals | Yes | No |
54
- | AEO (AI Search Optimization) | Yes | No |
55
- | Readability scoring | Yes | No |
56
- | **Multilingual** | | |
57
- | WPML support | Yes | No |
58
- | Menu translations | Yes | No |
59
- | **WooCommerce Add-on** | | |
60
- | Product management tools | Yes (add-on) | No |
61
- | Order status and operations | Yes (add-on) | No |
62
- | Inventory and stock tools | Yes (add-on) | No |
63
- | Sales reports and inventory intelligence | Yes (add-on) | No |
64
-
65
- ### Tool Inventory (v4.0)
66
-
67
- - `82` always-on `wordpress_*` tools
68
- - `21` conditional `woocommerce_*` tools (only when WooCommerce add-on is installed and licensed)
69
- - `103` total MCP tools when WooCommerce add-on is active
70
- - Automatic `respira/v2` capability negotiation with `respira/v1` fallback for backward compatibility
71
-
72
- ### Supported Page Builders
32
+ ## What Makes Respira Different
73
33
 
74
- <p align="center">
75
- <img src="https://img.shields.io/badge/Divi-200%2B%20modules-purple?style=for-the-badge" alt="Divi">
76
- <img src="https://img.shields.io/badge/Elementor-Full%20Support-92003B?style=for-the-badge" alt="Elementor">
77
- <img src="https://img.shields.io/badge/Bricks-Full%20Support-orange?style=for-the-badge" alt="Bricks">
78
- <img src="https://img.shields.io/badge/Oxygen-Full%20Support-00D084?style=for-the-badge" alt="Oxygen">
79
- </p>
80
-
81
- - **Divi** - All 200+ modules with nested content
82
- - **Elementor** - Widgets, sections, containers
83
- - **Bricks** - Elements and nestable layouts
84
- - **Oxygen** - Components and dynamic data
85
- - **Gutenberg** - All registered blocks (core + third-party)
86
- - **Beaver Builder** - Modules and rows
87
- - **WPBakery** - Elements and templates
88
- - **Visual Composer** - Elements and layouts
89
- - **Brizy** - Blocks and elements
90
- - **Thrive Architect** - Elements and templates
91
- - **Breakdance** - Elements, sections, and builder JSON layouts
92
-
93
- ### WooCommerce Add-on Abilities
34
+ Other WordPress MCP servers wrap the REST API. They can create posts and pages, but **they can't touch your page builder content**.
94
35
 
95
- Respira MCP can expose WooCommerce tools when the WooCommerce add-on is installed and licensed:
36
+ Respira includes a WordPress plugin that gives AI **native access** to 11 page builders — plus element-level precision, full page creation from structure, HTML-to-builder conversion, stock image search, and bulk operations across hundreds of pages.
96
37
 
97
- - Product operations: list/get/create/update/duplicate plus category and tag taxonomy operations
98
- - Order operations: list/get/update status, safe order updates
99
- - Inventory operations: stock status overview, stock quantity updates
100
- - Taxonomy operations: product categories and tags (list/get/create/update/delete)
101
- - Commerce reporting: sales reports
102
- - Add-on gating: tools auto-register only when add-on is active + licensed
103
-
104
- WooCommerce add-on details: [respira.press/addons/woocommerce](https://respira.press/addons/woocommerce)
38
+ | Capability | Respira | Other MCP Servers |
39
+ |---|---|---|
40
+ | Page builder support | **11 builders** | None |
41
+ | Element-level find/update/move/remove | **Yes** | No |
42
+ | Build full pages from structure | **Yes** | No |
43
+ | Convert HTML to native builder | **Yes** | No |
44
+ | Stock image search + sideload | **Yes** | No |
45
+ | Bulk operations (100 pages/call) | **Yes** | No |
46
+ | 27 widget shortcuts (add_heading, etc.) | **Yes** | No |
47
+ | Duplicate-before-edit safety | **Yes** | No |
48
+ | Snapshot rollback | **Yes** | No |
49
+ | SEO / Core Web Vitals / AEO analysis | **Yes** | No |
50
+ | WooCommerce (products, orders, inventory) | **Yes** (add-on) | No |
51
+ | Tool governance (per-tool enable/disable) | **Yes** | No |
105
52
 
106
53
  ---
107
54
 
108
55
  ## Quick Start (3 Minutes)
109
56
 
110
- ### Step 1: Install WordPress Plugin
57
+ ### Step 1: Install the WordPress Plugin
111
58
 
112
- 1. Download from [respira.press/releases](https://respira.press/releases)
113
- 2. Upload to WordPress: **Plugins > Add New > Upload Plugin**
114
- 3. Activate and go to **Respira > API Keys**
115
- 4. Generate your API key (starts with `respira_`)
59
+ Download from [respira.press/plugin](https://respira.press/plugin) → upload to WordPress → activate → go to **Respira > API Keys** → generate a key.
116
60
 
117
61
  ### Step 2: Configure Your AI Tool
118
62
 
119
- For agencies or anyone managing multiple connected sites, use the dedicated hosted setup page at [respira.press/dashboard/mcp](https://www.respira.press/dashboard/mcp). It generates the all-sites config, one-time install command, and AI setup prompt from your account inventory.
120
-
121
63
  <details>
122
- <summary><b>Cursor</b></summary>
64
+ <summary><b>Claude Code</b></summary>
123
65
 
124
- Create `.cursor/mcp.json` in your project:
125
- ```json
126
- {
127
- "mcpServers": {
128
- "respira-wordpress": {
129
- "command": "npx",
130
- "args": ["-y", "@respira/wordpress-mcp-server"]
131
- }
132
- }
133
- }
66
+ ```bash
67
+ claude mcp add respira-wordpress -- npx -y @respira/wordpress-mcp-server
134
68
  ```
135
69
 
136
70
  </details>
137
71
 
138
72
  <details>
139
- <summary><b>Claude Code</b></summary>
73
+ <summary><b>Cursor</b></summary>
140
74
 
141
- Add to `~/.claude.json`:
75
+ Create `.cursor/mcp.json` in your project:
142
76
  ```json
143
77
  {
144
78
  "mcpServers": {
@@ -186,7 +120,7 @@ Add to `~/Library/Application Support/Claude/claude_desktop_config.json` (macOS)
186
120
 
187
121
  </details>
188
122
 
189
- ### Step 3: Add Your Site (Manual / Advanced)
123
+ ### Step 3: Add Your Site
190
124
 
191
125
  Create `~/.respira/config.json`:
192
126
  ```json
@@ -203,209 +137,274 @@ Create `~/.respira/config.json`:
203
137
  }
204
138
  ```
205
139
 
206
- **Done!** Restart your AI tool and start editing.
207
-
208
- ### Guided Agency Setup
140
+ Or run the interactive setup wizard: `npx @respira/wordpress-mcp-server --setup`
209
141
 
210
- - Download client-specific config from [respira.press/dashboard/mcp](https://www.respira.press/dashboard/mcp)
211
- - Or copy the one-time installer command:
212
- - `npx -y @respira/wordpress-mcp-server --install-config --client codex --install-token <token>`
213
- - Treat exported configs and install commands like passwords. They grant access to connected sites. Never commit them to git or paste them into public chats or tickets.
142
+ **Done.** Restart your AI tool and start editing.
214
143
 
215
144
  ---
216
145
 
217
- ## Safe Editing (Unique to Respira)
146
+ ## v5.2 "Elemental" What's New
218
147
 
219
- Unlike other MCP servers that edit live pages directly, Respira:
148
+ ### Element-Level Operations
149
+ Find, update, move, duplicate, and remove individual elements inside any page builder — by ID, type, CSS class, or content text.
220
150
 
221
- 1. **Creates a duplicate** before any edit
222
- 2. **Preserves the original** untouched
223
- 3. **Lets you preview** changes before going live
224
- 4. **Approve in WordPress** when ready
225
- 5. **Returns the approvals URL** in mutation responses (`respira_approvals_url`) so assistants can direct users to:
226
- `https://your-site.com/wp-admin/admin.php?page=respira-approvals`
227
-
228
- ### Divi Safety Contract
229
-
230
- - Every `wordpress_inject_builder_content` call for `builder=\"divi\"` must include `diviVersion`:
231
- - `\"4\"` for Divi 4 shortcode format
232
- - `\"5\"` for Divi 5 block format
233
- - If omitted, MCP returns a confirmation-required response instead of injecting.
151
+ ```
152
+ respira_find_element({ post_id: 42, identifier_type: "type", identifier_value: "heading" })
153
+ respira_update_element({ post_id: 42, identifier_type: "content", identifier_value: "Old Title", updates: { heading: "New Title" } })
154
+ ```
234
155
 
235
- Your live site is never at risk.
156
+ ### Build Full Pages
157
+ Create complete pages from a declarative widget structure in one call.
236
158
 
237
- ---
159
+ ```
160
+ respira_build_page({ title: "Services", structure: [
161
+ { type: "heading", settings: { heading: "Our Services", tag: "h1" } },
162
+ { type: "text", settings: { text: "<p>We build amazing things.</p>" } },
163
+ { type: "button", settings: { text: "Get Started", link: "/contact" } }
164
+ ]})
165
+ ```
238
166
 
239
- ## Part of the WordPress AI Ecosystem
167
+ ### HTML-to-Builder Conversion
168
+ Convert any HTML into native builder widgets — with CSS extraction, responsive mapping, and a fidelity report.
240
169
 
241
- Respira works alongside the official WordPress AI building blocks:
170
+ ```
171
+ respira_convert_html_to_builder({ html: "<section>...</section>", options: { title: "Homepage", preserve_tokens: true } })
172
+ → { page_id: 123, fidelity: { score: 92, sections_matched: 14 } }
173
+ ```
242
174
 
243
- - **WordPress Abilities API** (WP 6.9+): Respira plugin 4.0 registers all MCP tools as WordPress Abilities under `respira` and `respira-woocommerce` categories with rebased IDs (`respira/{tool-name}`)
244
- - **WordPress MCP Adapter**: Exposes Respira abilities alongside core WordPress tools automatically (dynamic 82/103 list)
245
- - **Standalone MCP server** (this package): Quick start path — works without the Abilities API
246
- - **BrowserMCP/WebMCP**: Respira plugin 4.0 bundles the browser bridge directly, so Chrome can discover and run the same Respira abilities without a separate plugin install
175
+ ### Stock Images
176
+ Search Openverse (Creative Commons) and sideload directly into the Media Library with auto-attribution.
247
177
 
248
- ### Two Access Paths
178
+ ```
179
+ respira_search_stock_images({ query: "mountain landscape", per_page: 10 })
180
+ respira_sideload_image({ url: "https://...", caption: "Photo by...", alt: "Mountain" })
181
+ ```
249
182
 
250
- | Path | How it works | Requirements |
251
- |------|-------------|--------------|
252
- | **Standalone** (this npm package) | Install via npm, configure in your AI tool | Node 18+, Respira plugin |
253
- | **WordPress MCP Adapter** | Abilities auto-discovered via WP-CLI STDIO | WP 6.9+, MCP Adapter plugin, Respira plugin v4.0+ |
183
+ ### Bulk Operations
184
+ Apply changes across up to 100 pages in a single call — with mandatory snapshots for rollback.
254
185
 
255
- Both paths are supported. Use whichever fits your setup.
186
+ ```
187
+ respira_bulk_pages_operation({ page_ids: [12, 15, 18, 22], operation: { type: "find_and_replace", find: "2025", replace: "2026" } })
188
+ ```
256
189
 
257
- ### STDIO Transport (for MCP Adapter)
190
+ ### 27 Widget Shortcuts
191
+ One-liner tools to add any widget to a page without building the full structure:
258
192
 
259
- ```bash
260
- npx @respira/wordpress-mcp-server --stdio --wp-path=/path/to/wordpress --user=admin
261
193
  ```
262
-
263
- Or via WP-CLI:
264
- ```bash
265
- wp mcp-adapter serve respira-press --user=admin
194
+ respira_add_heading({ post_id: 42, title: "Hello World", tag: "h2" })
195
+ respira_add_button({ post_id: 42, text: "Buy Now", url: "/shop" })
196
+ respira_add_image({ post_id: 42, image_url: "https://..." })
266
197
  ```
267
198
 
268
199
  ---
269
200
 
270
- ## 82 Core Tools + 21 Conditional WooCommerce Tools (103 Total)
271
-
272
- ### Page Builder Tools
273
- | Tool | What it does |
274
- |------|-------------|
275
- | `wordpress_get_builder_info` | Get all available modules/widgets for the active builder |
276
- | `wordpress_extract_builder_content` | Extract structured builder content from any page |
277
- | `wordpress_inject_builder_content` | Replace entire page content with new builder data |
278
- | `wordpress_update_module` | Update ONE specific module by path or label |
279
-
280
- ### Content Management
281
- | Tool | What it does |
282
- |------|-------------|
283
- | `wordpress_list_pages` | List all pages with builder detection |
284
- | `wordpress_read_page` | Get page with full structured content |
285
- | `wordpress_update_page` | Update page (creates safe duplicate first) |
286
- | `wordpress_create_page_duplicate` | Manually create working copy |
287
-
288
- ### Menu Management
289
- | Tool | What it does |
290
- |------|-------------|
291
- | `wordpress_list_menus` | List all navigation menus |
292
- | `wordpress_get_menu` | Get menu with all items & hierarchy |
293
- | `wordpress_create_menu` | Create new navigation menu |
294
- | `wordpress_create_menu_item` | Add item to any menu |
295
- | `wordpress_assign_menu_location` | Assign menu to theme location |
296
-
297
- ### Analysis Tools
298
- | Tool | What it does |
299
- |------|-------------|
300
- | `wordpress_analyze_seo` | Full SEO audit with actionable recommendations |
301
- | `wordpress_analyze_performance` | Page speed & optimization suggestions |
302
- | `wordpress_get_core_web_vitals` | LCP, FID, CLS scores |
303
- | `wordpress_analyze_aeo` | AI search engine optimization check |
304
- | `wordpress_analyze_readability` | Flesch score, sentence analysis |
305
-
306
- ### WooCommerce Add-on Tools (License-gated)
307
- | Tool | What it does |
308
- |------|-------------|
309
- | `woocommerce_list_products` / `woocommerce_get_product` | Browse and inspect products |
310
- | `woocommerce_create_product` / `woocommerce_update_product` | Create and update products |
311
- | `woocommerce_duplicate_product` | Duplicate products safely before edits |
312
- | `woocommerce_list_categories` / `woocommerce_get_category` | Browse and inspect product categories |
313
- | `woocommerce_create_category` / `woocommerce_update_category` / `woocommerce_delete_category` | Create, update, and delete product categories |
314
- | `woocommerce_list_tags` / `woocommerce_get_tag` | Browse and inspect product tags |
315
- | `woocommerce_create_tag` / `woocommerce_update_tag` / `woocommerce_delete_tag` | Create, update, and delete product tags |
316
- | `woocommerce_list_orders` / `woocommerce_get_order` | List and inspect orders |
317
- | `woocommerce_update_order_status` | Update order status with WooCommerce flows |
318
- | `woocommerce_get_stock_status` / `woocommerce_update_stock` | Inventory and stock management |
319
- | `woocommerce_sales_report` | Sales analytics and reporting |
320
-
321
- ### Media, Users, Taxonomies, Plugins
322
-
323
- Full CRUD operations for all WordPress content types.
324
-
325
- [Full Tool Reference](https://respira.press/docs/tools)
201
+ ## 11 Supported Page Builders
326
202
 
327
- ---
203
+ <p align="center">
204
+ <img src="https://img.shields.io/badge/Elementor-Full_Intelligence-92003B?style=for-the-badge" alt="Elementor">
205
+ <img src="https://img.shields.io/badge/Divi_5-Full_Intelligence-7c3aed?style=for-the-badge" alt="Divi 5">
206
+ <img src="https://img.shields.io/badge/Beaver_Builder-Full_Support-0fa2e6?style=for-the-badge" alt="Beaver Builder">
207
+ <img src="https://img.shields.io/badge/Bricks-Full_Support-ef6723?style=for-the-badge" alt="Bricks">
208
+ </p>
328
209
 
329
- ## Multi-Site Support
210
+ | Builder | Support Level | Element Ops | Build Page | Dynamic Schemas |
211
+ |---|---|---|---|---|
212
+ | **Elementor** | Full Intelligence | Native API | Yes | Yes — runtime control registry |
213
+ | **Divi 5** | Full Intelligence | Native API | Yes | Yes — 40+ module definitions |
214
+ | **Divi 4** | Full Intelligence | Tree utility | Yes | Static schemas |
215
+ | **Beaver Builder** | Full Support | Tree utility | Yes | Static schemas |
216
+ | **Bricks** | Full Support | Tree utility | Yes | Static schemas |
217
+ | **Gutenberg** | Full Support | Tree utility | Yes | Block registry |
218
+ | **Oxygen** | Smart Defaults | Tree utility | Yes | Static schemas |
219
+ | **WPBakery** | Smart Defaults | Tree utility | Yes | Static schemas |
220
+ | **Breakdance** | Smart Defaults | Tree utility | Yes | Static schemas |
221
+ | **Brizy** | Basic | Tree utility | Best-effort | — |
222
+ | **Thrive Architect** | Basic | Tree utility | Best-effort | — |
223
+ | **Visual Composer** | Basic | Tree utility | Best-effort | — |
330
224
 
331
- Manage multiple WordPress sites from one config:
332
- ```json
333
- {
334
- "sites": [
335
- {
336
- "id": "production",
337
- "name": "Production Site",
338
- "url": "https://mysite.com",
339
- "apiKey": "respira_prod_key",
340
- "default": true
341
- },
342
- {
343
- "id": "staging",
344
- "name": "Staging Site",
345
- "url": "https://staging.mysite.com",
346
- "apiKey": "respira_staging_key"
347
- }
348
- ]
349
- }
350
- ```
225
+ ---
351
226
 
352
- Switch sites with `wordpress_switch_site`.
227
+ ## All 147 Tools
228
+
229
+ ### Element Operations (7 tools) — NEW in v5.2
230
+ | Tool | Description |
231
+ |---|---|
232
+ | `respira_find_element` | Find element by ID, type, CSS class, or content text |
233
+ | `respira_update_element` | Update settings on a specific element |
234
+ | `respira_move_element` | Move element to a different container/position |
235
+ | `respira_duplicate_element` | Clone an element with new IDs |
236
+ | `respira_remove_element` | Remove an element from the page |
237
+ | `respira_batch_update` | Apply multiple operations atomically (extract once → apply all → inject once) |
238
+ | `respira_reorder_elements` | Reorder children within a container |
239
+
240
+ ### Page Building (3 tools) — NEW in v5.2
241
+ | Tool | Description |
242
+ |---|---|
243
+ | `respira_build_page` | Create a complete page from declarative widget structure |
244
+ | `respira_convert_html_to_builder` | Convert HTML into native builder widgets with fidelity report |
245
+ | `respira_bulk_pages_operation` | Apply operations across up to 100 pages with mandatory snapshots |
246
+
247
+ ### Stock Images (2 tools) — NEW in v5.2
248
+ | Tool | Description |
249
+ |---|---|
250
+ | `respira_search_stock_images` | Search Openverse for Creative Commons images |
251
+ | `respira_sideload_image` | Download and import image into Media Library with attribution |
252
+
253
+ ### 27 Widget Shortcuts — NEW in v5.2
254
+ Add any widget to a page in one call:
255
+
256
+ `respira_add_heading` · `respira_add_text` · `respira_add_button` · `respira_add_image` · `respira_add_video` · `respira_add_section` · `respira_add_divider` · `respira_add_spacer` · `respira_add_icon` · `respira_add_icon_list` · `respira_add_social_icons` · `respira_add_form` · `respira_add_map` · `respira_add_counter` · `respira_add_progress_bar` · `respira_add_testimonial` · `respira_add_tabs` · `respira_add_accordion` · `respira_add_toggle` · `respira_add_alert` · `respira_add_html` · `respira_add_menu` · `respira_add_sidebar` · `respira_add_search` · `respira_add_gallery` · `respira_add_slider` · `respira_add_pricing_table`
257
+
258
+ ### Page Builder Tools (6 tools)
259
+ | Tool | Description |
260
+ |---|---|
261
+ | `respira_get_builder_info` | Active builder, version, modules, support level |
262
+ | `respira_extract_builder_content` | Extract structured content from any page |
263
+ | `respira_inject_builder_content` | Replace page content with builder data |
264
+ | `respira_update_module` | Update one module by path or label (v1 — use `update_element` for v2) |
265
+ | `respira_find_builder_targets` | Find editable targets in a page |
266
+ | `respira_apply_builder_patch` | Apply a JSON patch to builder content |
267
+
268
+ ### Pages & Posts (14 tools)
269
+ | Tool | Description |
270
+ |---|---|
271
+ | `respira_list_pages` / `respira_read_page` | List and read pages with builder detection |
272
+ | `respira_update_page` / `respira_delete_page` | Update (with safe duplicate) and delete |
273
+ | `respira_create_page_duplicate` | Create working copy before editing |
274
+ | `respira_list_posts` / `respira_read_post` | List and read posts |
275
+ | `respira_update_post` / `respira_delete_post` | Update and delete posts |
276
+ | `respira_create_post_duplicate` | Duplicate a post |
277
+ | `respira_list_custom_posts` / `respira_get_custom_post` | Custom post types |
278
+ | `respira_create_custom_post` / `respira_update_custom_post` / `respira_delete_custom_post` | CRUD for CPTs |
279
+
280
+ ### Snapshots & Rollback (4 tools)
281
+ | Tool | Description |
282
+ |---|---|
283
+ | `respira_list_snapshots` | List all snapshots for a post |
284
+ | `respira_get_snapshot` | Get snapshot content |
285
+ | `respira_diff_snapshots` | Compare two snapshots |
286
+ | `respira_restore_snapshot` | Restore a previous version |
287
+
288
+ ### Analysis (8 tools)
289
+ | Tool | Description |
290
+ |---|---|
291
+ | `respira_analyze_seo` | Full SEO audit with actionable recommendations |
292
+ | `respira_analyze_performance` | Page speed and optimization |
293
+ | `respira_get_core_web_vitals` | LCP, FID, CLS scores |
294
+ | `respira_analyze_aeo` | AI search engine optimization |
295
+ | `respira_analyze_readability` | Flesch score, sentence analysis |
296
+ | `respira_analyze_images` | Image optimization audit |
297
+ | `respira_check_seo_issues` | Technical SEO checklist |
298
+ | `respira_check_structured_data` | Schema.org validation |
299
+ | `respira_analyze_rankmath` | RankMath integration |
300
+
301
+ ### Menus (8 tools)
302
+ | Tool | Description |
303
+ |---|---|
304
+ | `respira_list_menus` / `respira_get_menu` / `respira_create_menu` / `respira_update_menu` / `respira_delete_menu` | Full menu CRUD |
305
+ | `respira_list_menu_items` / `respira_get_menu_item` / `respira_create_menu_item` / `respira_update_menu_item` / `respira_delete_menu_item` | Menu item management |
306
+ | `respira_list_menu_locations` / `respira_assign_menu_location` | Theme location assignment |
307
+
308
+ ### Media (4 tools)
309
+ | Tool | Description |
310
+ |---|---|
311
+ | `respira_list_media` / `respira_get_media` | Browse media library |
312
+ | `respira_upload_media` / `respira_update_media` / `respira_delete_media` | Upload, update metadata, delete |
313
+
314
+ ### Users & Comments (7 tools)
315
+ | Tool | Description |
316
+ |---|---|
317
+ | `respira_list_users` / `respira_get_user` / `respira_create_user` / `respira_update_user` / `respira_delete_user` | User management |
318
+ | `respira_list_comments` / `respira_get_comment` / `respira_create_comment` / `respira_update_comment` / `respira_delete_comment` | Comment operations |
319
+
320
+ ### Taxonomies (5 tools)
321
+ | Tool | Description |
322
+ |---|---|
323
+ | `respira_list_taxonomies` / `respira_get_taxonomy` | Browse taxonomies |
324
+ | `respira_list_terms` / `respira_get_term` / `respira_create_term` / `respira_update_term` / `respira_delete_term` | Term CRUD |
325
+ | `respira_list_post_types` / `respira_get_post_type` | Post type info |
326
+
327
+ ### Site & Plugins (10 tools)
328
+ | Tool | Description |
329
+ |---|---|
330
+ | `respira_get_site_context` | WordPress version, theme, plugins, URL |
331
+ | `respira_get_theme_docs` | Theme documentation and structure |
332
+ | `respira_list_plugins` / `respira_install_plugin` / `respira_activate_plugin` / `respira_deactivate_plugin` / `respira_update_plugin` / `respira_delete_plugin` | Plugin management |
333
+ | `respira_list_options` / `respira_get_option` / `respira_update_option` / `respira_delete_option` | WordPress options |
334
+ | `respira_validate_security` | Security audit |
335
+ | `respira_get_server_compatibility` | Plugin/MCP version check |
336
+
337
+ ### Multi-Site (3 tools)
338
+ | Tool | Description |
339
+ |---|---|
340
+ | `respira_list_sites` | List all configured WordPress sites |
341
+ | `respira_switch_site` | Switch active site |
342
+ | `respira_get_active_site` | Get current site info |
343
+
344
+ ### WooCommerce Add-on (21 tools)
345
+ Available when the [WooCommerce add-on](https://respira.press/addons/woocommerce) is installed:
346
+
347
+ | Tool | Description |
348
+ |---|---|
349
+ | `woocommerce_list_products` / `get` / `create` / `update` / `duplicate` | Product CRUD |
350
+ | `woocommerce_list_orders` / `get` / `update_order_status` | Order management |
351
+ | `woocommerce_get_stock_status` / `update_stock` | Inventory control |
352
+ | `woocommerce_list_categories` / `get` / `create` / `update` / `delete` | Product categories |
353
+ | `woocommerce_list_tags` / `get` / `create` / `update` / `delete` | Product tags |
354
+ | `woocommerce_sales_report` | Sales analytics |
353
355
 
354
356
  ---
355
357
 
356
- ## WPML Multilingual Support
358
+ ## Safe Editing
357
359
 
358
- Full support for multilingual WordPress sites:
359
- - Detect content language automatically
360
- - Access all translations
361
- - Menu translations with language codes
362
- - Language-aware content queries
360
+ Every mutation creates a snapshot. Roll back anytime.
363
361
 
364
- ---
362
+ 1. **Snapshot captured** before every edit
363
+ 2. **Duplicate-before-edit** — original stays untouched
364
+ 3. **Approval workflow** — review changes in WordPress admin
365
+ 4. **Rollback** — restore any snapshot with `respira_restore_snapshot`
365
366
 
366
- ## Troubleshooting
367
+ ### Tool Governance
367
368
 
368
- ### Windows: 'npx' not recognized
369
+ Admins can enable/disable individual tools from the WordPress dashboard. Governance applies to both REST API and WebMCP/Abilities API paths.
369
370
 
370
- **Option 1:** Use full path to npx:
371
- ```json
372
- {
373
- "command": "C:\\Program Files\\nodejs\\npx.cmd",
374
- "args": ["-y", "@respira/wordpress-mcp-server"]
375
- }
376
- ```
371
+ ---
377
372
 
378
- **Option 2:** Install globally first:
379
- ```bash
380
- npm install -g @respira/wordpress-mcp-server
381
- ```
373
+ ## Multi-Site Support
382
374
 
383
- Then use:
375
+ Manage multiple WordPress sites from one config:
384
376
  ```json
385
377
  {
386
- "command": "respira-wordpress-mcp"
378
+ "sites": [
379
+ { "id": "production", "name": "Production", "url": "https://mysite.com", "apiKey": "respira_prod_key", "default": true },
380
+ { "id": "staging", "name": "Staging", "url": "https://staging.mysite.com", "apiKey": "respira_staging_key" }
381
+ ]
387
382
  }
388
383
  ```
389
384
 
390
- ### Connection Failed
385
+ Switch sites: `respira_switch_site({ siteId: "staging" })`
391
386
 
392
- 1. Check your API key in WordPress > Respira > API Keys
393
- 2. Verify your site URL includes `https://`
394
- 3. Make sure the Respira plugin is activated
395
- 4. Check if your hosting blocks REST API requests
387
+ For agencies managing many sites, use the hosted setup at [respira.press/dashboard/mcp](https://www.respira.press/dashboard/mcp) to generate configs and install commands from your account.
396
388
 
397
- ### Tools Not Showing in AI Tool
389
+ ---
390
+
391
+ ## Deprecation Notice: `wordpress_*` Tool Names
392
+
393
+ All tools now use `respira_*` names (e.g. `respira_update_page`, `respira_find_element`).
394
+
395
+ The legacy `wordpress_*` names still work as aliases for backward compatibility, but **will be removed in v6.0**. If your prompts or workflows reference `wordpress_*` tools, update them to `respira_*` now.
396
+
397
+ ---
398
398
 
399
- 1. Restart your AI tool completely (quit and reopen)
400
- 2. Verify config file JSON syntax (use a JSON validator)
401
- 3. Check the config file is in the correct location
402
- 4. Make sure you saved the file after editing
399
+ ## WordPress AI Ecosystem
403
400
 
404
- ### "Page not found" Errors
401
+ Respira works with the official WordPress AI stack:
405
402
 
406
- 1. The page ID might be wrong - use `wordpress_list_pages` first
407
- 2. Check if the page is in trash
408
- 3. Verify your API key has access to that page
403
+ | Path | How it works | Requirements |
404
+ |---|---|---|
405
+ | **Standalone MCP** (this package) | `npx @respira/wordpress-mcp-server` | Node 18+, Respira plugin |
406
+ | **WordPress MCP Adapter** | Abilities auto-discovered via WP-CLI STDIO | WP 6.9+, MCP Adapter, Respira v5.0+ |
407
+ | **WebMCP** | Browser-native MCP via Chrome Abilities API | Chrome 146+, Respira plugin |
409
408
 
410
409
  ---
411
410
 
@@ -416,23 +415,11 @@ Then use:
416
415
  npx -y @respira/wordpress-mcp-server
417
416
  ```
418
417
 
419
- ### Smithery (MCP Package Manager)
420
- ```bash
421
- npx -y @smithery/cli install @respira/wordpress-mcp-server --client claude
422
- ```
423
-
424
418
  ### Interactive Setup Wizard
425
419
  ```bash
426
420
  npx @respira/wordpress-mcp-server --setup
427
421
  ```
428
422
 
429
- This wizard will:
430
- - Guide you through configuration step by step
431
- - Validate your WordPress URL and API key
432
- - Test your connection before saving
433
- - Generate the config file automatically
434
- - Show you what to add to your AI tool
435
-
436
423
  ### Global Install
437
424
  ```bash
438
425
  npm install -g @respira/wordpress-mcp-server
@@ -441,14 +428,14 @@ respira-wordpress-mcp
441
428
 
442
429
  ### CLI Options
443
430
  ```bash
444
- npx @respira/wordpress-mcp-server --setup # Run setup wizard
431
+ npx @respira/wordpress-mcp-server --setup # Setup wizard
445
432
  npx @respira/wordpress-mcp-server --list # List configured sites
446
- npx @respira/wordpress-mcp-server --test # Test default site connection
447
- npx @respira/wordpress-mcp-server --stdio # STDIO transport (for WP-CLI/MCP Adapter)
448
- npx @respira/wordpress-mcp-server --help # Show help
433
+ npx @respira/wordpress-mcp-server --test # Test connection
434
+ npx @respira/wordpress-mcp-server --stdio # STDIO transport (MCP Adapter)
435
+ npx @respira/wordpress-mcp-server --help # Help
449
436
  ```
450
437
 
451
- ### Environment Variables (Alternative to config file)
438
+ ### Environment Variables
452
439
  ```bash
453
440
  export WP_SITE_URL=https://your-site.com
454
441
  export WP_API_KEY=respira_your-api-key
@@ -456,17 +443,47 @@ export WP_API_KEY=respira_your-api-key
456
443
 
457
444
  ---
458
445
 
459
- ## Security
446
+ ## Troubleshooting
460
447
 
461
- API key validation happens server-side in the WordPress plugin. The MCP server passes credentials but does not store or validate them. No sensitive parsing logic is in this repository.
448
+ <details>
449
+ <summary><b>Windows: 'npx' not recognized</b></summary>
450
+
451
+ Use the full path:
452
+ ```json
453
+ { "command": "C:\\Program Files\\nodejs\\npx.cmd", "args": ["-y", "@respira/wordpress-mcp-server"] }
454
+ ```
455
+
456
+ Or install globally: `npm install -g @respira/wordpress-mcp-server` then use `{ "command": "respira-wordpress-mcp" }`.
462
457
 
463
- Report vulnerabilities to security@respira.press. See [SECURITY.md](.github/SECURITY.md) for details.
458
+ </details>
459
+
460
+ <details>
461
+ <summary><b>Connection failed</b></summary>
462
+
463
+ 1. Check API key: WordPress > Respira > API Keys
464
+ 2. URL must include `https://`
465
+ 3. Plugin must be activated
466
+ 4. Check if hosting blocks REST API
467
+
468
+ </details>
469
+
470
+ <details>
471
+ <summary><b>Tools not showing</b></summary>
472
+
473
+ 1. Restart your AI tool completely
474
+ 2. Validate JSON syntax in config file
475
+ 3. Check config file location
476
+ 4. Run `npx @respira/wordpress-mcp-server --test` to verify
477
+
478
+ </details>
464
479
 
465
480
  ---
466
481
 
467
- ## Contributing
482
+ ## Security
483
+
484
+ API key validation happens server-side in the WordPress plugin. The MCP server passes credentials but does not store or validate them.
468
485
 
469
- See [CONTRIBUTING.md](.github/CONTRIBUTING.md) for how to add builder support, new tools, and submit PRs.
486
+ Report vulnerabilities to security@respira.press.
470
487
 
471
488
  ---
472
489
 
@@ -474,7 +491,8 @@ See [CONTRIBUTING.md](.github/CONTRIBUTING.md) for how to add builder support, n
474
491
 
475
492
  - [Website](https://respira.press)
476
493
  - [Documentation](https://respira.press/docs)
477
- - [Download Plugin](https://respira.press/releases)
494
+ - [Download Plugin](https://respira.press/plugin)
495
+ - [WooCommerce Add-on](https://respira.press/addons/woocommerce)
478
496
  - [Support](https://respira.press/support)
479
497
 
480
498
  ---
@@ -486,6 +504,6 @@ MIT © [Respira](https://respira.press)
486
504
  ---
487
505
 
488
506
  <p align="center">
489
- <strong>The only WordPress MCP with page builder support.</strong><br>
490
- Built for WordPress developers who use AI.
507
+ <strong>147 tools. 11 builders. The AI infrastructure layer for WordPress.</strong><br>
508
+ <a href="https://respira.press">respira.press</a>
491
509
  </p>
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@respira/wordpress-mcp-server",
3
- "version": "5.2.0",
4
- "description": "Respira WordPress MCP server: 125+ tools (element ops, build_page, HTML converter, stock images, bulk operations, 27 widget shortcuts), 11 page builders, dual respira_*/wordpress_* registration, and automatic v2 fidelity negotiation with v1 fallback.",
3
+ "version": "5.2.1",
4
+ "description": "147 MCP tools for WordPress. Element-level editing, full page creation, HTML-to-builder conversion, stock images, bulk operations, 27 widget shortcuts. Native support for 11 page builders: Elementor, Divi 5, Beaver Builder, Bricks, Gutenberg, Oxygen, WPBakery, Breakdance, Brizy, Thrive, Visual Composer. All tools use respira_* names. wordpress_* aliases deprecated, removed in v6.0.",
5
5
  "main": "dist/index.js",
6
6
  "bin": {
7
7
  "wordpress-mcp-server": "./dist/index.js",
@@ -91,7 +91,18 @@
91
91
  "ecommerce",
92
92
  "inventory-management",
93
93
  "order-management",
94
- "product-management"
94
+ "product-management",
95
+ "html-to-builder",
96
+ "element-ops",
97
+ "stock-images",
98
+ "openverse",
99
+ "bulk-operations",
100
+ "widget-shortcuts",
101
+ "build-page",
102
+ "snapshot",
103
+ "rollback",
104
+ "breakdance",
105
+ "breakdance-ai"
95
106
  ],
96
107
  "author": {
97
108
  "name": "Respira",