v1.29.0
Nine correctness and discoverability fixes on the atomic (Elementor 4.x) write path, all found while building a real client site with these tools. Most were silent — the tool reported success and Elementor dropped the value.
Sites on 1.28.0 are offered this automatically through the self-updater, on the normal Plugins / Dashboard → Updates screens.
Silent write failures
font-familywas emitted with the wrong$$type, so no font set through any tool ever applied. Elementor types it asFont_Family_Prop_Type, which does not shareString_Prop_Type's key, and the style schema silently drops props that do not match.update-atomic-widgetcould not change a style at all — it wrote onlysettings, but on an atomic element size, spacing and appearance live in thestylesmap. It now accepts the same flat style params as theadd-*tools and merges them into the element's base variant, member-wise for composite props so touching one padding side no longer drops the other three.add-custom-csswas a no-op on atomic elements. It wrote the Elementor 3.xsettings.custom_csscontrol, which atomic elements never read. It now writes a style variant, base64-encoded — Elementor decodes that field throughbase64_decode()and a plain CSS string is dropped to an empty rule.- The fallback write path never invalidated Elementor's rendered-element cache. That path is the one taken in non-browser contexts — i.e. how the MCP writes — so a correct write served the pre-change markup until the cache expired. Indistinguishable from a failed write, and intermittent.
Capabilities that existed but were never advertised
add-flexboxandadd-div-blocknow publish everything the builders accept. Borders, radii, widths, gradients and per-side spacing always worked; the schema advertised 14 parameters and none of them, so agents concluded atomic containers could not express them. Both tools now derive their schema from a single shared source, and tests pin schema and builder together in both directions.- New:
positionandbox-shadow— the two capabilities that were genuinely missing. The input key iscss_position, notposition, which the layout tools already use for the insert index. Offsets use logical names (offset_inline_startand friends) because the inline axis follows text direction;offset_leftwould name the wrong edge on every RTL page.
Discoverability
- New:
server-info, a diagnostic that cannot be switched off. Reports plugin / Elementor / Elementor Pro versions, atomic state, the resolved MCP adapter source and version, whether the server endpoint is on, and registered vs exposed vs suppressed ability counts with the suppressed slugs and the cause of each gap. A fresh install presenting as "zero tools exposed" previously had nothing anywhere to explain it. add-nav-menupublished the wrong parameter for choosing the menu.menu_nameis the widget's accessible label; the SELECT that picks the navigation ismenu. On a site with more than one menu, the wrong navigation was inserted.replace-system-colorsandupdate-global-colorsnow describe what they each write and name each other.update-global-colorsappends tocustom_colorsand never touches the four system slots every Global Color picker references, so a brand palette could land while Elementor's stock colour stayed bound to the roles that matter.
Full detail in CHANGELOG.md.