Adds BeTheme and BeBuilder support, tells you why a tool cannot be switched on instead of just showing it greyed out, and settles a malware-scanner false positive reported from a live site.
Full write-up: https://emcptools.com/blog/emcp-3-14-0/
Added
BeTheme and BeBuilder support (Pro). BeTheme is one of the most-sold WordPress themes ever, and it brings its own page builder, so an agent connected to a BeTheme site could previously see the site but not build on it. Two tools now cover both halves: betheme-read and betheme-write, eight operations between them.
Theme Options are read and written through a curated 34-key allowlist covering colours, typography, layout, header and footer, so an agent can restyle a site without being handed all 830 settings. BeBuilder pages are read as a section, wrap and item tree, written back whole, or extended a section at a time. list-item-types and get-item-schema report every builder item the installed theme registers, 135 on the version tested, with the fields each one accepts, read from the theme's own renderer so it matches whichever BeTheme version is installed.
Both tools register only when BeTheme is the active theme. betheme-write ships disabled-by-default. A new emcp-betheme agent skill carries the two traps that cost the most time: item settings live under attr, not fields, and a wrap or item without a size renders as nothing at all.
A notice when EMCP Themer and BeTheme would both try to render a page. Nothing is switched off automatically: the notice appears only on a real overlap, says which one is winning, and points to the setting to change if you wanted the other.
Changed
The settings-saved confirmation is now a toast in the bottom right. WordPress puts notices in a stack above the page, which shifts the whole screen down at the moment you are looking at what you just changed. Only that one confirmation moved; notices that carry buttons or explain page state stay where they are.
A tool that cannot be switched on now says why. A greyed-out toggle looked the same whether you had turned the tool off or it depends on software that is not installed, and the second case reads as "broken". Every such card now carries a badge naming what is missing, such as "Needs Essential Addons for Elementor", with a line saying whether it is a plugin that is not active or a theme that is not the active one.
Fixed
A host's malware scanner reported the Backup and Migrate restore file as infected. It was a false positive and nothing was compromised. The file receives an uploaded backup archive, and one path accepts it base64-encoded because some hosts' firewalls reject the raw bytes; decoding incoming data and writing it to a file has the same shape a real backdoor has, so pattern-based scanners flag it on sight. What they cannot see is the gate in front of it: a valid one-time nonce, the administrator capability, and a fixed destination inside the plugin's own protected backups folder.
Decoding now happens inside a stream filter as the bytes travel to disk, so the archive contents never exist as a string next to the write that places them. The migration connector got the same treatment. Two real limits were added alongside: the upload now refuses any file type the restore flow cannot read, and the connector's media sync refuses any filename the server might execute, checking every extension in the name so photo.php.jpg is refused as well as photo.php. Connector to 1.3.0; one already installed on a live site keeps working, since the signing contract is unchanged.
Three of the bundled agent skills were rejected when uploaded to Claude Desktop. Their descriptions used a placeholder the upload validator reads as an XML tag, and one had grown past the 1024-character limit. All nineteen packages now upload as shipped.
Free users: download emcp-tools-3.14.0.zip below, or update from Dashboard → Updates. Pro users update through the plugin as usual.