{"id":46097567,"url":"https://github.com/msrbuilds/elementor-mcp","last_synced_at":"2026-05-30T01:03:58.026Z","repository":{"id":341036950,"uuid":"1168585730","full_name":"msrbuilds/elementor-mcp","owner":"msrbuilds","description":"WordPress plugin that turns Elementor into an MCP server — 97 AI-ready tools for building, editing, and managing page designs programmatically.","archived":false,"fork":false,"pushed_at":"2026-05-25T21:32:00.000Z","size":489,"stargazers_count":360,"open_issues_count":12,"forks_count":91,"subscribers_count":11,"default_branch":"main","last_synced_at":"2026-05-25T23:23:41.125Z","etag":null,"topics":["elementor","mcp-server","wordpress","wordpress-plugin"],"latest_commit_sha":null,"homepage":"https://msrbuilds.com","language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/msrbuilds.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"github":null,"patreon":null,"open_collective":null,"ko_fi":null,"tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":null,"lfx_crowdfunding":null,"polar":null,"buy_me_a_coffee":null,"thanks_dev":null,"custom":["https://wpacademy.gumroad.com/coffee"]}},"created_at":"2026-02-27T15:05:46.000Z","updated_at":"2026-05-25T21:32:04.000Z","dependencies_parsed_at":"2026-03-05T23:00:57.584Z","dependency_job_id":null,"html_url":"https://github.com/msrbuilds/elementor-mcp","commit_stats":null,"previous_names":["msrbuilds/elementor-mcp"],"tags_count":12,"template":false,"template_full_name":null,"purl":"pkg:github/msrbuilds/elementor-mcp","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/msrbuilds%2Felementor-mcp","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/msrbuilds%2Felementor-mcp/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/msrbuilds%2Felementor-mcp/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/msrbuilds%2Felementor-mcp/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/msrbuilds","download_url":"https://codeload.github.com/msrbuilds/elementor-mcp/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/msrbuilds%2Felementor-mcp/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33676192,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-05-29T02:00:06.066Z","response_time":107,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["elementor","mcp-server","wordpress","wordpress-plugin"],"created_at":"2026-03-01T19:03:24.340Z","updated_at":"2026-05-30T01:03:58.018Z","avatar_url":"https://github.com/msrbuilds.png","language":"PHP","funding_links":["https://wpacademy.gumroad.com/coffee"],"categories":[],"sub_categories":[],"readme":"# MCP Tools for Elementor\n\n[![Version](https://img.shields.io/badge/version-1.7.2-blue.svg)](https://github.com/msrbuilds/elementor-mcp/releases)\n[![License](https://img.shields.io/badge/license-GPL--3.0-green.svg)](LICENSE)\n[![PHP](https://img.shields.io/badge/PHP-%3E%3D7.4-8892BF.svg)](https://php.net)\n[![WordPress](https://img.shields.io/badge/WordPress-%3E%3D6.8-21759B.svg)](https://wordpress.org)\n[![Elementor](https://img.shields.io/badge/Elementor-%3E%3D3.20-92003B.svg)](https://elementor.com)\n[![MCP Tools](https://img.shields.io/badge/MCP_Tools-up%20to%20118-orange.svg)](#available-tools)\n[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg)](CONTRIBUTING.md)\n[![GitHub Issues](https://img.shields.io/github/issues/msrbuilds/elementor-mcp)](https://github.com/msrbuilds/elementor-mcp/issues)\n[![GitHub Stars](https://img.shields.io/github/stars/msrbuilds/elementor-mcp?style=social)](https://github.com/msrbuilds/elementor-mcp)\n\nA WordPress plugin that extends the [WordPress MCP Adapter](https://github.com/WordPress/mcp-adapter) to expose Elementor data, widgets, and page design tools as [MCP (Model Context Protocol)](https://modelcontextprotocol.io/) tools. This enables AI agents like Claude, Cursor, and other MCP-compatible clients to create and manipulate Elementor page designs programmatically.\n\n\u003cimg width=\"1995\" height=\"1141\" alt=\"image\" src=\"https://github.com/user-attachments/assets/06ab916a-0146-4a5f-828c-d5aa409cb072\" /\u003e\n\n\n# Introdiucing EMCP Pro! 25% Discount for GitHub Community: MSRGIT\n## [Grab the Deal](https://emcp.msrbuilds.com/pricing)\n\u003cimg width=\"1697\" height=\"250\" alt=\"image\" src=\"https://github.com/user-attachments/assets/f588d365-1986-4132-90d3-4d44a28da464\" /\u003e\n\n\n## Features\n\n- **Up to 118 MCP Tools** covering the full Elementor page-building workflow. Counts scale with your environment:\n  - 61 tools — free Elementor only\n  - 74 tools — free Elementor + Elementor 4.0 atomic elements\n  - 100 tools — with Elementor Pro\n  - 113 tools — with Elementor Pro + Elementor 4.0\n  - 118 tools — with Elementor Pro + WooCommerce + Elementor 4.0\n- **Query \u0026 Discovery** — List widgets, inspect page structures, read element settings, browse templates, view global design tokens\n- **Page Management** — Create pages, update settings, clear content, import/export templates\n- **Layout Tools** — Add flexbox containers, move/remove/duplicate elements, update containers, find elements, batch update, reorder children, get container schema\n- **Widget Tools** — Universal add/update for any widget, plus 27 free convenience shortcuts, 30 conditional Pro widget tools, and 5 WooCommerce widget tools\n- **Pro Widget Support** — Conditional tools for nav menu, loop grid, loop carousel, media carousel, nested tabs, nested accordion, portfolio, author box, login, code highlight, reviews, off-canvas, progress tracker, search, and more (only register when Elementor Pro is active)\n- **Atomic Elements (Elementor 4.0+)** — 13 dedicated tools for Elementor's atomic system: flexbox, div-block, heading, paragraph, button, image, svg, youtube, video, divider, plus universal `add-atomic-widget` / `update-atomic-widget` and `detect-elementor-version`\n- **Theme Builder** — Create theme templates (header/footer/single/archive), set display conditions (Pro)\n- **Dynamic Tags** — List all available dynamic tags, bind dynamic data to element settings (Pro)\n- **Popup Builder** — Create popup templates, configure triggers/conditions/timing (Pro)\n- **Template Tools** — Save pages or elements as reusable templates, apply templates to pages\n- **Global Settings** — Update site-wide color palettes and typography presets\n- **Brand Kits (Pro)** — One-click coordinated color + typography kits. Apply a curated brand kit and the whole site re-skins (system tokens + Theme Style defaults); back up and restore any time. Browse and apply via the admin page or the `apply-brand-kit` MCP tool\n- **Composite Tools** — Build a complete page from a declarative JSON structure in a single call\n- **Stock Images** — Search Openverse for Creative Commons images, sideload into Media Library, add to pages\n- **SVG Icons** — Upload SVG icons from URL or raw markup for use with Elementor icon widgets\n- **Custom Code** — Add custom CSS (element/page level), inject JavaScript, create site-wide code snippets for head/body injection\n- **Low-tools Mode** — One-click toggle that filters the active tool list to a curated essentials set (~50 tools) so MCP clients with strict tool caps (Antigravity, Gemini API, etc.) stay under their limits\n- **Admin Dashboard** — Dedicated top-level **EMCP Tools** menu with Tools / Connection / Prompts / Templates / Brand Kits / Skills / Changelog submenus. Toggle individual tools on/off and view connection configs for all supported MCP clients\n\n## Requirements\n\n| Dependency | Version |\n|---|---|\n| WordPress | \u003e= 6.8 |\n| PHP | \u003e= 7.4 |\n| Elementor | \u003e= 3.20 (container support required) |\n| WordPress MCP Adapter | Latest |\n| WordPress Abilities API | Bundled in WP 6.9+, or via Composer |\n\n## Installation\n\n1. Install and activate [Elementor](https://wordpress.org/plugins/elementor/) (version 3.20+).\n2. Install and activate the [WordPress MCP Adapter](https://github.com/WordPress/mcp-adapter) plugin.\n3. Download the latest release zip from the [Releases page](https://github.com/msrbuilds/elementor-mcp/releases/).\n4. In WordPress, go to **Plugins \u003e Add New \u003e Upload Plugin** and upload the downloaded zip file.\n5. Activate the plugin through the **Plugins** menu in WordPress.\n6. Open the new **EMCP Tools** top-level menu in the WordPress admin sidebar to configure tools and view connection info.\n\n## Connecting to the MCP Server\n\nConnect to your WordPress site from any AI client using HTTP. No proxy or Node.js needed — just a WordPress Application Password.\n\n### Prerequisites\n\n1. Create an Application Password at **Users \u003e Profile \u003e Application Passwords**.\n2. Base64-encode your credentials: `echo -n \"username:app-password\" | base64`\n3. Your MCP endpoint is: `https://your-site.com/wp-json/mcp/elementor-mcp-server`\n\n\u003e **Tip:** The plugin's **EMCP Tools \u003e Connection** admin screen can generate all configs automatically — just enter your username and Application Password.\n\n### Claude Code\n\nAdd as `.mcp.json` in your project root:\n\n```json\n{\n    \"mcpServers\": {\n        \"elementor-mcp\": {\n            \"type\": \"http\",\n            \"url\": \"https://your-site.com/wp-json/mcp/elementor-mcp-server\",\n            \"headers\": {\n                \"Authorization\": \"Basic BASE64_ENCODED_CREDENTIALS\"\n            }\n        }\n    }\n}\n```\n\n### Claude Desktop\n\nAdd to `claude_desktop_config.json` (`%APPDATA%\\Claude\\` on Windows, `~/Library/Application Support/Claude/` on macOS):\n\n```json\n{\n    \"mcpServers\": {\n        \"elementor-mcp\": {\n            \"type\": \"http\",\n            \"url\": \"https://your-site.com/wp-json/mcp/elementor-mcp-server\",\n            \"headers\": {\n                \"Authorization\": \"Basic BASE64_ENCODED_CREDENTIALS\"\n            }\n        }\n    }\n}\n```\n\n### Cursor\n\nAdd to `.cursor/mcp.json` in your project root, or `~/.cursor/mcp.json` for global config:\n\n```json\n{\n    \"mcpServers\": {\n        \"elementor-mcp\": {\n            \"url\": \"https://your-site.com/wp-json/mcp/elementor-mcp-server\",\n            \"headers\": {\n                \"Authorization\": \"Basic BASE64_ENCODED_CREDENTIALS\"\n            }\n        }\n    }\n}\n```\n\n### Windsurf\n\nAdd to `~/.codeium/windsurf/mcp_config.json`:\n\n```json\n{\n    \"mcpServers\": {\n        \"elementor-mcp\": {\n            \"serverUrl\": \"https://your-site.com/wp-json/mcp/elementor-mcp-server\",\n            \"headers\": {\n                \"Authorization\": \"Basic BASE64_ENCODED_CREDENTIALS\"\n            }\n        }\n    }\n}\n```\n\n### Antigravity\n\nAdd to `~/.gemini/antigravity/mcp_config.json`:\n\n```json\n{\n    \"mcpServers\": {\n        \"elementor-mcp\": {\n            \"serverUrl\": \"https://your-site.com/wp-json/mcp/elementor-mcp-server\",\n            \"headers\": {\n                \"Authorization\": \"Basic BASE64_ENCODED_CREDENTIALS\"\n            }\n        }\n    }\n}\n```\n\n### WP-CLI stdio (local development)\n\nFor local development with WP-CLI available, you can use the stdio transport (no HTTP auth needed):\n\n```json\n{\n    \"mcpServers\": {\n        \"elementor-mcp\": {\n            \"type\": \"stdio\",\n            \"command\": \"wp\",\n            \"args\": [\n                \"mcp-adapter\", \"serve\",\n                \"--server=elementor-mcp-server\",\n                \"--user=admin\",\n                \"--path=/path/to/wordpress\"\n            ]\n        }\n    }\n}\n```\n\n### Node.js proxy (remote sites or protocol compatibility)\n\nFor remote WordPress sites, environments without WP-CLI, or when your AI client needs a different MCP protocol version, use the bundled Node.js proxy:\n\n```json\n{\n    \"mcpServers\": {\n        \"elementor-mcp\": {\n            \"type\": \"stdio\",\n            \"command\": \"node\",\n            \"args\": [\"/path/to/wp-content/plugins/elementor-mcp/bin/mcp-proxy.mjs\"],\n            \"env\": {\n                \"WP_URL\": \"https://your-site.com\",\n                \"WP_USERNAME\": \"admin\",\n                \"WP_APP_PASSWORD\": \"xxxx xxxx xxxx xxxx xxxx xxxx\"\n            }\n        }\n    }\n}\n```\n\n**Optional environment variables:**\n\n| Variable | Description |\n|---|---|\n| `MCP_LOG_FILE` | Path to a debug log file (e.g., `/tmp/elementor-mcp.log`) |\n| `MCP_PROTOCOL_VERSION` | Override the protocol version in initialize responses (e.g., `2024-11-05`). Use this if your client doesn't support `2025-06-18`. |\n\n### Testing with MCP Inspector\n\n```bash\nnpx @modelcontextprotocol/inspector wp mcp-adapter serve \\\n  --server=elementor-mcp-server --user=admin --path=/path/to/wordpress\n```\n\n## Available Tools\n\n### Query \u0026 Discovery (7 tools)\n\n| Tool | Description |\n|---|---|\n| `list-widgets` | All registered widget types with names, titles, icons, categories, keywords |\n| `get-widget-schema` | Full JSON Schema for a widget's settings (auto-generated from Elementor controls) |\n| `get-page-structure` | Element tree for a page (containers, widgets, nesting) |\n| `get-element-settings` | Current settings for a specific element on a page |\n| `list-pages` | All Elementor-enabled pages/posts |\n| `list-templates` | Saved Elementor templates from the template library |\n| `get-global-settings` | Active kit/global settings (colors, typography, spacing) |\n\n### Page Management (5 tools)\n\n| Tool | Description |\n|---|---|\n| `create-page` | Create a new WP page/post with Elementor enabled |\n| `update-page-settings` | Update page-level Elementor settings (background, padding, etc.) |\n| `delete-page-content` | Clear all Elementor content from a page |\n| `import-template` | Import JSON template structure into a page |\n| `export-page` | Export page's full Elementor data as JSON |\n\n### Layout \u0026 Structure (10 tools)\n\n| Tool | Description |\n|---|---|\n| `add-container` | Add a flexbox container (top-level or nested) |\n| `update-container` | Update settings on an existing container |\n| `move-element` | Move an element to a new parent/position |\n| `remove-element` | Remove an element and all children |\n| `duplicate-element` | Duplicate element with fresh IDs |\n| `get-container-schema` | Returns the JSON schema for container settings |\n| `find-element` | Find elements by type, settings, or CSS class within a page |\n| `update-element` | Update settings on any element (widget or container) by ID |\n| `batch-update` | Apply multiple element updates in a single call |\n| `reorder-elements` | Reorder child elements within a container |\n\n### Widgets (2 universal + 27 free + 30 Pro + 5 WooCommerce)\n\n| Tool | Description |\n|---|---|\n| `add-widget` | Universal: add any widget type to a container |\n| `update-widget` | Universal: update settings on an existing widget |\n| `add-heading` | Convenience: heading widget |\n| `add-text-editor` | Convenience: rich text editor widget |\n| `add-image` | Convenience: image widget |\n| `add-button` | Convenience: button widget |\n| `add-video` | Convenience: video widget |\n| `add-icon` | Convenience: icon widget |\n| `add-spacer` | Convenience: spacer widget |\n| `add-divider` | Convenience: divider widget |\n| `add-icon-box` | Convenience: icon box widget |\n| `add-accordion` | Convenience: collapsible accordion widget |\n| `add-alert` | Convenience: alert/notice widget |\n| `add-counter` | Convenience: animated counter widget |\n| `add-google-maps` | Convenience: embedded Google Maps widget |\n| `add-icon-list` | Convenience: icon list for features/checklists |\n| `add-image-box` | Convenience: image box (image + title + description) |\n| `add-image-carousel` | Convenience: rotating image carousel |\n| `add-progress` | Convenience: animated progress bar |\n| `add-social-icons` | Convenience: social media icon links |\n| `add-star-rating` | Convenience: star rating display |\n| `add-tabs` | Convenience: tabbed content widget |\n| `add-testimonial` | Convenience: testimonial with quote and author |\n| `add-toggle` | Convenience: toggle/expandable content |\n| `add-html` | Convenience: custom HTML code widget |\n| `add-menu-anchor` | Convenience: invisible anchor for one-page navigation |\n| `add-shortcode` | Convenience: embed WordPress shortcodes |\n| `add-rating` | Convenience: customizable rating widget |\n| `add-text-path` | Convenience: curved/circular text on a path |\n| `add-form` | Pro: form widget |\n| `add-posts-grid` | Pro: posts grid widget |\n| `add-countdown` | Pro: countdown timer widget |\n| `add-price-table` | Pro: price table widget |\n| `add-flip-box` | Pro: flip box widget |\n| `add-animated-headline` | Pro: animated headline widget |\n| `add-call-to-action` | Pro: call-to-action widget |\n| `add-slides` | Pro: full-width slides/slider |\n| `add-testimonial-carousel` | Pro: testimonial carousel/slider |\n| `add-price-list` | Pro: price list for menus/services |\n| `add-gallery` | Pro: advanced gallery (grid/masonry/justified) |\n| `add-share-buttons` | Pro: social share buttons |\n| `add-table-of-contents` | Pro: auto-generated table of contents |\n| `add-blockquote` | Pro: styled blockquote widget |\n| `add-lottie` | Pro: Lottie animation widget |\n| `add-hotspot` | Pro: image hotspot widget |\n| `add-nav-menu` | Pro: WordPress navigation menu |\n| `add-loop-grid` | Pro: dynamic post/CPT loop grid |\n| `add-loop-carousel` | Pro: dynamic post/CPT loop carousel |\n| `add-media-carousel` | Pro: media carousel for images/videos |\n| `add-nested-tabs` | Pro: nested tabs with container content |\n| `add-nested-accordion` | Pro: nested accordion with container content |\n| `add-portfolio` | Pro: portfolio grid widget |\n| `add-author-box` | Pro: post author box widget |\n| `add-login` | Pro: login form widget |\n| `add-code-highlight` | Pro: syntax-highlighted code block widget |\n| `add-reviews` | Pro: reviews/testimonials carousel widget |\n| `add-off-canvas` | Pro: off-canvas panel widget |\n| `add-progress-tracker` | Pro: scroll progress tracker widget |\n| `add-search` | Pro: search widget with live results support |\n| `add-wc-products` | Pro + WC: WooCommerce products grid |\n| `add-wc-add-to-cart` | Pro + WC: add-to-cart button |\n| `add-wc-cart` | Pro + WC: cart page widget |\n| `add-wc-checkout` | Pro + WC: checkout page widget |\n| `add-wc-menu-cart` | Pro + WC: menu cart icon widget |\n\n### Atomic Elements — Elementor 4.0+ (13 tools)\n\nThese tools only register when Elementor \u003e= 4.0 is detected. Legacy widget tools continue to work alongside them.\n\n| Tool | Description |\n|---|---|\n| `detect-elementor-version` | Returns Elementor version and whether atomic elements are supported. Call first to choose tool family. |\n| `add-flexbox` | Atomic flexbox container (`e-flexbox`). Params: direction, justify, align, gap, wrap, tag, padding, background_color |\n| `add-div-block` | Atomic div-block container (`e-div-block`). Params: tag, padding, background_color |\n| `add-atomic-widget` | Universal: add any atomic widget by type with raw `$$type` settings |\n| `update-atomic-widget` | Universal: partial-merge update on an existing atomic widget |\n| `add-atomic-heading` | Atomic heading (`e-heading`). Params: title, tag (h1-h6), link, css_id |\n| `add-atomic-paragraph` | Atomic paragraph (`e-paragraph`). Params: content, link, css_id |\n| `add-atomic-button` | Atomic button (`e-button`). Params: text, link, target_blank, css_id |\n| `add-atomic-image` | Atomic image (`e-image`). Params: image_id, image_url, alt, link, css_id |\n| `add-atomic-svg` | Atomic SVG (`e-svg`). Params: svg_id, svg_url, css_id |\n| `add-atomic-youtube` | Atomic YouTube embed (`e-youtube`). Params: video_url, css_id |\n| `add-atomic-video` | Atomic self-hosted video (`e-self-hosted-video`). Params: video_url, video_id, css_id |\n| `add-atomic-divider` | Atomic divider (`e-divider`). Params: css_id |\n\n### Templates \u0026 Theme Builder (8 tools)\n\n| Tool | Description |\n|---|---|\n| `save-as-template` | Save a page or element as reusable template |\n| `apply-template` | Apply a saved template to a page |\n| `create-theme-template` | Pro: Create theme builder template (header/footer/single/archive/error-404/loop-item) |\n| `set-template-conditions` | Pro: Set display conditions on a theme builder template |\n| `list-dynamic-tags` | Pro: List all available dynamic tags with groups and categories |\n| `set-dynamic-tag` | Pro: Bind a dynamic tag to a specific element setting |\n| `create-popup` | Pro: Create a popup template |\n| `set-popup-settings` | Pro: Set triggers, display conditions, and timing on a popup |\n\n### Global Settings (2 tools)\n\n| Tool | Description |\n|---|---|\n| `update-global-colors` | Update site-wide color palette in Elementor kit |\n| `update-global-typography` | Update site-wide typography in Elementor kit |\n\n### Composite (1 tool)\n\n| Tool | Description |\n|---|---|\n| `build-page` | Create complete page from declarative structure in one call |\n\n### Stock Images (3 tools)\n\n| Tool | Description |\n|---|---|\n| `search-images` | Search Openverse for Creative Commons images by keyword |\n| `sideload-image` | Download an external image URL into the WordPress Media Library |\n| `add-stock-image` | Search + sideload + add image widget to page in one call |\n\n### SVG Icons (1 tool)\n\n| Tool | Description |\n|---|---|\n| `upload-svg-icon` | Upload an SVG icon (from URL or raw markup) for use with icon/icon-box widgets |\n\n### Custom Code (4 tools)\n\n| Tool | Description |\n|---|---|\n| `add-custom-css` | Add custom CSS to an element or page-level with `selector` keyword support (Pro) |\n| `add-custom-js` | Inject JavaScript via HTML widget with automatic `\u003cscript\u003e` wrapping |\n| `add-code-snippet` | Create site-wide Custom Code snippets for head/body injection (Pro) |\n| `list-code-snippets` | List all Custom Code snippets with location and status filters (Pro) |\n\n\u003e All tool names are prefixed with `elementor-mcp/` in the MCP namespace (e.g., `elementor-mcp/list-widgets`). The MCP Adapter converts these to `elementor-mcp-list-widgets` for transport.\n\n## Permission Model\n\n| Tool Group | Required WordPress Capability |\n|---|---|\n| Read/Query | `edit_posts` |\n| Page creation | `publish_pages` or `edit_pages` |\n| Widget/layout manipulation | `edit_posts` + ownership check |\n| Template management | `edit_posts` |\n| Theme builder / Popups | `edit_posts` |\n| Dynamic tags | `edit_posts` + ownership check |\n| Global settings | `manage_options` |\n| Delete operations | `delete_posts` + ownership check |\n| Stock image search | `edit_posts` |\n| Stock image sideload | `upload_files` |\n| Custom CSS/JS | `edit_posts` + ownership check |\n| Code snippets | `manage_options` + `unfiltered_html` |\n\n## Troubleshooting\n\n### Tools not appearing in your AI client\n\nIf the MCP server connects but no tools appear in Claude Code, Cursor, or other clients:\n\n1. **Verify tools are registered.** Test the endpoint directly with curl to confirm the server returns tools:\n   ```bash\n   curl -s -u admin:YOUR_APP_PASSWORD \\\n     https://your-site.com/wp-json/mcp/elementor-mcp-server \\\n     -H \"Content-Type: application/json\" \\\n     -d '{\"jsonrpc\":\"2.0\",\"id\":1,\"method\":\"initialize\",\"params\":{\"protocolVersion\":\"2024-11-05\",\"capabilities\":{},\"clientInfo\":{\"name\":\"test\",\"version\":\"1.0\"}}}'\n   ```\n   If this returns a valid JSON-RPC response with `serverInfo`, the server is working. The issue is likely a protocol version mismatch between the server and your client.\n\n2. **Check for protocol version mismatch.** The WordPress MCP Adapter reports protocol version `2025-06-18`. Some clients only support `2024-11-05`. If using the Node.js proxy, set the `MCP_PROTOCOL_VERSION` environment variable to override:\n   ```json\n   \"env\": {\n       \"MCP_PROTOCOL_VERSION\": \"2024-11-05\"\n   }\n   ```\n\n3. **Enable debug logging.** Add the `MCP_LOG_FILE` environment variable to your proxy config to capture the full request/response flow:\n   ```json\n   \"env\": {\n       \"MCP_LOG_FILE\": \"/tmp/elementor-mcp-debug.log\"\n   }\n   ```\n   The log will show the protocol version, session IDs, tools count, and response bodies.\n\n4. **Use the proxy instead of direct HTTP.** If you're using `type: \"http\"` to connect directly, your client must handle `Mcp-Session-Id` headers. Clients that don't support session management should use the Node.js proxy instead, which handles sessions automatically.\n\n### Common errors\n\n- **\"No MCP servers registered\"** — Ensure the MCP Tools for Elementor plugin is active and all dependencies (Elementor, MCP Adapter, Abilities API) are met.\n- **HTTP 401** — Check your Application Password is correct and the user has `edit_posts` capability.\n- **\"Missing Mcp-Session-Id header\"** — The HTTP endpoint requires an `Mcp-Session-Id` header on all requests after `initialize`. Use the Node.js proxy (which handles this automatically) instead of direct HTTP connections.\n- **Session errors** — If connecting via direct HTTP, your client must capture the `Mcp-Session-Id` response header from `initialize` and include it on all subsequent requests.\n- **WP-CLI not found on Windows** — Use the full path to `php.exe` and `wp-cli.phar`.\n\n## Sample Prompts\n\nThe [`prompts/`](prompts/) directory includes ready-to-use landing page prompts that demonstrate the full power of MCP Tools for Elementor tools. Each prompt is a complete blueprint — paste it into your AI client and watch an entire page get built automatically.\n\n| Prompt | Industry | Description |\n|---|---|---|\n| [Local Business](prompts/LOCAL_BUSINESS.md) | General | Multi-purpose small business landing page with hero, services, testimonials, and contact |\n| [Dental Clinic](prompts/DENTAL_CLINIC.md) | Health \u0026 Wellness | Professional dental practice with services, team, insurance info, and appointment booking |\n| [Web Developer Portfolio](prompts/WEB_DEVELOPER_PORTFOLIO.md) | Professional Services | Developer portfolio with project showcase, tech stack, and contact form |\n| [Hair Salon](prompts/HAIR_SALON.md) | Lifestyle | Stylish salon page with services menu, stylist profiles, and booking |\n| [Car Wash](prompts/CAR_WASH.md) | Lifestyle | Car wash with wash packages, add-on services, and membership plans |\n\nEach prompt includes:\n- Complete design system (color palette, typography, spacing)\n- Image search keywords for stock photo sourcing\n- SVG icon specifications\n- Full page structure (hero, sections, footer)\n- Entrance animations using Elementor's built-in Motion Effects\n- Custom CSS for hover states\n- Custom JavaScript for scroll animations and counters\n- Step-by-step execution order\n\n\u003e **Want more?** A premium collection of **50 industry-specific prompts** covering restaurants, med spas, law firms, florists, photography studios, and more is available separately.\n\n## Contributing\n\nWe welcome contributions from the community! Whether it's bug reports, feature requests, documentation improvements, or code contributions — every bit helps.\n\nSee [CONTRIBUTING.md](CONTRIBUTING.md) for detailed guidelines on how to get started.\n\n**Quick start:**\n\n1. Fork the repository\n2. Create a feature branch (`git checkout -b feature/amazing-tool`)\n3. Make your changes and test locally\n4. Submit a Pull Request\n\n## Contributors\n\n- **[@msrbuilds](https://github.com/msrbuilds)** — Original author and maintainer\n- **[@mhamzashafiq](https://github.com/mhamzashafiq)** — Layout \u0026 element tools, widget convenience shortcuts, theme builder, dynamic tags, popup builder, WooCommerce widget tools, motion effects support, settings validator improvements\n\n## License\n\nThis project is licensed under the [GNU General Public License v3.0](LICENSE).","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmsrbuilds%2Felementor-mcp","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmsrbuilds%2Felementor-mcp","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmsrbuilds%2Felementor-mcp/lists"}