Elementor Agent MCP server
io.github.Mogacode-ma/elementor-mcp-agent·v1.3.0·3 starsAgency-grade MCP for WordPress Elementor — multi-site, safe edits, templates, versions.
3 stars62 downloads/wk
Reviews
Write oneNobody has reviewed Elementor Agent yet.
If you have run it, two minutes of your experience saves the next person an afternoon.
Elementor Agent tools (34, 5 write)
write = sends, deletes, buys or postsRead from the package source without running it. The installed server may list more.
add_widgetAppend a new widget to a parent container (section, column, or container) on a page. Re-reads to confirm the new widget exists under the parent. Two-call confirmation.
apply_template_to_pageCopy the _elementor_data + _elementor_page_settings of a SOURCE template (or page) onto a TARGET page on the same site. Backs up the target first. Use to apply a section/page template to an existing draft.
bulk_find_replace_siteFind/replace plain text in every Elementor page on a single site. TWO-CALL FLOW: dry-run returns per-page match_count + total + confirmation_token. Apply iterates each page (auto-backup + validate + flush per page). Slower than wp_search_replace but works without SSH and gives per-page granularity.
check_elementor_versionsFleet-wide Elementor version audit. For every site, fetches installed Elementor/Pro versions and compares against wordpress.org latest. Flags outdated installs.
compare_screenshotsCompare two screenshot files via SHA-256 hash equality and size delta. Quick way to spot whether a page changed visually after an edit. For pixel diffs, use a dedicated tool externally.
delete_widgetwrite actionRemove a widget from a page by id. Two-call confirmation. Backs up before deleting; re-reads to confirm the widget is gone.
duplicate_elementor_pageDuplicate an Elementor page within the same site. Creates a new draft page, copies _elementor_data + _elementor_page_settings + _elementor_edit_mode, flushes CSS.
duplicate_widgetDuplicate a widget in place (right after the original). The clone gets a new id. Re-reads to confirm the clone persisted. Two-call confirmation.
elementor_find_replaceFind/replace plain text in every widget on one page. TWO-CALL FLOW: dry-run returns match_count + detailed widget hits + confirmation_token. Second call with token applies the change with auto-backup + JSON validation + auto-rollback if validation fails + CSS flush.
export_elementor_templateExport an Elementor template (section, page, header, footer, etc.) as a portable JSON object. Output goes into import_elementor_template on another site.
fleet_find_replaceFind/replace plain text across every Elementor page of every site in the pool. Same flow as bulk_find_replace_site but iterates across sites. Returns per-site + grand-total summary. Dry-run first; second call applies. Use sparingly \u2014 this is the nuclear option.
import_elementor_templateImport a portable template JSON (output of export_elementor_template) into a target site as a new library entry. Useful for cross-site template sync.
list_elementor_backupsList timestamped backups of a page's Elementor data (created by previous edit ops). Use restore_elementor_backup with one of these meta keys to roll back.
list_elementor_pagesList pages built with Elementor (have _elementor_edit_mode = 'builder'). Returns id, title, slug, status, modified date.
list_elementor_templatesList Elementor library entries on a site: saved sections, pages, popups, headers/footers (Theme Builder Pro), single/archive templates (Theme Builder Pro), and global widgets. Type filter narrows results.
list_global_widgetsList all global widgets on a site (Elementor library entries of type 'widget'). These are shared across pages \u2014 editing one affects every page using it.
list_sitesList every WordPress site configured. Best called first in a session.
list_widgets_in_pageFlat list of every widget in a page with id, type, parent path, and an excerpt of the first text setting (for spot-checking before find/replace).
move_widgetMove a widget to a different parent (or different position in the same parent). Re-reads to confirm new parent. Two-call confirmation.
ping_siteVerify connectivity + authentication to a WordPress site. Returns user identity + WP/Elementor/Elementor Pro versions if accessible.
preflight_checkValidate a page is safe to edit. Checks: page exists, is Elementor-built, data parses cleanly, references valid global widgets, isn't currently locked by another editor.
read_page_elementorFetch a page's Elementor data structure summary. With verbose=true returns the full parsed tree (potentially MBs).
read_widgetFetch a single widget's full settings by id. Use list_widgets_in_page to find the id first.
restore_elementor_backupRestore a page's _elementor_data and _elementor_page_settings from a backup created by a previous edit. TWO-CALL FLOW with confirmation token.
restore_from_fileRestore a page from a JSON backup file (created by ANY earlier op with backup_to_file=true or by direct fullBackup with to_file). Requires the file_path returned by that backup. Two-call confirmation.
screenshot_pageCapture a PNG screenshot of a page's frontend (visitor-facing URL). Requires a Chrome/Chromium binary on the host. Returns the local file path so the LLM can analyse it or compare against another shot.
site_healthComprehensive site health snapshot: WP/PHP/Elementor versions, disk space (if SSH), plugin count, theme info. Aggregates multiple REST calls into a single overview.
swap_widget_typeReplace a widget's type (e.g., heading \u2192 button) while preserving its id and position. Provide full new_settings \u2014 the old settings are NOT carried over (different widget types have incompatible schemas). Re-reads to confirm. Two-call confirmation.
update_widget_settingswrite actionShallow-merge a partial settings object into one widget. Backs up the page first, validates the result, auto-flushes CSS, then re-reads the page and verifies the patch persisted (matches_requested in the response). Two-call confirmation.
wp_cli_runwrite actionExecute an arbitrary wp-cli command on a site via SSH. The `wp` prefix and `--path` are added automatically \u2014 pass only the args (e.g. 'post list --post_type=page'). Destructive commands (delete, drop, search-replace without --dry-run, plugin deactivate/uninstall) require a two-call confirmation flow.
wp_elementor_flush_cssFlush Elementor's CSS cache on a site using the 3-level fallback strategy (REST endpoint \u2192 wp-cli native \u2192 option/meta delete). Always call after writing _elementor_data programmatically.
wp_plugin_listList installed plugins on a site with name, version, status (active/inactive), and update_version (if outdated). Uses WP-CLI for accurate version data including update_version.
wp_plugin_updatewrite actionUpdate one or more plugins on a site to their latest version. Requires confirmation token (uses wp-cli).
wp_search_replacewrite actionRun `wp search-replace` against wp_postmeta (default) \u2014 the standard agency way to update Elementor text content. ALWAYS dry-run first; the apply call requires a confirmation token. Includes --precise --all-tables-with-prefix by default if you specify table='all'.
Public scan report
scanner v0.1.9 · 2026-09-27 · same rubric, same numbers if you re-run it
- Code scan3 source files scanned15/25
- –Live reliabilityno gateway calls yet and no remote to proben/a
- –Tool poisoningtools not inspected (local package is not executed); not countedn/a
- Auth qualitystatic API keys via environment variables6/15
- Maintenancelast push 13 days ago15/15
- Maintainer identityregistry namespace matches repository owner7/10
Findings (2)
- mediumnpm install lifecycle script present
install.script - mediumnpm install lifecycle script present
install.scriptpackage.json: …x scripts/fetch-elementor-docs.ts", "postinstall": "node scripts/postinstall.cjs || true",…
How Elementor Agent compares
Against every graded AI and agents MCP server, from our own scans and uptime checks. Updated after each scan run.
- Safety score
- 66/100
- higher than 28% of 4,461 AI and agents servers
- Tools
- 34
- the typical AI and agents server has 6
- Tools that change things
- 15%
- typical: 0%. Fewer write tools means less an agent can break
- GitHub stars
- 3
- more than 75% of 2,713 AI and agents servers
- Downloads a week
- 62
- more than 49% of 1,554 AI and agents servers with a package
What its tools let an agent do: 25 read · 2 create · 5 change · 1 delete · 1 run or deploy
Install Elementor Agent in Claude Code, Cursor or VS Code
Runs npx -y elementor-mcp-agent on your machine. Read the scan report first; the gateway never runs local packages.
claude mcp add elementor-mcp-agent -- npx -y elementor-mcp-agent
What the publisher says
From the Elementor Agent repository's README, as published. We do not edit it. Read it on GitHub
elementor-mcp-agent
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.
Built for agencies running many client sites on Elementor / Elementor Pro who want Claude (or any MCP client) to drive the toil — without breaking pages.
How this was built
elementor-mcp-agent was built end-to-end with Claude Code over ~48 hours. The process is intentionally open:
- Architecture, code, tests, docs — all generated through Claude Code pair-programming sessions
- The 7 bugs documented in this post-mortem were caught in real E2E testing against a live WordPress + Elementor install, not after the fact
- v1.2's post-write verification pattern was shipped 2 hours after a reader's comment (Mads Hansen on Dev.to) — the changelog credits the source
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.
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.
Why this exists
There are 25+ WordPress MCP servers on GitHub today. None targets the agency multi-site workflow with:
- Real backup before every edit (postmeta via WP-CLI when SSH available, JSON file fallback — never silently lost)
- Two-call confirmation for any destructive op (TTL 60s)
- JSON validation + auto-rollback if an edit produces invalid Elementor data
- 3-level CSS flush fallback (REST → wp-cli native → option/meta delete → re-save)
- Global widget awareness — preflight check warns if a page references shared widgets
- WP-CLI escape hatch for everything the REST API can't do safely
- Screenshots via headless Chrome (no puppeteer dep)
Install
npx -y elementor-mcp-agentConfigure
export ELEMENTOR_MCP_SITES='[{
"id": "client-acme",
"url": "https://acme.example.com",
"username": "admin",
"application_password": "xxxx xxxx xxxx xxxx xxxx xxxx",
"ssh": {
"host": "host.example.com",
"user": "username",
"port": 22,
"path": "/path/to/wordpress",
"wp_cli_path": "wp"
}
}]'Generate the WordPress Application Password at https://{your-site}/wp-admin/profile.php#application-passwords-section.
The ssh block is optional but unlocks 8 additional tools (WP-CLI escape hatch + reliable custom-postmeta backups). The MCP works without SSH — backups go to local JSON files instead.
wpclipath auto-detects if omitted (tries wp, then ~/bin/wp.phar, then ~/wp-cli.phar).
Claude Desktop config
Shortened. The full README is on GitHub.
Nothing above is checked by us. What we check is on the safety report.
Elementor Agent: common questions
- Is Elementor Agent MCP server safe?
- With care: it is graded C, so read the findings first (66/100). Read the Elementor Agent safety report
- How do I install Elementor Agent?
- It runs on your machine. Copy the Claude Code, Cursor, VS Code or Claude Desktop config from the install section.
- Does Elementor Agent need an API key?
- Yes. The registry entry asks for
ELEMENTOR_MCP_SITES. - Is Elementor Agent maintained?
- The last commit was 52 days ago (2026-09-14). The latest release is v1.3.0.
- What can I use instead of Elementor Agent?
- Servers from other publishers that do the same job: Claude Prompts MCP server, PaperBanana MCP server and Agent-Native Slides MCP server.
- How does Elementor Agent compare with other AI and agents MCP servers?
- safety score 66/100 (higher than 28% of 4,461 AI and agents servers); tools 34 (the typical AI and agents server has 6); tools that change things 15% (typical: 0%. Fewer write tools means less an agent can break). Full comparison.
Alternatives to Elementor Agent
Same job from other publishers: the closest match first, then the best rated.
- Claude PromptsReusable prompt templates, multi-step workflow chains, and quality gates for any MCP client.not reviewedEstablishedA
- PaperBananaGenerate academic diagrams and statistical plots from text using multi-agent AI.not reviewedEstablishedA
- Agent-Native SlidesAgent-Native Google Slides - generate and edit React presentationsnot reviewedEstablishedA
- CHAP CoordinatorAuditable records of human decisions over AI agent work. Approvals, edits, overrides, escalations.not reviewedEstablishedA
- OpenflowkitArchitecture diagrams for your agent: draw on the live OpenFlowKit canvas or edit diagram files.not reviewedEstablishedA