Skip to content

Releases: msrbuilds/elementor-mcp

v3.6.1 — atomic widget edits no longer lock a page

Choose a tag to compare

@wpacademy wpacademy released this 22 Jul 19:34

Two fixes for problems that could block real work. Both are worth updating for if you use Elementor v4 atomic widgets or WooCommerce.

Fixed

Editing an atomic widget could lock the page (#101)

Elementor v4 atomic props are typed: tag expects {"$$type":"string"}, title expects {"$$type":"html-v3"}. Passing a plain string, which is the natural thing for an AI agent to do, was written straight to the page.

The result was worse than a rejected call. Elementor stored the raw value, fell back to the prop default (so headings and paragraphs rendered placeholder text such as "Type your paragraph here"), and every later save of that page failed with Settings validation failed — locking it out of the API and the Elementor editor.

Plain values are now converted to the shape Elementor expects. Because the conversion runs on the merged settings, it also repairs pages an earlier version already damaged, including props you are not currently editing: open an affected page, make any edit, and it becomes valid again.

Elementor's own prop types decide what is valid rather than us hardcoding it, so this keeps working when Elementor revises them — as htmlhtml-v2html-v3 already shows.

Tool results that are a list were rejected by some AI clients

The MCP specification requires structuredContent to be a JSON object, and the adapter passed a tool's return value into that field verbatim. Any tool returning a top-level array produced a response that strict clients refused with a dictionary-validation error.

This affected several WooCommerce reads in particular — product, order and customer lists, and report-products-totals.

Results are now always well-formed: object results are untouched, while lists and single values are returned under a data key. Reported upstream as WordPress/mcp-adapter#253; our fix lives in EMCP so it survives dependency updates.


Free download: emcp-tools-3.6.1.zip below. Existing free installs can update in place from Dashboard → Updates.

Thanks to @JoeP1459 for both reports, each with a clean reproduction.

v3.6.0 — Elementor addons over MCP + wp-admin fatal fix

Choose a tag to compare

@wpacademy wpacademy released this 21 Jul 17:34

Elementor addon plugins over MCP, plus a fix for a fatal that could lock you out of wp-admin.

Added

Elementor Addons domain (Pro), 3 plugins, 4 tools. A new Elementor Addons section on the Tools tab. Addon widgets were previously invisible to AI agents: list-widgets serves the curated core catalog, so an agent had no way to learn that eael-pricing-table or premium-addon-banner exist.

  • Essential Addons for Elementor (essential-addons-read) and Premium Addons for Elementor (premium-addons-read), discovery only. Their widgets register into Elementor's own registry, so they are placed with the ordinary add-free-widget. There is deliberately no second placement path.
  • Ultimate Addons for Elementor (uae-read / uae-write), formerly Header Footer Elementor. UAE is both a widget pack and a template plugin, so its read tool discovers widgets and lists header/footer/block templates with their display conditions; the write tool creates, updates, retargets and deletes templates. Template content is built with the normal Elementor tools against the returned template_id. uae-write renders site-wide, so it ships disabled by default and delete needs confirm: true.

Filtered widget schemas. A single addon widget can report 400 to 700 controls, which would flood an agent's context. get-widget-schema returns only content-bearing controls by default and reports total_controls vs shown; pass full: true for everything.

EMCP Themer / Ultimate Addons conflict handling (free). Both build headers and footers into the same render slots, so a page could end up with two headers. EMCP Tools now shows an admin notice explaining the clash and, until you pick one system, gives EMCP Themer priority per slot: where Themer resolves a template, UAE's render for that slot is suppressed. Any slot Themer does not claim still renders from UAE, so an existing UAE-only footer keeps working.

New agent skill emcp-plugins/addons covering the discover/inspect/place workflow and the template-record versus template-content split.

Fixed

Fatal error on every wp-admin page load and REST request (#100). Server-side malware scanners were quarantining class-security-malware-audit.php, because a malware scanner necessarily contains the webshell signatures it looks for, and that file spelled them out verbatim. Quarantining zeroes a file in place, so require_once still succeeded but the class was never declared, and ability registration then threw an uncaught error that took down the whole admin.

Signature literals are now assembled from fragments at runtime, so no intact signature ever sits on disk. Detection behaviour is unchanged: the compiled patterns are byte-identical.

A missing class can no longer take down the site. The security scanner now builds its audit engines lazily, so registering a tool never instantiates them, and ability registration is guarded so that one unavailable tool group degrades to those tools being absent instead of fataling wp-admin.


Free download: emcp-tools-3.6.0.zip below. Existing free installs can update in place from Dashboard → Updates.

v3.5.1 — AI Chat redesign + #97/#98/#99

Choose a tag to compare

@wpacademy wpacademy released this 20 Jul 23:20

AI Chat, reimagined — plus three connectivity/builder fixes

Added (Pro AI Chat)

  • Two-column settings screen — built-in controls (capability & safety switches, tool-group access, default model) on the left, providers on the right.
  • More providers + local runtimes — DeepSeek, Moonshot, Z.ai, plus Ollama and LM Studio, auto-detected on localhost with no API key. Run a fully private model against your own site.
  • Refresh models on demand, and the chat now remembers your last provider & model across reloads.
  • EMCP skills in the chat — the bundled page-building and per-plugin playbooks are loaded so the assistant follows field-tested patterns.
  • Vision for text-only models — a local vision model (if you have one) describes images, and a dependency-free built-in image reader (dimensions, format, transparency, dominant-colour palette) always provides usable context as a fallback.

Changed

  • Hardened for small local models — lean/compact tool schemas, capped tool results, empty-turn recovery, reasoning-stream capture, a one-page-per-request rule and explicit background-format guidance. list-skills is now a compact catalog; emcp-skills split into a lean core + on-demand sub-skills.

Fixed

  • #99 — a different MCP-adapter version bundled by another active plugin (e.g. Rank Math) caused McpServerError: Session terminated. EMCP now serves the whole WP\MCP\ namespace from its bundled copy, so the server starts regardless of load order (EMCP_TOOLS_NO_ADAPTER_PRELOAD to opt out).
  • #97 — duplicating a v4 atomic element re-mints its local style classes so the copy keeps its styling.
  • #98 — verify-and-fallback when Elementor's document save reports success but persists nothing (CLI/proxy), so edits aren't silently lost.
  • Backgrounds sent as a nested/array shorthand now render — coerced to Elementor's flat keys + the required classic activator (the "sideloaded photo doesn't show" cause).
  • build-page no longer silently drops shorthand nodes; sideload-image resolves api.unsplash.com download URLs with actionable errors; clearer web-fetch SSL/timeout errors.

Free install/update: download emcp-tools-3.5.1.zip below. Pro updates are delivered via Freemius.

v3.5.0 — Forms + SEO plugin integrations (15 plugins)

Choose a tag to compare

@wpacademy wpacademy released this 18 Jul 21:22

Forms + SEO plugin integrations (15 plugins), clearer Pro tool sections, a redesigned Dashboard usage panel, and an organized Plugins tab.

Added

  • SEO plugin integrations — 7 SEO plugins. Two dispatcher tools per plugin — <plugin>-read / <plugin>-write — for Slim SEO (free) plus Yoast SEO, Rank Math, All in One SEO, SEOPress, The SEO Framework, and SureRank (Pro). Read and write the SEO metadata each plugin stores — SEO title, meta description, canonical, robots (noindex/nofollow), focus keyword, and Open Graph / Twitter social fields — for posts and terms, over a unified field vocabulary (the adapter translates to each plugin's own storage). Also reads schema/structured data where the plugin supports it (Rank Math, AIOSEO, SEOPress). Each pair registers only when its plugin is active; reads on by default, writes disabled-by-default.

  • Forms plugin integrations — 8 form builders. Two dispatcher tools per plugin — <plugin>-read / <plugin>-write — for Contact Form 7 (free) plus WPForms, Gravity Forms, Fluent Forms, Ninja Forms, Formidable Forms, MetForm, and SureForms (Pro). Read forms, fields, notifications, and entries (submissions); write notifications/settings and manage entries. Each pair registers only when its plugin is active; reads on by default, writes disabled-by-default, and delete-entry requires confirm:true. CF7 has no entries (it stores none); WPForms entry operations require WPForms Pro.

Changed

  • Pro tool sections are now visible (and clearly marked) on free builds. WooCommerce, SEO & Accessibility, and Widget Builder now always appear on the Tools tab with a Pro badge, disabled toggles, and a "Requires EMCP Pro — Upgrade" link. No functional change — the Pro abilities were already license-gated.
  • Dashboard "Your usage" is now a 4-card activity panel — Usage, History, Most used, and Sandbox — each linking to its tab.
  • Plugins tab is now grouped by category — Dynamic Content, E-Commerce, Forms, SEO — with each plugin as a self-contained card.

Free install & updates: download emcp-tools-3.5.0.zip below, or update in-dashboard (the free build ships a GitHub-based updater). Pro is distributed via Freemius.

v3.4.2 — WooCommerce + Meta Box integrations

Choose a tag to compare

@wpacademy wpacademy released this 17 Jul 17:53

EMCP Tools 3.4.2 — WooCommerce + Meta Box integrations

Added

  • WooCommerce Pro integration. Two dispatcher tools — woo-read / woo-write — over the full WooCommerce wc/v3 surface (~120 operations): products (+ variations, categories, tags, attributes, reviews), orders (+ notes, refunds), customers, coupons, reports, settings, payment gateways, shipping, taxes, webhooks, system status. Runs through WooCommerce's own REST controllers (HPOS-safe, no privilege escalation). Reads on by default; writes disabled-by-default; refunds/deletes/batch additionally require confirm:true. Registers only when WooCommerce is active.
  • Meta Box integration (free). metabox-read / metabox-write — read/write Meta Box custom-field values and discover field groups, targeting a post or any object. Values only (no delete, no field authoring); registers only when Meta Box is active; write disabled-by-default. Community PR #96 — thanks @Mrshahidali420.
  • History: delete entries. Per-row Delete + Clear all on the History tab, both confirm-gated.
  • Usage insights. Template cards now show a "Used N times" count, and the Dashboard gains a Your usage widget (best-effort telemetry — license + site only; no page content or customer data).

Fixed

  • Affiliate Program link led to "you are not allowed to access this page" on fresh installs — it now shows only when the Freemius page actually exists (outside activation mode).
  • Docs: corrected stale Openverse references to the current stock providers (Unsplash / Pexels / Pixabay). Community PR #95.

Free install/update: download emcp-tools-3.4.2.zip below. See the changelog.

v3.4.1 — OAuth sign-in for MCP clients

Choose a tag to compare

@wpacademy wpacademy released this 15 Jul 17:13

EMCP Tools 3.4.1 — OAuth sign-in for MCP clients

Added

  • OAuth sign-in for AI clients (free). Claude and other MCP clients can connect through a standard OAuth 2.1 flow — approve access from your WordPress login instead of copying an Application Password. Self-contained authorization server (discovery metadata, Dynamic Client Registration, PKCE-S256, admin-only consent, 1h access + rotating 30-day refresh tokens); the token acts as the authorizing admin, and Application Passwords keep working alongside it. HTTPS-gated, on by default when available.
  • Connection tab: authentication-method chooser (OAuth vs Application password) with per-client setup, a Connected apps list with one-click Revoke, and a Claude.ai client.

Fixed

  • OAuth discovery 404 (real-client blocker) — the resource-scoped well-known path (RFC 9728) is now served.
  • get-page-snapshot ignored atomic (v4) widgets (#91).
  • Atomic styles writes were persisted but never applied (#92).
  • Compact tool mode surfaced 6 tools instead of 3.
  • Subdirectory installs unreachable via the Node proxy (#93) — the proxy now honors the site base path (root installs unchanged); proxy bumped to 1.9.1. Thanks @carstenbaumhoegger.

Changed

  • Codex connection renamed to "ChatGPT App" with a corrected in-app OAuth flow (Add server → Streamable HTTP → Save → Authenticate → Approve).

Free install/update: download emcp-tools-3.4.1.zip below. See the changelog.

v3.4.0 — Themes, WP-CLI, SVG Uploads

Choose a tag to compare

@wpacademy wpacademy released this 14 Jul 21:23

A new Themes domain: give an AI agent full context on the active theme, manage its settings, and create a child theme so it can safely edit theme files.

Added

  • WP-CLI tools (4 tools, free, disabled-by-default). Let a connected AI run wp commands: run-wp-cli (synchronous — returns stdout/stderr/exit code), plus dispatch-wp-cli / get-wp-cli-job / list-wp-cli-jobs for background jobs (long migrations / bulk tasks run as a detached process you poll for status + output). Two execution modes: in-process via WP_CLI::runcommand() when connected over the WP-CLI stdio transport (no shell), or a proc_open shell path (argv array — no shell interpolation) when an admin configures a wp base command (Connection tab, or the EMCP_TOOLS_WPCLI_COMMAND constant) for HTTP/proxy connections. Guarded by a command blocklist (refuses eval, eval-file, shell, server, raw db query/cli/import, config set, package install, and injection/retarget flags --exec/--require/--path/--ssh) with a quote-aware, Windows-path-safe tokenizer; all four require manage_options, ship disabled-by-default (command-execution surface), and runs are recorded to the change ledger. New classes EMCP_Tools_WPCLI_Validator / _Runner / _Jobs (includes/wpcli/) + EMCP_Tools_WPCLI_Abilities; a new WP-CLI category on the Tools tab.
  • Themes tab: theme integrations (two dispatcher tools each). A new Themes sub-tab on the Tools screen, following the ACF two-dispatcher pattern (one Read tool, one Write tool, each bundling internal operations). Two layers on a shared base so new frameworks are cheap to add:
    • Active Theme (theme-read / theme-write, works for any active theme). theme-read: get-theme-context (active/parent, detected framework, is_block_theme, template dir, theme supports, registered menu locations, whether a child theme exists) and get-mods (theme_mod values). theme-write: set-mods (write theme_mod values, structural keys like menu locations refused) and create-child-theme (scaffold style.css + functions.php and activate a child of the active parent, so the agent can then edit theme files via the Filesystem tools; requires confirm:true, idempotent, refuses grandchildren).
    • Astra (astra-read / astra-write, registers only when Astra is the active theme). Generic get-settings ({ group? colors/typography/layout/header-footer, keys? }) and update-settings ({ values }) over a curated astra-settings allowlist, mirroring the WordPress Settings domain (typed metadata, non-allowlisted keys reported in skipped[]).
    • Spectra Blocks (spectra-read / spectra-write, registers only when the Spectra plugin (Ultimate Addons for Gutenberg) is active). The blocks/builder counterpart to the Astra theme pack, a Spectra-aware discover -> inspect -> act layer that mirrors the Elementor widget catalog. spectra-read: list-blocks (compact catalog of the site's Spectra blocks, with category/search filters, sourced live from Spectra's registry so nothing is guessed) and get-block-schema (a block's key attributes: real attribute names + defaults read from Spectra's own attributes.php, a highlighted subset by default or the first N capped, full:true for the whole set, plus a ready-to-use example and a doc link). spectra-write: add-block (insert a Spectra block into a post at a position, with a generated block_id; Spectra applies its own defaults, and container blocks like buttons get their required inner-block template). Building pages then reuses the existing Gutenberg block tools against the returned post.
    • Astra and Spectra are grouped as one "Astra + Spectra" section on the Themes tab, since they are a theme + blocks combo. Each tool's toggle is enabled only when its component is installed and active (Astra tools require the Astra theme; Spectra tools require the Spectra plugin) and is greyed out + disabled otherwise, the same way Elementor tools are gated when Elementor is inactive, with a per-card hint on how to enable it.
      Reads are enabled by default; the write dispatchers (theme-write / astra-write / spectra-write) ship disabled-by-default (opt in on the Tools tab). Building pages with a theme's blocks/patterns reuses the existing Gutenberg tools; this domain supplies the context. More framework packs (Kadence, GeneratePress) build on the same base.
  • SVG Uploads module (free, opt-in). A self-contained, safe way to allow SVG uploads to the Media Library without a third-party plugin — aimed at sites without Elementor (Elementor already permits SVG for authorized users). When enabled on the Modules tab it (1) registers the svg mime for users who can upload_files (or admins-only, a per-module toggle), (2) fixes wp_check_filetype_and_ext() so the real-content MIME check doesn't reject SVGs on the REST/sideload path (the piece most SVG plugins miss — so sideload-image and the MCP media tools can import SVGs), and (3) sanitizes every uploaded SVG with the bundled enshrined/svg-sanitize library (scripts, event handlers, javascript: URIs and external references stripped) — fail-closed: an SVG that can't be cleaned is rejected. Off by default given the security surface. New classes EMCP_Tools_SVG_Support_Module + EMCP_Tools_SVG_Sanitizer (includes/modules/svg-support/); enshrined/svg-sanitize is bundled in vendor/.
  • get-block-schema now surfaces Spectra's shared-helper attributes. A block's attributes.php (what get-block-schema reads) omits attributes registered via a shared helper — the container background image/video, border radius, and box shadow. The container schema now includes a shared_attributes map (with the real attribute names, e.g. backgroundType:'image' + backgroundImage:{id,url} + overlay, overlayType:'gradient' + gradientValue, containerBorder*Radius, boxShadow*) plus a schema_note steering agents to these native attributes instead of a core/html workaround.

Changed

  • search-images and sideload-image are now core WordPress tools — they register on any site regardless of Elementor (they only need a stock-provider API key + the Media Library), matching the plugin's beyond-Elementor philosophy. Previously both were gated behind Elementor being active. add-stock-image (which adds an image widget to the page) remains Elementor-gated.

v3.3.0 — Intelligence, not just transport

Choose a tag to compare

@wpacademy wpacademy released this 12 Jul 18:10

A big release: five cross-cutting features that let an AI agent understand, undo, and reuse your site — plus WordPress nav-menu management and a multi-site proxy.

Highlights

  • Page Snapshot (get-page-snapshot) — one normalized digest of a page (structure, tokens-in-use, responsive overrides, content outline, SEO-lite, + opt-in performance/a11y/SEO audits) so the AI reasons about a page in a single call.
  • Change History & Rollback (list-changes / get-change / rollback-change) — every AI-made Elementor/filesystem/database change is recorded to one ledger and can be undone, from MCP and a new History admin tab (one-click rollback).
  • Content Search (search-content / reindex-search) — find the site's own pages, templates, widgets, and global styles by natural-language query so the AI reuses existing work instead of rebuilding it.
  • Content Mirror (export-content / restore-content / list-content-exports) — export page/template content to git-trackable JSON files for external version control.
  • Navigation Menus (menu-read / menu-write + [emcp_menu] shortcode) — full WordPress nav-menu management over MCP. Thanks to @Mrshahidali420 (#85).
  • Multi-site proxy (@msrbuilds/emcp-proxy 1.9.0) — drive many WordPress installs from one connection via a site registry + emcp_use_site.

Fixes

+11 always-on MCP tools, all free. See the full changelog and docs.

v3.2.1 — ACF integration, atomic write fixes, social image + full-bleed

Choose a tag to compare

@wpacademy wpacademy released this 11 Jul 14:01

A feature + fix release.

Highlights

  • ACF / ACF PRO integration — two dispatcher tools (acf-read / acf-write, 15 operations) behind a new Plugins tab. Build a whole content structure end to end: custom post type → taxonomy → field group → posts with values. CPTs/taxonomies registered as data via ACF (nothing executable); full PRO field support. Thanks to @DeibyRo (#76).
  • set-social-image (Pro SEO) — sets the Open Graph + Twitter/X share image (Yoast / Rank Math) so link previews use the image you choose, not the first content image. (#82)
  • full_bleed container preset — one flag for edge-to-edge top-level containers on Canvas pages (no more white strips). (#83)
  • New emcp-plugins agent skill documenting the plugin-integration model + ACF reference.

Fixes

  • Atomic add-atomic-image / add-atomic-svg accept valid images again (correct image/svg-src envelopes). (#74)
  • Atomic styles + editor_settings (Navigator label) are now writable via update-element / batch-update. (#72, #73)
  • list-posts accepts array post_type / status instead of silently returning wrong results. Thanks @Mrshahidali420 (#80).
  • get-post returns allowlisted protected meta (read-after-write). Thanks @Mrshahidali420 (#77).

Plus set-element-label, the LOCAL_NEWS_SITE prompt (thanks @Mrshahidali420, #84), and admin polish (Skills live/offline badge + count, Discord link, two-up mode cards).

Full notes: CHANGELOG.md


🤖 Generated with Claude Code

v3.2.0 — Prompts v2, Compact tool mode, web_fetch

Choose a tag to compare

@wpacademy wpacademy released this 10 Jul 01:44

A core-engine release, and a rewrite of the Premium Prompts.

Highlights

Premium Prompts, rewritten. All 50 prompts used to dictate an explicit, section-by-section Elementor layout — column counts, padding values, widget names. They now hand the AI a style guide, a design signature (compositional direction, never layout), section intents, verbatim content facts, and non-negotiable standards: WCAG 2.1 AA, real photography in every slot, one consistent SVG icon set, builder-native construction, a completeness rule, and a lead-capture form. The AI researches, decides the composition, and builds.

Prompts are builder-agnostic. The first line of every prompt reads **Page builder:** Elementor. Change that one word to Gutenberg, Bricks, or plain HTML/CSS and the rest still applies.

Compact tool mode (opt-in). A Tools-tab toggle surfaces just 3 dispatcher meta-tools — list-tools, get-tool-schema, call-tool — instead of ~140, so clients that cap tool counts can still reach the whole surface. call-tool delegates each target tool's own permission check. Replaces Low-tools mode.

MCP Adapter via the Jetpack Autoloader. When several active plugins bundle the same adapter (WooCommerce, Automattic MCP, …), the highest version is arbitrated process-wide — no "class already declared" clashes regardless of load order.

Agent-facing Skills (Pro). The bundled Agent Skills (now 7) are discoverable and loadable by any connected MCP agent at runtime via list-skills / get-skill, with a Modules-tab switch to turn the injection off.

web_fetch in the AI Chat (Pro). The model can read a URL you give it — a reference design, a competitor page, docs, a JSON endpoint, or a stylesheet. Fetching a page also returns the absolute URLs of its stylesheets, so the AI reads a design's colour tokens and type scale from source. It cannot search the web; it needs a URL.

Prompts v1 archive (Pro). The original 50 prompts remain available as a licence-gated download on the Prompts screen.

Security

web_fetch runs on your server, so every URL — and every redirect hop, followed manually — is validated first: http(s) only, no credentials in the URL, ports 80/443 only, and refused if any resolved A/AAAA record is loopback, private, link-local (including the cloud-metadata address 169.254.169.254), CGNAT, multicast or reserved. Responses are size-capped, limited to textual content types, never executed, and handed to the model labelled as untrusted data.

Fixed

  • Bundled Freemius SDK updated to 2.13.4. Freemius withdrew 2.13.3 after finding a regression in its add-on checkout flow. EMCP Tools does not use Freemius add-ons, so it was never affected — but a plugin should not ship a dependency version its vendor unpublished.
  • Plugin scripts and styles are now versioned by their own modification time, so a changed asset is never served stale from the browser cache between releases.
  • A clean install no longer emits a "Failed to open stream" notice from the autoloader's file map.

Full notes: CHANGELOG.md