Skip to main content Início Criadores aradotso mcp-skills elementor-mcp-wordpress-builder
elementor-mcp-wordpress-builder Build and manage WordPress Elementor pages programmatically through MCP server with 118+ AI-ready tools for page design, widgets, layouts, and theme building.
Ir para a instalação Skills Marketplace Descubra e explore skills de IA criadas pela comunidade.
Instalar com Codex ou Claude Copie este prompt, cole no Codex, Claude ou outro assistente e deixe que ele revise a página da skill e instale para você.
Copiar promptMostrar detalhes do prompt Um comando direto ignora o prompt de revisão. Verifique a origem antes de executá-lo.
npx skills add https://github.com/Aradotso/mcp-skills --skill elementor-mcp-wordpress-builderO comando permanece em uma só linha. Role horizontalmente para revisá-lo antes de copiar.
Prefere uma cópia local? Baixe os arquivos disponíveis atualmente no SkillsMP.
Baixar Zip Baixando... Ocupações relacionadas SOC
Baseado na classificação ocupacional SOC
name elementor-mcp-wordpress-builder description Build and manage WordPress Elementor pages programmatically through MCP server with 118+ AI-ready tools for page design, widgets, layouts, and theme building. triggers ["create an Elementor page in WordPress","add widgets to my Elementor site","build a WordPress page with Elementor containers","update Elementor page layout programmatically","manage WordPress theme templates with Elementor","apply brand kit to Elementor site","list available Elementor widgets and tools","connect MCP server to WordPress Elementor"]
Elementor MCP WordPress Builder Skill
Skill by ara.so — MCP Skills collection.
Overview
Elementor MCP Server is a WordPress plugin that exposes Elementor's page building, widget management, and theme builder capabilities through the Model Context Protocol (MCP). It provides 118+ tools for AI agents to create, manipulate, and manage Elementor page designs programmatically without manual editor interaction.
Key capabilities:
Create and manage pages, posts, and templates
Add and configure 62+ widgets (free) or 101+ (with Pro)
Build layouts with flexbox containers
Manage global design tokens (colors, typography)
Apply brand kits for instant site restyling
Create theme templates (headers, footers, singles, archives)
Build popups with triggers and conditions (Pro)
Generate custom widgets from AI specs (Pro)
Search and insert stock images from Openverse
Inject custom CSS/JS at element, page, or site level
Installation
Prerequisites
WordPress >= 6.9 PHP >= 8.0 Elementor >= 3.20
Steps
Install Elementor:
wp plugin install elementor --activate
Install WordPress MCP Adapter:
The adapter is bundled with the plugin — no separate installation needed.
Install Elementor MCP Plugin:
Create Application Password:
Go to Users > Profile > Application Passwords
Generate new password (save it securely)
Configure MCP Connection:
Navigate to EMCP Tools > Connection in WordPress admin
Enter username and Application Password
Copy generated config for your AI client
Configuration
MCP Server Endpoint https://your-site.com/wp-json/mcp/elementor-mcp-server
Claude Desktop Configuration Add to claude_desktop_config.json:
{
"mcpServers" : {
"elementor-mcp" : {
"type" : "http" ,
"url" : "https://your-site.com/wp-json/mcp/elementor-mcp-server" ,
"headers" : {
"Authorization" : "Basic BASE64_CREDENTIALS_HERE"
}
}
}
}
Generate BASE64_CREDENTIALS_HERE:
echo -n "username:app-password" | base64
Cursor Configuration .cursor/mcp.json in project root:
{
"mcpServers" : {
"elementor-mcp" : {
"url" : "https://your-site.com/wp-json/mcp/elementor-mcp-server" ,
"headers" : {
"Authorization" : "Basic BASE64_CREDENTIALS_HERE"
}
}
}
}
Node.js Proxy (Recommended for Remote Sites) For remote WordPress sites or protocol compatibility:
{
"mcpServers" : {
"elementor-mcp" : {
"type" : "stdio" ,
"command" : "npx" ,
"args" : [ "-y" , "@msrbuilds/emcp-proxy@latest" ] ,
"env" : {
"WP_URL" : "https://your-site.com" ,
"WP_USERNAME" : "admin" ,
"WP_APP_PASSWORD" : "xxxx xxxx xxxx xxxx xxxx xxxx" ,
"MCP_PROTOCOL_VERSION" : "2024-11-05"
}
}
}
}
Low-Tools Mode For MCP clients with tool count limits (Antigravity, Gemini API):
Go to EMCP Tools > Tools in WordPress admin
Enable Low-tools Mode toggle
Reduces active tools from 118+ to ~50 essentials
Core MCP Tools
Discovery & Querying list-widgets — Get all available Elementor widgets:
{
"tool" : "list-widgets"
}
get-widget-schema — Inspect widget configuration schema:
{
"tool" : "get-widget-schema" ,
"arguments" : {
"widget_type" : "heading"
}
}
get-page-structure — Retrieve page element tree:
{
"tool" : "get-page-structure" ,
"arguments" : {
"post_id" : 123
}
}
get-element-settings — Get specific element configuration:
{
"tool" : "get-element-settings" ,
"arguments" : {
"post_id" : 123 ,
"element_id" : "abc123"
}
}
Page Management create-page — Create new Elementor page:
{
"tool" : "create-page" ,
"arguments" : {
"title" : "Services Landing Page" ,
"status" : "publish" ,
"content" : "Initial content"
}
}
update-page-settings — Modify page-level settings:
{
"tool" : "update-page-settings" ,
"arguments" : {
"post_id" : 123 ,
"settings" : {
"page_layout" : "full_width" ,
"custom_css" : ".my-class { color: blue; }"
}
}
}
clear-page-content — Remove all elements from page:
{
"tool" : "clear-page-content" ,
"arguments" : {
"post_id" : 123
}
}
Layout Building add-container — Add flexbox container:
{
"tool" : "add-container" ,
"arguments" : {
"post_id" : 123 ,
"settings" : {
"content_width" : "full" ,
"flex_direction" : "column" ,
"flex_gap" : {
"size" : 20 ,
"unit" : "px"
} ,
"background_background" : "classic" ,
"background_color" : "#f5f5f5" ,
"padding" : {
"top" : 40 ,
"right" : 20 ,
"bottom" : 40 ,
"left" : 20 ,
"unit" : "px"
}
} ,
"parent_id" : null ,
"position" : 0
}
}
update-container — Modify existing container:
{
"tool" : "update-container" ,
"arguments" : {
"post_id" : 123 ,
"element_id" : "abc123" ,
"settings" : {
"flex_direction" : "row" ,
"flex_justify_content" : "space-between"
}
}
}
move-element — Reposition element:
{
"tool" : "move-element" ,
"arguments" : {
"post_id" : 123 ,
"element_id" : "abc123" ,
"new_parent_id" : "xyz789" ,
"new_position" : 1
}
}
remove-element — Delete element:
{
"tool" : "remove-element" ,
"arguments" : {
"post_id" : 123 ,
"element_id" : "abc123"
}
}
duplicate-element — Clone element:
{
"tool" : "duplicate-element" ,
"arguments" : {
"post_id" : 123 ,
"element_id" : "abc123" ,
"new_parent_id" : "parent456" ,
"new_position" : 2
}
}
Widget Management add-widget — Universal widget insertion:
{
"tool" : "add-widget" ,
"arguments" : {
"post_id" : 123 ,
"widget_type" : "heading" ,
"settings" : {
"title" : "Welcome to Our Services" ,
"header_size" : "h1" ,
"align" : "center" ,
"title_color" : "#333333" ,
"typography_typography" : "custom" ,
"typography_font_size" : {
"size" : 48 ,
"unit" : "px"
} ,
"typography_font_weight" : "700"
} ,
"parent_id" : "container123" ,
"position" : 0
}
}
add-heading — Convenience shortcut for headings:
{
"tool" : "add-heading" ,
"arguments" : {
"post_id" : 123 ,
"title" : "Our Mission" ,
"header_size" : "h2" ,
"align" : "left" ,
"parent_id" : "container123"
}
}
add-text-editor — Add rich text content:
{
"tool" : "add-text-editor" ,
"arguments" : {
"post_id" : 123 ,
"editor" : "<p>We deliver cutting-edge solutions for modern businesses.</p>" ,
"parent_id" : "container123"
}
}
add-button — Insert call-to-action button:
{
"tool" : "add-button" ,
"arguments" : {
"post_id" : 123 ,
"text" : "Get Started" ,
"link" : {
"url" : "https://example.com/signup" ,
"is_external" : true ,
"nofollow" : false
} ,
"align" : "center" ,
"button_type" : "success" ,
"parent_id" : "container123"
}
}
add-image — Insert image widget:
{
"tool" : "add-image" ,
"arguments" : {
"post_id" : 123 ,
"image" : {
"id" : 456 ,
"url" : "https://example.com/wp-content/uploads/hero.jpg"
} ,
"image_size" : "full" ,
"align" : "center" ,
"parent_id" : "container123"
}
}
update-widget — Modify existing widget:
{
"tool" : "update-widget" ,
"arguments" : {
"post_id" : 123 ,
"element_id" : "widget789" ,
"settings" : {
"title" : "Updated Heading Text" ,
"title_color" : "#0066cc"
}
}
}
Pro Widgets (Elementor Pro Required) add-nav-menu — Add navigation menu:
{
"tool" : "add-nav-menu" ,
"arguments" : {
"post_id" : 123 ,
"menu" : "primary" ,
"layout" : "horizontal" ,
"parent_id" : "header-container"
}
}
add-loop-grid — Create dynamic content loop:
{
"tool" : "add-loop-grid" ,
"arguments" : {
"post_id" : 123 ,
"template_id" : 789 ,
"query_post_type" : "post" ,
"query_posts_per_page" : 6 ,
"columns" : 3 ,
"parent_id" : "container123"
}
}
add-popup — Create popup template:
{
"tool" : "add-popup" ,
"arguments" : {
"title" : "Newsletter Signup" ,
"triggers" : [
{
"type" : "exit_intent" ,
"settings" : { }
}
] ,
"timing" : {
"delay" : 5
}
}
}
Atomic Elements (Elementor 4.0+) add-atomic-widget — Add atomic element:
{
"tool" : "add-atomic-widget" ,
"arguments" : {
"post_id" : 123 ,
"widget_type" : "n-button" ,
"settings" : {
"button_text" : "Learn More" ,
"button_link" : {
"url" : "/about"
}
} ,
"parent_id" : "container123"
}
}
Available atomic widgets: n-flex, n-div, n-heading, n-paragraph, n-button, n-image, n-svg, n-youtube, n-video, n-divider
Global Settings get-global-settings — Retrieve site-wide design tokens:
{
"tool" : "get-global-settings"
}
update-global-colors — Modify color palette:
{
"tool" : "update-global-colors" ,
"arguments" : {
"colors" : [
{
"_id" : "primary" ,
"title" : "Brand Primary" ,
"color" : "#0066cc"
} ,
{
"_id" : "secondary" ,
"title" : "Brand Secondary" ,
"color" : "#ff6600"
}
]
}
}
update-global-typography — Set typography presets:
{
"tool" : "update-global-typography" ,
"arguments" : {
"typography" : [
{
"_id" : "primary" ,
"title" : "Primary Heading" ,
"typography_typography" : "custom" ,
"typography_font_family" : "Roboto" ,
"typography_font_size" : {
"size" : 36 ,
"unit" : "px"
} ,
"typography_font_weight" : "700"
}
]
}
}
Brand Kits apply-brand-kit — Apply coordinated design system (10 free kits, 50 in Pro):
{
"tool" : "apply-brand-kit" ,
"arguments" : {
"kit_name" : "modern-tech"
}
}
Available free kits: modern-tech, classic-elegance, bold-creative, minimal-clean, warm-organic, corporate-pro, vibrant-startup, luxury-premium, earthy-natural, playful-fun
backup-brand-kit — Save current design tokens:
{
"tool" : "backup-brand-kit" ,
"arguments" : {
"backup_name" : "pre-redesign-2024"
}
}
restore-brand-kit — Restore previous backup:
{
"tool" : "restore-brand-kit" ,
"arguments" : {
"backup_name" : "pre-redesign-2024"
}
}
Templates save-template — Export page or section as reusable template:
{
"tool" : "save-template" ,
"arguments" : {
"post_id" : 123 ,
"template_title" : "Hero Section Layout" ,
"template_type" : "section" ,
"element_id" : "section456"
}
}
apply-template — Import template to page:
{
"tool" : "apply-template" ,
"arguments" : {
"post_id" : 123 ,
"template_id" : 789 ,
"parent_id" : "container123" ,
"position" : 0
}
}
Theme Builder create-theme-template — Build header/footer/single/archive templates:
{
"tool" : "create-theme-template" ,
"arguments" : {
"title" : "Site Header" ,
"template_type" : "header" ,
"display_conditions" : {
"include" : [
{
"type" : "general" ,
"value" : "all"
}
]
}
}
}
Stock Images search-stock-images — Find Creative Commons images:
{
"tool" : "search-stock-images" ,
"arguments" : {
"query" : "business team collaboration" ,
"limit" : 10 ,
"license" : "cc0"
}
}
sideload-image — Import image to Media Library:
{
"tool" : "sideload-image" ,
"arguments" : {
"image_url" : "https://example.com/image.jpg" ,
"title" : "Team Photo" ,
"alt_text" : "Our team collaborating"
}
}
Custom Code add-element-css — Add CSS to specific element:
{
"tool" : "add-element-css" ,
"arguments" : {
"post_id" : 123 ,
"element_id" : "widget789" ,
"css" : "selector { border-radius: 10px; box-shadow: 0 4px 6px rgba(0,0,0,0.1); }"
}
}
add-page-css — Inject page-level CSS:
{
"tool" : "add-page-css" ,
"arguments" : {
"post_id" : 123 ,
"css" : ".custom-section { background: linear-gradient(45deg, #667eea 0%, #764ba2 100%); }"
}
}
add-custom-code-snippet — Create site-wide code injection:
{
"tool" : "add-custom-code-snippet" ,
"arguments" : {
"title" : "Analytics Script" ,
"code" : "<script>console.log('Page loaded');</script>" ,
"location" : "head" ,
"priority" : 10
}
}
Composite Tools build-page-from-structure — Create complete page from JSON structure:
{
"tool" : "build-page-from-structure" ,
"arguments" : {
"post_id" : 123 ,
"structure" : {
"containers" : [
{
"settings" : {
"content_width" : "full" ,
"background_background" : "classic" ,
"background_color" : "#ffffff"
} ,
"children" : [
{
"widget_type" : "heading" ,
"settings" : {
"title" : "Welcome" ,
"header_size" : "h1"
}
} ,
{
"widget_type" : "text-editor" ,
"settings" : {
"editor" : "<p>Your content here.</p>"
}
}
]
}
]
}
}
}
Common Patterns
Building a Complete Landing Page
{
"tool" : "create-page" ,
"arguments" : {
"title" : "Product Launch" ,
"status" : "draft"
}
}
{
"tool" : "add-container" ,
"arguments" : {
"post_id" : 123 ,
"settings" : {
"content_width" : "full" ,
"min_height" : {
"size" : 600 ,
"unit" : "px"
} ,
"flex_direction" : "column" ,
"flex_justify_content" : "center" ,
"flex_align_items" : "center" ,
"background_background" : "gradient" ,
"background_color" : "#667eea" ,
"background_color_b" : "#764ba2"
}
}
}
{
"tool" : "add-heading" ,
"arguments" : {
"post_id" : 123 ,
"title" : "Revolutionary Product Launch" ,
"header_size" : "h1" ,
"align" : "center" ,
"title_color" : "#ffffff" ,
"parent_id" : "hero-container"
}
}
{
"tool" : "add-button" ,
"arguments" : {
"post_id" : 123 ,
"text" : "Pre-Order Now" ,
"link" : {
"url" : "/preorder"
} ,
"button_type" : "success" ,
"size" : "lg" ,
"parent_id" : "hero-container"
}
}
{
"tool" : "add-container" ,
"arguments" : {
"post_id" : 123 ,
"settings" : {
"flex_direction" : "row" ,
"flex_gap" : {
"size" : 30 ,
"unit" : "px"
}
}
}
}
Applying Dynamic Content (Pro)
{
"tool" : "add-loop-grid" ,
"arguments" : {
"post_id" : 123 ,
"template_id" : 456 ,
"query_post_type" : "post" ,
"query_posts_per_page" : 9 ,
"query_orderby" : "date" ,
"query_order" : "DESC" ,
"columns" : 3 ,
"columns_tablet" : 2 ,
"columns_mobile" : 1 ,
"parent_id" : "blog-container"
}
}
Theming Entire Site
{
"tool" : "create-theme-template" ,
"arguments" : {
"title" : "Global Header" ,
"template_type" : "header" ,
"display_conditions" : {
"include" : [
{ "type" : "general" , "value" : "all" }
]
}
}
}
{
"tool" : "add-container" ,
"arguments" : {
"post_id" : 789 ,
"settings" : {
"flex_direction" : "row" ,
"flex_justify_content" : "space-between"
}
}
}
{
"tool" : "add-image" ,
"arguments" : {
"post_id" : 789 ,
"image" : { "id" : 101 } ,
"parent_id" : "header-container"
}
}
{
"tool" : "add-nav-menu" ,
"arguments" : {
"post_id" : 789 ,
"menu" : "primary" ,
"layout" : "horizontal" ,
"parent_id" : "header-container"
}
}
Batch Operations
{
"tool" : "batch-update-elements" ,
"arguments" : {
"post_id" : 123 ,
"updates" : [
{
"element_id" : "heading1" ,
"settings" : { "title_color" : "#0066cc" }
} ,
{
"element_id" : "heading2" ,
"settings" : { "title_color" : "#0066cc" }
} ,
{
"element_id" : "button1" ,
"settings" : { "button_type" : "primary" }
}
]
}
}
Troubleshooting
Connection Issues Problem: 401 Unauthorized response
Solution: Verify Application Password encoding:
echo -n "admin:xxxx xxxx xxxx xxxx" | base64
curl -H "Authorization: Basic YOUR_BASE64_HERE" \
https://your-site.com/wp-json/mcp/elementor-mcp-server
Problem: 404 Not Found on MCP endpoint
wp rewrite flush
wp plugin list --status=active | grep elementor-mcp
Tool Count Issues Problem: Client rejects connection due to too many tools
Solution: Enable Low-tools Mode in EMCP Tools > Tools or filter tools manually:
{
"tool" : "toggle-tools" ,
"arguments" : {
"enabled_tools" : [
"create-page" ,
"add-container" ,
"add-widget" ,
"get-page-structure" ,
"update-widget"
]
}
}
Widget Schema Errors Problem: Widget won't accept certain settings
Solution: Inspect widget schema first:
{
"tool" : "get-widget-schema" ,
"arguments" : {
"widget_type" : "heading"
}
}
Check returned JSON Schema for valid property names, types, and constraints.
Container Nesting Issues Problem: Elements appear in wrong location
Solution: Always verify parent container exists:
{ "tool" : "get-page-structure" , "arguments" : { "post_id" : 123 } }
Dynamic Tags Not Working (Pro) Problem: Dynamic content not rendering
Solution: List available tags first:
{
"tool" : "list-dynamic-tags"
}
Then bind using exact tag name:
{
"tool" : "update-widget" ,
"arguments" : {
"post_id" : 123 ,
"element_id" : "widget789" ,
"settings" : {
"title" : "{{dynamic-tag:post-title}}"
}
}
}
Brand Kit Not Applying Problem: apply-brand-kit returns error
Solution: Check kit availability:
Custom Widget Builder Errors (Pro) Problem: Widget doesn't appear in editor
Solution: Verify widget spec structure:
{
"widget_id" : "unique-id" ,
"widget_name" : "My Widget" ,
"widget_category" : "custom" ,
"controls" : [
{
"id" : "text" ,
"type" : "text" ,
"label" : "Content"
}
] ,
"template" : "<div>{{ settings.text }}</div>"
}
All required fields: widget_id, widget_name, widget_category, controls array, template string.
Environment Variables When using Node.js proxy (npx @msrbuilds/emcp-proxy):
Variable Required Description WP_URLYes WordPress site URL (e.g., https://example.com) WP_USERNAMEYes WordPress username WP_APP_PASSWORDYes Application Password (spaces allowed) MCP_PROTOCOL_VERSIONNo Override protocol version (default: 2025-06-18) MCP_LOG_FILENo Path for debug logging (e.g., /tmp/emcp.log)
Resources
License GPL-2.0-or-later — Same as WordPress and Elementor