Widgets
As of v3.0.0 the 62 per-widget convenience tools and the old universal add-widget were replaced by a catalog-backed model. Instead of one tool per widget, the 62 curated widgets’ tiers, categories, and curated params live as data in a built-in catalog (27 free / 30 Pro / 5 WooCommerce), served by five tools. This cut the per-turn widget tool-list cost ~10× (≈18–20k → ≈2k tokens) with no loss of capability: every widget and every curated parameter is still reachable, and any valid Elementor control passes straight through.
The flow is discover → inspect → act.
1. Discover: emcp-tools/list-widgets
Section titled “1. Discover: emcp-tools/list-widgets”Returns a compact catalog index. Filter to narrow it down.
Input:
tier:free,pro, orwoocategory: e.g.basic,general,media,form,woocommercesearch: substring match on name/title/keywords
Returns: array of { type, title, tier, category }.
2. Inspect: emcp-tools/get-widget-schema
Section titled “2. Inspect: emcp-tools/get-widget-schema”Returns the curated params for a widget by default: the handful of settings you actually need, with types and defaults. Pass full: true for the raw auto-generated control schema.
Input:
type: a single widget type, ortypes: an array of widget types (batch inspect)full:trueto return the complete control schema instead of curated params
Returns: { type, params: { ... } } (or { schema } when full: true).
3. Act
Section titled “3. Act”emcp-tools/add-free-widget
Section titled “emcp-tools/add-free-widget”Adds any free/core widget by type. Catalog defaults for that widget are merged in automatically. Always registered. (Folds in the old add-widget.)
Input: post_id, parent_id (container), widget_type, settings (optional, merged over catalog defaults), position (default -1 to append).
Returns: { element_id }.
emcp-tools/add-pro-widget
Section titled “emcp-tools/add-pro-widget”Adds an Elementor Pro or WooCommerce widget by type. Registered only when Elementor Pro is active. WooCommerce widgets are reached here too (catalog tier woo). They add no separate tools.
Input: same shape as add-free-widget.
Returns: { element_id }.
emcp-tools/update-widget
Section titled “emcp-tools/update-widget”Updates settings on an existing widget (partial-merge, same semantics as update-element).
Input: post_id, element_id, settings.
What’s in the catalog
Section titled “What’s in the catalog”The catalog is the data behind list-widgets. You reach every entry through add-free-widget / add-pro-widget. The curated set:
Free (27): heading, text-editor, image, button, video, icon, spacer, divider, icon-box, accordion, alert, counter, google-maps, icon-list, image-box, image-carousel, progress, social-icons, star-rating, tabs, testimonial, toggle, html, menu-anchor, shortcode, rating, text-path.
Pro (30): form, posts, countdown, price-table, flip-box, animated-headline, call-to-action, slides, testimonial-carousel, price-list, gallery, share-buttons, table-of-contents, blockquote, lottie, hotspot, nav-menu, loop-grid, loop-carousel, media-carousel, nested-tabs, nested-accordion, portfolio, author-box, login, code-highlight, reviews, off-canvas, scroll-progress, search.
WooCommerce (5, requires WC + Pro): products, add-to-cart, cart, checkout, menu-cart.
The catalog is curated for ergonomics, not a hard limit:
add-free-widget/add-pro-widgetaccept any registered widget type, including custom or third-party widgets. Useget-widget-schemawithfull: trueto discover their controls.
Typical sequence
Section titled “Typical sequence”list-widgets { "category": "form" } → find the "form" Pro widgetget-widget-schema { "type": "form" } → see curated paramsadd-pro-widget { post_id, parent_id, widget_type: "form", settings: {…} }update-widget { post_id, element_id, settings: {…} } → tweak later