MCP.Market

Elementor Agent MCP server

by Mogacode-ma·io.github.Mogacode-ma/elementor-mcp-agent·v1.3.0·3 stars

Agency-grade MCP for WordPress Elementor — multi-site, safe edits, templates, versions.

C66/100grade C
What users say
No reviews yet
Be the first
Safety scan
C66/100

full report

Adoption
Growing

3 stars62 downloads/wk

Reviews

Write one

Nobody 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 posts

Read from the package source without running it. The installed server may list more.

  • add_widget

    Append 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_page

    Copy 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_site

    Find/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_versions

    Fleet-wide Elementor version audit. For every site, fetches installed Elementor/Pro versions and compares against wordpress.org latest. Flags outdated installs.

  • compare_screenshots

    Compare 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 action

    Remove a widget from a page by id. Two-call confirmation. Backs up before deleting; re-reads to confirm the widget is gone.

  • duplicate_elementor_page

    Duplicate an Elementor page within the same site. Creates a new draft page, copies _elementor_data + _elementor_page_settings + _elementor_edit_mode, flushes CSS.

  • duplicate_widget

    Duplicate 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_replace

    Find/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_template

    Export an Elementor template (section, page, header, footer, etc.) as a portable JSON object. Output goes into import_elementor_template on another site.

  • fleet_find_replace

    Find/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_template

    Import 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_backups

    List 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_pages

    List pages built with Elementor (have _elementor_edit_mode = 'builder'). Returns id, title, slug, status, modified date.

  • list_elementor_templates

    List 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_widgets

    List 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_sites

    List every WordPress site configured. Best called first in a session.

  • list_widgets_in_page

    Flat 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_widget

    Move a widget to a different parent (or different position in the same parent). Re-reads to confirm new parent. Two-call confirmation.

  • ping_site

    Verify connectivity + authentication to a WordPress site. Returns user identity + WP/Elementor/Elementor Pro versions if accessible.

  • preflight_check

    Validate 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_elementor

    Fetch a page's Elementor data structure summary. With verbose=true returns the full parsed tree (potentially MBs).

  • read_widget

    Fetch a single widget's full settings by id. Use list_widgets_in_page to find the id first.

  • restore_elementor_backup

    Restore 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_file

    Restore 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_page

    Capture 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_health

    Comprehensive 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_type

    Replace 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 action

    Shallow-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 action

    Execute 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_css

    Flush 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_list

    List 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 action

    Update one or more plugins on a site to their latest version. Requires confirmation token (uses wp-cli).

  • wp_search_replacewrite action

    Run `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

2 medium
  • 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 presentinstall.script
  • mediumnpm install lifecycle script presentinstall.script
    package.json: …x scripts/fetch-elementor-docs.ts", "postinstall": "node scripts/postinstall.cjs || true",…
Overall 66/100. Components that don't apply are left out of the denominator. Any critical finding is an F.RubricAppeal a findingJSON

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
Add to Cursor

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-agent

Configure

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 Prompts
    Reusable prompt templates, multi-step workflow chains, and quality gates for any MCP client.
    A
  • PaperBanana
    Generate academic diagrams and statistical plots from text using multi-agent AI.
    A
  • Agent-Native Slides
    Agent-Native Google Slides - generate and edit React presentations
    A
  • CHAP Coordinator
    Auditable records of human decisions over AI agent work. Approvals, edits, overrides, escalations.
    A
  • Openflowkit
    Architecture diagrams for your agent: draw on the live OpenFlowKit canvas or edit diagram files.
    A