Elementor page builder integration for WordPress via MCP.
Tested up to: 6.9 Stable tag: 2.2.8 License: GPLv2 or later License URI: https://www.gnu.org/licenses/gpl-2.0.html
This add-on plugin exposes Elementor functionality through MCP (Model Context Protocol). Your AI assistant can read Elementor page structures, locate and update elements, manage templates and conditions, control site-wide settings, and run Elementor tools like maintenance mode, experiments, and URL replacement.
Part of the MCP Expose Abilities ecosystem.
This is one piece of a bigger open WordPress automation stack that lets AI agents do real builder work inside WordPress instead of just producing instructions for humans.
Elementor is where a lot of WordPress work goes to become tedious.
This add-on changes that. You can ask Codex or Claude to inspect page structure, find one exact widget, patch the right content, adjust a template, or clear Elementor cache without turning the job into an hour of clicking.
That is the point of the whole ecosystem: not AI advice about WordPress, but AI doing WordPress work.
- Core Plugin: MCP Expose Abilities
- MCP Wiki Home
- Why Teams Use It
- Use Cases
- Elementor Add-On Guide
- Getting Started
- WordPress 6.9+
- PHP 8.0+
- Abilities API plugin
- MCP Adapter plugin
- Elementor (Free or Pro)
- Install the required plugins (Abilities API, MCP Adapter, Elementor)
- Download the latest release from Releases
- Upload via WordPress Admin > Plugins > Add New > Upload Plugin
- Activate the plugin
| Ability | Description |
|---|---|
elementor/get-data |
Get Elementor JSON structure for a page |
elementor/get-element |
Get a specific element by ID |
elementor/find-elements |
Find elements by type, widget, or text |
elementor/update-element |
Update a specific element by ID |
elementor/delete-element |
Delete a specific element by ID |
elementor/update-data |
Replace entire Elementor JSON for a page |
elementor/patch-data |
Find/replace text within Elementor JSON |
elementor/update-page-settings |
Update Elementor page settings |
| Ability | Description |
|---|---|
elementor/list-templates |
List all saved Elementor templates |
elementor/get-template |
Get single template with all data |
elementor/create-template |
Create page, section, popup, header, footer templates |
elementor/update-template |
Modify existing template |
elementor/delete-template |
Move to trash or permanently delete |
elementor/restore-template |
Restore trashed template |
elementor/empty-trash |
Permanently delete all trashed templates |
elementor/duplicate-template |
Copy a template |
elementor/export-template |
Export as JSON |
elementor/import-template |
Import from JSON |
| Ability | Description |
|---|---|
elementor/get-theme-builder-conditions |
Get display conditions for a template or type |
elementor/update-theme-builder-conditions |
Update display conditions for a template |
| Ability | Description |
|---|---|
elementor/list-custom-code |
List custom code snippets |
elementor/get-custom-code |
Get a custom code snippet |
elementor/create-custom-code |
Create a custom code snippet |
elementor/update-custom-code |
Update a custom code snippet |
elementor/delete-custom-code |
Delete a custom code snippet |
| Ability | Description |
|---|---|
elementor/list-form-submissions |
List form submissions |
elementor/get-form-submission |
Get a form submission |
elementor/delete-form-submission |
Delete a form submission |
| Ability | Description |
|---|---|
elementor/list-global-widgets |
List all global widgets |
elementor/list-kits |
List available Elementor kits |
elementor/get-kit-settings |
Get site-wide Elementor settings |
elementor/update-kit-settings |
Update global colors, typography, etc. |
elementor/set-active-kit |
Set the active Elementor kit |
elementor/clear-cache |
Clear Elementor cache (post or site scope) |
elementor/replace-urls |
Replace URLs inside Elementor data |
elementor/get-maintenance-mode |
Get maintenance mode settings |
elementor/update-maintenance-mode |
Enable or update maintenance mode |
elementor/list-experiments |
List Elementor experiments |
elementor/update-experiment |
Update experiment state |
- Theme Builder templates (header/footer/single/archive/popup) and conditions require Elementor Pro.
- Custom Code snippets and Form Submissions require Elementor Pro.
- WooCommerce templates are usually Theme Builder templates with a
template_sub_typelikeproductorproduct-archive. - Maintenance mode uses Elementor templates; you must provide a template ID to enable it.
- Experiments map to Elementor's experiments manager; reset to default clears the saved option.
- Prefer
get-element/find-elements+update-elementfor targeted edits, and useupdate-dataonly when replacing full JSON.
{
"ability_name": "elementor/get-data",
"parameters": {
"id": 123,
"format": "array"
}
}{
"ability_name": "elementor/find-elements",
"parameters": {
"id": 123,
"widget_type": "heading",
"contains": "Telenor",
"include_path": true
}
}{
"ability_name": "elementor/create-custom-code",
"parameters": {
"title": "Header tracking",
"code": "<script>console.log('track');</script>",
"status": "publish"
}
}{
"ability_name": "elementor/create-template",
"parameters": {
"title": "Welcome Popup",
"type": "popup",
"status": "publish"
}
}{
"ability_name": "elementor/update-maintenance-mode",
"parameters": {
"enabled": true,
"mode": "coming_soon",
"template_id": 456,
"exclude_mode": "logged_in"
}
}{
"ability_name": "elementor/list-form-submissions",
"parameters": {
"form_id": "contact_form",
"limit": 25,
"include_values": true
}
}{
"ability_name": "elementor/export-template",
"parameters": { "id": 456 }
}
{
"ability_name": "elementor/import-template",
"parameters": {
"data": { "...exported data..." },
"title": "Imported Template"
}
}{
"ability_name": "elementor/clear-cache",
"parameters": { "all": true }
}- Docs: expanded the WordPress-standard
readme.txtso the published ZIP now includes fuller requirements, abilities, setup guidance, and Devenia ecosystem links
- Added:
elementor/clone-datato clone native Elementor data and page settings from an existing page/template into a target page
- Fixed:
elementor/duplicate-templatenow preserves JSON-backed Elementor meta correctly when duplicating templates - Fixed:
elementor/get-data,elementor/get-template, andelementor/export-templatenow normalize invalid or unexpected Elementor data into schema-safe arrays - Added: duplicated templates now also carry template sub type and saved Elementor conditions
- Added:
elementor/delete-elementfor targeted deletion of widgets/containers by element ID - Added:
cache_scopesupport and cache details inelementor/delete-elementresponses
- Fixed: duplicate
clean_post_cache()calls on write cache invalidation paths - Added: no-op short-circuit for
elementor/update-dataandelementor/update-element(skips writes/cache invalidation when no effective change is produced) - Improved:
effective_scopenow reflects actual cache invalidation outcome - Improved: centralized Elementor site cache clear logic in a shared helper
- Fixed:
elementor/clear-cachedescription to match behavior (post scope does not touch post timestamps) - Changed: write abilities (
update-data,patch-data,update-element) are now marked non-idempotent in metadata
- Added:
cache_scope(none/post/site) toelementor/update-data,elementor/patch-data, andelementor/update-element - Improved: stronger cache invalidation after Elementor writes (post cache cleanup, asset meta cleanup, optional site-wide Elementor cache clear)
- Improved:
elementor/clear-cachenow returns cache details and supportsscopealias (post/site)
- Fixed: parse error in
elementor/set-active-kit - Added: README sync for current stable tag and full ability list
- Added: custom code snippet CRUD abilities (Elementor Pro)
- Added: form submissions list/get/delete abilities (Elementor Pro)
- Added: template sub type support for WooCommerce/theme builder templates
- Added: element-level lookup (get-element, find-elements)
- Added: theme builder conditions get/update abilities
- Added: maintenance mode get/update abilities
- Added: experiments list/update abilities
- Added: replace-urls tool
- Changed: conditions normalization helper (conditions can be cleared)
- Added: success/message fields to list-templates and list-global-widgets outputs
- Fixed: Popups now use Elementor's native Documents Manager API for creation
- Fixed: Popup conditions now stored as strings (PHP 8.4 compatibility)
- Fixed: delete-template now properly trashes instead of permanently deleting
- Fixed: Empty properties validation for get-kit-settings and list-global-widgets
- Major release: Complete template management suite (19 abilities total)
- Added: Full CRUD for templates (create, update, delete, get, restore, empty-trash)
- Added: duplicate-template, export-template, import-template
- Added: list-global-widgets, get-kit-settings, update-kit-settings
- All template abilities support display conditions and popup triggers
- Security: Added per-post capability checks for Elementor operations
- Added:
elementor/update-page-settingsability
- Initial release
GPL-2.0+
Devenia - We've been doing SEO and web development since 1993.
Like the rest of the ecosystem, this add-on is free for all, completely open source, and built from actual production use.
If this add-on helps, please star the repo, share the ecosystem, and point people to the main wiki: