elementor-mcp-agent
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| ELEMENTOR_MCP_SITES | Yes | JSON array of site objects. Each site object requires id, url, username, application_password, and optionally an ssh object. |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {} |
| resources | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| list_sitesA | List every WordPress site configured. Best called first in a session. |
| ping_siteA | Verify connectivity + authentication to a WordPress site. Returns user identity + WP/Elementor/Elementor Pro versions if accessible. |
| site_healthA | Comprehensive site health snapshot: WP/PHP/Elementor versions, disk space (if SSH), plugin count, theme info. Aggregates multiple REST calls into a single overview. |
| list_elementor_pagesA | List pages built with Elementor (have _elementor_edit_mode = 'builder'). Returns id, title, slug, status, modified date. |
| read_page_elementorA | Fetch a page's Elementor data structure summary. With verbose=true returns the full parsed tree (potentially MBs). |
| list_widgets_in_pageA | Flat list of every widget in a page with id, type, parent path, and an excerpt of the first text setting (for spot-checking before find/replace). |
| list_global_widgetsA | List all global widgets on a site (Elementor library entries of type 'widget'). These are shared across pages — editing one affects every page using it. |
| preflight_checkA | Validate a page is safe to edit. Checks: page exists, is Elementor-built, data parses cleanly, references valid global widgets, isn't currently locked by another editor. |
| elementor_find_replaceA | Find/replace plain text in every widget on one page. TWO-CALL FLOW: dry-run returns match_count + detailed widget hits + confirmation_token. Second call with token applies the change with auto-backup + JSON validation + auto-rollback if validation fails + CSS flush. |
| list_elementor_backupsA | List timestamped backups of a page's Elementor data (created by previous edit ops). Use restore_elementor_backup with one of these meta keys to roll back. |
| restore_elementor_backupA | Restore a page's _elementor_data and _elementor_page_settings from a backup created by a previous edit. TWO-CALL FLOW with confirmation token. |
| duplicate_elementor_pageA | Duplicate an Elementor page within the same site. Creates a new draft page, copies _elementor_data + _elementor_page_settings + _elementor_edit_mode, flushes CSS. |
| read_widgetA | Fetch a single widget's full settings by id. Use list_widgets_in_page to find the id first. |
| update_widget_settingsA | Shallow-merge a partial settings object into one widget. Backs up the page first, validates the result, auto-flushes CSS, then re-reads the page and verifies the patch persisted (matches_requested in the response). Two-call confirmation. |
| delete_widgetA | Remove a widget from a page by id. Two-call confirmation. Backs up before deleting; re-reads to confirm the widget is gone. |
| duplicate_widgetA | Duplicate a widget in place (right after the original). The clone gets a new id. Re-reads to confirm the clone persisted. Two-call confirmation. |
| swap_widget_typeA | Replace a widget's type (e.g., heading → button) while preserving its id and position. Provide full new_settings — the old settings are NOT carried over (different widget types have incompatible schemas). Re-reads to confirm. Two-call confirmation. |
| add_widgetA | Append a new widget to a parent container (section, column, or container) on a page. Re-reads to confirm the new widget exists under the parent. Two-call confirmation. |
| move_widgetA | Move a widget to a different parent (or different position in the same parent). Re-reads to confirm new parent. Two-call confirmation. |
| list_elementor_templatesA | List Elementor library entries on a site: saved sections, pages, popups, headers/footers (Theme Builder Pro), single/archive templates (Theme Builder Pro), and global widgets. Type filter narrows results. |
| export_elementor_templateA | Export an Elementor template (section, page, header, footer, etc.) as a portable JSON object. Output goes into import_elementor_template on another site. |
| import_elementor_templateA | Import a portable template JSON (output of export_elementor_template) into a target site as a new library entry. Useful for cross-site template sync. |
| apply_template_to_pageA | Copy the _elementor_data + _elementor_page_settings of a SOURCE template (or page) onto a TARGET page on the same site. Backs up the target first. Use to apply a section/page template to an existing draft. |
| bulk_find_replace_siteA | Find/replace plain text in every Elementor page on a single site. TWO-CALL FLOW: dry-run returns per-page match_count + total + confirmation_token. Apply iterates each page (auto-backup + validate + flush per page). Slower than wp_search_replace but works without SSH and gives per-page granularity. |
| fleet_find_replaceA | Find/replace plain text across every Elementor page of every site in the pool. Same flow as bulk_find_replace_site but iterates across sites. Returns per-site + grand-total summary. Dry-run first; second call applies. Use sparingly — this is the nuclear option. |
| restore_from_fileA | Restore a page from a JSON backup file (created by ANY earlier op with backup_to_file=true or by direct fullBackup with to_file). Requires the file_path returned by that backup. Two-call confirmation. |
| wp_cli_runA | Execute an arbitrary wp-cli command on a site via SSH. The |
| wp_search_replaceA | Run |
| wp_elementor_flush_cssA | Flush Elementor's CSS cache on a site using the 3-level fallback strategy (REST endpoint → wp-cli native → option/meta delete). Always call after writing _elementor_data programmatically. |
| wp_plugin_listA | List installed plugins on a site with name, version, status (active/inactive), and update_version (if outdated). Uses WP-CLI for accurate version data including update_version. |
| wp_plugin_updateA | Update one or more plugins on a site to their latest version. Requires confirmation token (uses wp-cli). |
| screenshot_pageA | Capture a PNG screenshot of a page's frontend (visitor-facing URL). Requires a Chrome/Chromium binary on the host. Returns the local file path so the LLM can analyse it or compare against another shot. |
| compare_screenshotsA | Compare two screenshot files via SHA-256 hash equality and size delta. Quick way to spot whether a page changed visually after an edit. For pixel diffs, use a dedicated tool externally. |
| check_elementor_versionsA | Fleet-wide Elementor version audit. For every site, fetches installed Elementor/Pro versions and compares against wordpress.org latest. Flags outdated installs. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| README | Elementor documentation snippet (scraped from developer.elementor.com) |
| hooks-actions | Elementor documentation snippet (scraped from developer.elementor.com) |
| safe-editing | Elementor documentation snippet (scraped from developer.elementor.com) |
| widget-structure | Elementor documentation snippet (scraped from developer.elementor.com) |
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/Mogacode-ma/elementor-mcp-agent'
If you have feedback or need assistance with the MCP directory API, please join our Discord server