elementor-mcp-agent 1.0.0 → 1.2.0
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.
- package/README.md +49 -5
- package/dist/server.js +865 -2
- package/dist/server.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -71,7 +71,7 @@ The `ssh` block is **optional** but unlocks **8 additional tools** (WP-CLI escap
|
|
|
71
71
|
|
|
72
72
|
---
|
|
73
73
|
|
|
74
|
-
## Tools (
|
|
74
|
+
## Tools (34)
|
|
75
75
|
|
|
76
76
|
### Sites & health
|
|
77
77
|
- `list_sites` — enumerate the pool
|
|
@@ -104,11 +104,54 @@ The `ssh` block is **optional** but unlocks **8 additional tools** (WP-CLI escap
|
|
|
104
104
|
- `screenshot_page` — headless Chrome PNG of any URL
|
|
105
105
|
- `compare_screenshots` — SHA-256 + byte-delta
|
|
106
106
|
|
|
107
|
+
### Widgets (v1.1 — widget-level CRUD)
|
|
108
|
+
- `read_widget` — fetch one widget by id (read-only)
|
|
109
|
+
- `update_widget_settings` — shallow-merge settings, with backup + validate + flush
|
|
110
|
+
- `delete_widget` — remove a widget from its parent container
|
|
111
|
+
- `duplicate_widget` — clone as sibling with fresh id
|
|
112
|
+
- `swap_widget_type` — replace widgetType + settings, preserve id + position
|
|
113
|
+
- `add_widget` — append a widget into a parent container
|
|
114
|
+
- `move_widget` — move a widget between containers (with position)
|
|
115
|
+
|
|
116
|
+
### Bulk & fleet (v1.1)
|
|
117
|
+
- `bulk_find_replace_site` — find/replace across every Elementor page of one site, per-page backup + validate + flush
|
|
118
|
+
- `fleet_find_replace` — same across **every site in the pool** (sequential, dry-run mandatory)
|
|
119
|
+
- `restore_from_file` — restore `_elementor_data` from a JSON file backup, with pre-restore safety backup
|
|
120
|
+
|
|
107
121
|
### Fleet
|
|
108
122
|
- `check_elementor_versions` — flag outdated installs against wordpress.org latest
|
|
109
123
|
|
|
110
124
|
---
|
|
111
125
|
|
|
126
|
+
## Post-write verification (v1.2)
|
|
127
|
+
|
|
128
|
+
Every mutating widget tool re-reads the page from canonical WP **after the
|
|
129
|
+
write** and surfaces persisted state to the model. The HTTP write API can
|
|
130
|
+
lie — return 200 OK while plugin filters or REST quirks silently drop the
|
|
131
|
+
payload. This contract makes that observable.
|
|
132
|
+
|
|
133
|
+
Every `applied` response carries:
|
|
134
|
+
|
|
135
|
+
```jsonc
|
|
136
|
+
{
|
|
137
|
+
"mutated": true, // false = no-op OR silent drop
|
|
138
|
+
"warnings": [], // non-fatal issues
|
|
139
|
+
"verification": {
|
|
140
|
+
"method": "Re-read /wp/v2/pages/42 and check widget abc settings…",
|
|
141
|
+
"reread_ok": true,
|
|
142
|
+
"matches_requested": true, // false = write API lied
|
|
143
|
+
"persisted": { /* canonical state */ },
|
|
144
|
+
"notes": "…explanation when something diverged"
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
```
|
|
148
|
+
|
|
149
|
+
If `verification.matches_requested === false`, treat as a failure even if
|
|
150
|
+
the HTTP layer said OK. The original payload survives in
|
|
151
|
+
`backup_meta_key` — restore via `restore_elementor_backup`.
|
|
152
|
+
|
|
153
|
+
---
|
|
154
|
+
|
|
112
155
|
## Safety guarantees
|
|
113
156
|
|
|
114
157
|
Hardcoded in `src/elementor/policies.ts`:
|
|
@@ -156,15 +199,16 @@ v1.0.0 was tested in real conditions against a live WordPress install with Eleme
|
|
|
156
199
|
|
|
157
200
|
## Roadmap
|
|
158
201
|
|
|
159
|
-
**v1.1**
|
|
160
|
-
- Widget-level CRUD: `read_widget`, `update_widget_settings`, `
|
|
202
|
+
**v1.1** ✅ shipped
|
|
203
|
+
- Widget-level CRUD: `read_widget`, `update_widget_settings`, `delete_widget`, `duplicate_widget`, `swap_widget_type`, `add_widget`, `move_widget`
|
|
161
204
|
- `bulk_find_replace_site` (across all Elementor pages of one site)
|
|
162
|
-
- `
|
|
205
|
+
- `fleet_find_replace` (across all sites in pool)
|
|
206
|
+
- `restore_from_file`
|
|
163
207
|
|
|
164
208
|
**v1.2**
|
|
165
|
-
- `fleet_find_replace` (across all sites in pool)
|
|
166
209
|
- Global styles read/write
|
|
167
210
|
- Theme Builder template push across sites
|
|
211
|
+
- Section/column-level operations
|
|
168
212
|
|
|
169
213
|
**v2.0**
|
|
170
214
|
- WooCommerce-aware tools
|