elementor-mcp-agent 1.1.0 → 1.3.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 +55 -0
- package/dist/server.js +347 -183
- package/dist/server.js.map +1 -1
- package/package.json +13 -7
- package/scripts/fetch-elementor-docs.ts +26 -0
- package/scripts/postinstall.cjs +64 -0
package/README.md
CHANGED
|
@@ -2,6 +2,8 @@
|
|
|
2
2
|
|
|
3
3
|
[](https://www.npmjs.com/package/elementor-mcp-agent)
|
|
4
4
|
[](./LICENSE)
|
|
5
|
+
[](https://glama.ai/mcp/servers/Mogacode-ma/elementor-mcp-agent)
|
|
6
|
+
[](https://github.com/Mogacode-ma/elementor-mcp-agent/stargazers)
|
|
5
7
|
|
|
6
8
|
> **Agency-grade MCP server for WordPress Elementor.** Multi-site management, safe Elementor edits with backup + auto-rollback + CSS flush, template export/import, global widget detection, screenshots, WP-CLI escape hatch.
|
|
7
9
|
|
|
@@ -9,6 +11,20 @@ Built for agencies running many client sites on Elementor / Elementor Pro who wa
|
|
|
9
11
|
|
|
10
12
|
---
|
|
11
13
|
|
|
14
|
+
## How this was built
|
|
15
|
+
|
|
16
|
+
elementor-mcp-agent was built end-to-end with Claude Code over ~48 hours. The process is intentionally open:
|
|
17
|
+
|
|
18
|
+
- Architecture, code, tests, docs — all generated through Claude Code pair-programming sessions
|
|
19
|
+
- The 7 bugs documented in [this post-mortem](https://dev.to/mogacode/7-bugs-i-caught-in-my-mcp-server-before-publishing-and-why-i-almost-shipped-a-data-corruption-5dfd) were caught in real E2E testing against a live WordPress + Elementor install, not after the fact
|
|
20
|
+
- v1.2's post-write verification pattern was shipped 2 hours after a reader's comment ([Mads Hansen on Dev.to](https://dev.to/mogacode/7-bugs-i-caught-in-my-mcp-server-before-publishing-and-why-i-almost-shipped-a-data-corruption-5dfd/comments)) — the changelog credits the source
|
|
21
|
+
|
|
22
|
+
This isn't vibe-coded software thrown over the wall. Every release ran through lint + typecheck + 27 unit tests + (for v1.0) full E2E against a real WordPress install before publishing. The MCP itself hardcodes guardrails that prevent the model from making destructive WP-CLI calls.
|
|
23
|
+
|
|
24
|
+
I run a small WordPress agency and use this tool every day on client sites. If you're skeptical about agentic codegen for production infrastructure, the entire commit history is in the open — judge for yourself.
|
|
25
|
+
|
|
26
|
+
---
|
|
27
|
+
|
|
12
28
|
## Why this exists
|
|
13
29
|
|
|
14
30
|
There are 25+ WordPress MCP servers on GitHub today. None targets the **agency multi-site workflow** with:
|
|
@@ -123,6 +139,35 @@ The `ssh` block is **optional** but unlocks **8 additional tools** (WP-CLI escap
|
|
|
123
139
|
|
|
124
140
|
---
|
|
125
141
|
|
|
142
|
+
## Post-write verification (v1.2)
|
|
143
|
+
|
|
144
|
+
Every mutating widget tool re-reads the page from canonical WP **after the
|
|
145
|
+
write** and surfaces persisted state to the model. The HTTP write API can
|
|
146
|
+
lie — return 200 OK while plugin filters or REST quirks silently drop the
|
|
147
|
+
payload. This contract makes that observable.
|
|
148
|
+
|
|
149
|
+
Every `applied` response carries:
|
|
150
|
+
|
|
151
|
+
```jsonc
|
|
152
|
+
{
|
|
153
|
+
"mutated": true, // false = no-op OR silent drop
|
|
154
|
+
"warnings": [], // non-fatal issues
|
|
155
|
+
"verification": {
|
|
156
|
+
"method": "Re-read /wp/v2/pages/42 and check widget abc settings…",
|
|
157
|
+
"reread_ok": true,
|
|
158
|
+
"matches_requested": true, // false = write API lied
|
|
159
|
+
"persisted": { /* canonical state */ },
|
|
160
|
+
"notes": "…explanation when something diverged"
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
```
|
|
164
|
+
|
|
165
|
+
If `verification.matches_requested === false`, treat as a failure even if
|
|
166
|
+
the HTTP layer said OK. The original payload survives in
|
|
167
|
+
`backup_meta_key` — restore via `restore_elementor_backup`.
|
|
168
|
+
|
|
169
|
+
---
|
|
170
|
+
|
|
126
171
|
## Safety guarantees
|
|
127
172
|
|
|
128
173
|
Hardcoded in `src/elementor/policies.ts`:
|
|
@@ -188,6 +233,16 @@ v1.0.0 was tested in real conditions against a live WordPress install with Eleme
|
|
|
188
233
|
|
|
189
234
|
---
|
|
190
235
|
|
|
236
|
+
## If this saved you time
|
|
237
|
+
|
|
238
|
+
The fastest way to support the project is a [⭐ star on GitHub](https://github.com/Mogacode-ma/elementor-mcp-agent) — it helps other agencies running Elementor sites find this and tells me what to keep building.
|
|
239
|
+
|
|
240
|
+
You can also:
|
|
241
|
+
|
|
242
|
+
- Open an [issue](https://github.com/Mogacode-ma/elementor-mcp-agent/issues) for bugs, edge cases, or missing tools
|
|
243
|
+
- Start a [discussion](https://github.com/Mogacode-ma/elementor-mcp-agent/discussions) for design or workflow questions
|
|
244
|
+
- Share what you built with it — I'd love to hear
|
|
245
|
+
|
|
191
246
|
## License
|
|
192
247
|
|
|
193
248
|
[MIT](./LICENSE) — © 2026 [MogaCode](https://mogacode.ma).
|