elementor-mcp
Elementor MCP
Un servidor MCP para trabajar en sitios WordPress construidos con Elementor: leer la estructura de páginas, editar widgets, gestionar tokens de diseño globales, y hacerlo sin romper nada.
Elementor guarda todo el diseño de la página como un blob JSON en una clave de postmeta protegida (_elementor_data). La API REST de WordPress no puede leerla ni escribirla, por eso los servidores MCP genéricos de WordPress pueden listar tus páginas pero no tocar su contenido. Este proyecto cierra esa brecha.
Qué obtienes
50 herramientas que cubren estructura de páginas, cirugía de elementos, esquemas de widgets, diseño global, plantillas, historial y búsqueda en todo el sitio.
Esquemas de widgets en vivo. Las definiciones de controles se leen del propio registro de Elementor del sitio de destino, así que el esquema que obtienes describe exactamente los widgets que ese sitio tiene instalados — núcleo, Pro y cualquier paquete de complementos de terceros — en lugar de una lista fija que queda obsoleta.
Escrituras concurrentes seguras. Cada escritura lleva el hash de contenido con el que se leyó la página y se rechaza si la página cambió por debajo. Sin sobrescrituras silenciosas.
Deshacer. Cada escritura hace una instantánea del diseño primero.
elementor_restore_snapshotrevierte el último cambio.Lotes atómicos. La reestructuración de varios pasos se aplica como una sola operación, o no se aplica en absoluto — una página nunca queda a medio editar.
Multi-sitio. Un solo servidor puede dar servicio a muchas instalaciones de WordPress, cada una direccionable por nombre, cada una marcable como solo lectura de forma independiente.
Related MCP server: elementor-mcp-agent
Arquitectura
Dos piezas, porque ninguna funciona sola:
MCP client ──stdio──▶ elementor-mcp (Node) ──REST──▶ WordPress
├── Elementor MCP Bridge (this repo)
└── Elementorplugin/elementor-mcp-bridge/ — un plugin de WordPress que expone un espacio de nombres REST elementor-mcp/v1. Lee y escribe documentos de Elementor a través del propio Document::save() de Elementor (el mismo camino que usa el editor, así que la sanitización, las revisiones y la regeneración de CSS ocurren correctamente), e inspecciona el registro de widgets en vivo para los esquemas.
src/ — el servidor MCP. Mantiene el árbol de elementos en su propio proceso y hace el trabajo estructural allí, así que una página de 400 KB se puede editar sin que ese JSON entre jamás en el contexto del modelo.
Esa división es deliberada. La cirugía de árboles vive en TypeScript donde se prueba unitariamente contra 59 casos; el lado PHP se mantiene delgado y delega en Elementor.
Instalación
1. El plugin puente
Construye un zip instalable y súbelo a través de Plugins → Añadir nuevo → Subir plugin en wp-admin:
./scripts/package-plugin.sh
# build/elementor-mcp-bridge-1.0.0.zipEl script se niega a construir si algún archivo falla php -l, así que un plugin roto no se puede empaquetar.
O instálalo directamente:
rsync -a plugin/elementor-mcp-bridge/ user@host:/var/www/site/wp-content/plugins/elementor-mcp-bridge/
wp plugin activate elementor-mcp-bridge # or activate in wp-adminRequiere WordPress 5.9+, PHP 7.4+ y Elementor 3.x o 4.x.
Confirma que está activo:
curl -u 'user:app password' https://example.com/wp-json/elementor-mcp/v1/statusEn Windows, curl es un alias de Invoke-WebRequest y no acepta -u. Usa el diagnóstico incluido en su lugar, que comprueba la accesibilidad, la API REST, la activación del plugin y las credenciales en orden, de modo que un fallo te dice cuál se rompió:
.\scripts\Test-Bridge.ps1 -SiteUrl https://example.com -Username admin -AppPassword 'abcd efgh ijkl mnop'O fuerza curl real con curl.exe en lugar del alias.
2. Una contraseña de aplicación
En wp-admin ve a Usuarios → Perfil → Contraseñas de aplicación, añade una llamada elementor-mcp y copia el valor generado. Esta no es la contraseña de acceso de la cuenta; se puede revocar de forma independiente.
El puente comprueba una capacidad real de WordPress en cada ruta, así que el agente solo puede hacer lo que ese usuario podría hacer a mano. Dale una cuenta con el rol más limitado que cubra tu uso — Editor suele ser suficiente, Administrador solo si necesitas cambiar ajustes de diseño de todo el sitio.
3. El servidor
npm install
npm run buildConfiguración
Sitio único:
WORDPRESS_URL=https://example.com
WORDPRESS_USERNAME=your-user
WORDPRESS_APP_PASSWORD="abcd efgh ijkl mnop qrst uvwx"Varios sitios — establece ELEMENTOR_MCP_SITES como un array JSON:
[
{ "name": "live", "url": "https://example.com", "username": "u", "appPassword": "..." },
{ "name": "staging", "url": "https://staging.example.com", "username": "u", "appPassword": "...", "readOnly": true }
]Variable | Propósito |
| Credenciales de sitio único |
| Array JSON u objeto con clave de nombre de perfiles de sitio |
| Ruta a un archivo JSON con la misma estructura |
| Qué perfil usan las herramientas cuando se omite |
|
|
| Tiempo de espera por petición, por defecto 30000 |
Conectar un cliente
Claude Code:
claude mcp add elementor -- node /path/to/elementor-mcp/dist/index.jsO editando directamente la configuración de un cliente MCP:
{
"mcpServers": {
"elementor": {
"command": "node",
"args": ["/path/to/elementor-mcp/dist/index.js"],
"env": {
"WORDPRESS_URL": "https://example.com",
"WORDPRESS_USERNAME": "your-user",
"WORDPRESS_APP_PASSWORD": "abcd efgh ijkl mnop qrst uvwx"
}
}
}
}Cómo usarlo bien
Las descripciones de las herramientas apuntan a esto, pero la versión corta:
elementor_site_statusuna vez por sitio — versiones, número de widgets, qué puede hacer el usuario autenticado.elementor_get_outlinepara obtener los ids de los elementos. No recurras aelementor_get_page_treea menos que realmente necesites todos los ajustes; los esquemas son una fracción del tamaño.elementor_get_widget_schemaantes de establecer ajustes de widgets desconocidos. Los nombres de los controles no son adivinables, y una clave incorrecta se guarda silenciosamente sin efecto visible — esta es la forma más común en que la automatización de Elementor sale mal.elementor_batch_editpara cualquier cosa de varios pasos.elementor_render_pagepara confirmar el resultado.
Los ajustes responsivos usan sufijos _tablet y _mobile (padding, padding_tablet, padding_mobile); el esquema marca qué controles son responsivos y detalla las claves exactas.
Modelo de seguridad
Preocupación | Cómo se maneja |
Ediciones concurrentes | Las escrituras llevan el hash leído al cargar; una página cambiada devuelve 409 y el servidor reintenta una vez con datos frescos |
Errores | Cada escritura hace una instantánea del diseño primero; |
Ediciones a medias | Los lotes se aplican en memoria y se validan antes de una sola escritura; una operación fallida no escribe nada |
Árboles corruptos | Los ids duplicados, los widgets con hijos y los widgets sin |
Operaciones destructivas | El borrado permanente y el reemplazo en todo el sitio necesitan |
Reemplazo en todo el sitio | Por defecto es una ejecución de prueba que informa de cada página que tocaría |
Permisos | Cada ruta comprueba una capacidad real de WordPress para el usuario autenticado |
CSS obsoleto | El CSS cacheado de Elementor se vacía después de cada escritura, así que los cambios se renderizan de verdad |
Para permitir borrados permanentes y reemplazos confirmados en todo el sitio, añade a wp-config.php:
define( 'EMCP_ALLOW_DESTRUCTIVE', true );Herramientas
Referencia completa en docs/TOOLS.md. Por área:
Sitios —
elementor_list_sites,elementor_site_status,elementor_native_mcp_callPáginas — listar, obtener, esquema, crear, duplicar, borrar, renderizar, actualizar metadatos, árbol completo
Elementos — obtener, buscar, añadir widget, añadir contenedor, actualizar, mover, duplicar, borrar, reordenar, envolver, edición por lotes, reemplazar árbol
Widgets — listar, esquema, tipos de elemento, etiquetas dinámicas
Diseño — globales, establecer color global, actualizar globales, CSS personalizado, clases globales, vaciar CSS
Plantillas — listar, obtener, guardar, aplicar, exportar, importar
Historial — instantáneas (listar/crear/restaurar), revisiones (listar/restaurar)
Contenido — buscar, buscar y reemplazar, uso de widgets, lista de medios, subida de imágenes
El módulo MCP propio de Elementor
Elementor 4.3 incluye un módulo MCP integrado, limitado por la API de Capacidades de WordPress y centrado en las características atómicas de v4 — clases globales, variables, componentes, composiciones. Cuando está presente, elementor_native_mcp_call hace de proxy directo hacia él, así que obtienes esas capacidades junto con todo lo demás aquí.
No es un reemplazo de este servidor: requiere Elementor 4.3+ con dependencias opcionales instaladas, y no cubre el modelo clásico de sección/columna/widget sobre el que está construida la gran mayoría de los sitios Elementor en producción. elementor_site_status informa si está disponible.
Desarrollo
npm run build # compile
npm test # 59 unit tests
npm run typecheck # source and tests
npm run smoke # boot the server and exercise the MCP handshake
npm run docs # regenerate docs/TOOLS.md from the running server
php tests/plugin-load.php # load the plugin and register all 32 routes
./scripts/package-plugin.sh # build the installable ziptests/plugin-load.php carga el puente contra funciones de WordPress simuladas y verifica que cada ruta tiene un manejador invocable y una devolución de llamada de permisos. No sustituye a un sitio real, pero detecta los errores fatales de activación que un zip ocultaría hasta la subida.
Licencia
MIT. Ver LICENSE.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseNot gradedqualityBmaintenanceMCP server for AI-assisted WordPress editing across 12 page builders. 172 tools for content management, page builder editing, WooCommerce, SEO analysis, accessibility scanning, and site intelligence. Edits native builder formats (Elementor, Bricks, Divi, Gutenberg, Beaver Builder, and 7 more) with duplicate-before-edit safety, optimistic locking, and surgical element-level operations7MIT
- AlicenseAqualityAmaintenanceAgency-grade MCP server for WordPress Elementor — multi-site management for 120+ WordPress sites with safe edits (backup + auto-rollback + post-write verification), template export/import, global widget detection, CSS flush, WP-CLI escape hatch, and headless Chrome screenshots. 34 tools across pages, widgets, templates, bulk find/replace, and fleet operations.34903MIT
- FlicenseBqualityAmaintenanceMCP server that connects AI clients to WordPress for content management, site settings, Elementor editing, and more via a secure API.60
- AlicenseNot gradedqualityBmaintenanceAn MCP server that enables AI agents to manage WordPress sites, including Elementor page building, content CRUD, plugin management, and site configuration via the WordPress REST API.36ISC
Related MCP Connectors
WordPress MCP server: publish posts, AI images, SEO and full site management, self-hosted
Security-first WordPress MCP server. 129 tools for Claude, ChatGPT, Gemini. Free on wp.org.
MCP Server for Slima - AI Writing IDE for Novel Authors with AI Beta Reader.
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/heaventree/elementor-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server