elementor-mcp
Elementor MCP
Ein MCP-Server für die Arbeit an mit Elementor erstellten WordPress-Seiten – Lesen der Seitenstruktur, Bearbeiten von Widgets, Verwalten globaler Design-Tokens – und das, ohne etwas zu beschädigen.
Elementor speichert das gesamte Seitenlayout als JSON-Blob in einem geschützten Postmeta-Schlüssel (_elementor_data). Die WordPress-REST-API kann diesen weder lesen noch schreiben, weshalb generische WordPress-MCP-Server zwar deine Seiten auflisten, aber nicht auf deren Inhalt zugreifen können. Dieses Projekt schließt diese Lücke.
Was du bekommst
50 Tools für Seitenstruktur, Element-Operationen, Widget-Schemas, globales Design, Vorlagen, Verlauf und seitenweite Suche.
Live-Widget-Schemas. Steuerungsdefinitionen werden aus dem eigenen Elementor-Registry der Zielseite gelesen, sodass das Schema genau die Widgets beschreibt, die auf dieser Seite installiert sind – Core, Pro und jede Drittanbieter-Erweiterung – statt einer fest codierten Liste, die veraltet.
Sichere gleichzeitige Schreibvorgänge. Jeder Schreibvorgang trägt den Inhalts-Hash, mit dem die Seite gelesen wurde, und wird abgelehnt, wenn sich die Seite in der Zwischenzeit geändert hat. Keine stillen Überschreibungen.
Rückgängig machen. Jeder Schreibvorgang erstellt zuerst einen Snapshot des Layouts.
elementor_restore_snapshotmacht die letzte Änderung rückgängig.Atomare Stapel. Mehrstufige Umstrukturierungen werden als ein Vorgang angewendet oder gar nicht – eine Seite wird nie halb bearbeitet zurückgelassen.
Multi-Site. Ein Server kann viele WordPress-Installationen bedienen, jede über einen Namen adressierbar, jede unabhängig als schreibgeschützt markierbar.
Related MCP server: elementor-mcp-agent
Architektur
Zwei Komponenten, weil keine allein funktioniert:
MCP client ──stdio──▶ elementor-mcp (Node) ──REST──▶ WordPress
├── Elementor MCP Bridge (this repo)
└── Elementorplugin/elementor-mcp-bridge/ – ein WordPress-Plugin, das einen REST-Namespace elementor-mcp/v1 bereitstellt. Es liest und schreibt Elementor-Dokumente über Elementors eigene Document::save()-Methode (derselbe Pfad, den auch der Editor verwendet, sodass Bereinigung, Revisionen und CSS-Regenerierung korrekt ablaufen) und untersucht das Live-Widget-Registry für Schemas.
src/ – der MCP-Server. Er hält den Elementbaum in seinem eigenen Prozess und erledigt die strukturelle Arbeit dort, sodass eine 400-KB-Seite bearbeitet werden kann, ohne dass dieses JSON jemals in den Kontext des Modells gelangt.
Diese Aufteilung ist bewusst gewählt. Die Baum-Operationen liegen in TypeScript, wo sie mit 59 Testfällen unit-getestet werden; die PHP-Seite bleibt schlank und delegiert an Elementor.
Installation
1. Das Bridge-Plugin
Erstelle ein installierbares ZIP und lade es über Plugins → Neu hinzufügen → Plugin hochladen in wp-admin hoch:
./scripts/package-plugin.sh
# build/elementor-mcp-bridge-1.0.0.zipDas Skript weigert sich zu bauen, wenn eine Datei php -l nicht besteht, sodass ein defektes Plugin nicht verpackt werden kann.
Oder installiere es direkt:
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-adminErfordert WordPress 5.9+, PHP 7.4+ und Elementor 3.x oder 4.x.
Bestätige, dass es aktiv ist:
curl -u 'user:app password' https://example.com/wp-json/elementor-mcp/v1/statusUnter Windows ist curl ein Alias für Invoke-WebRequest und akzeptiert kein -u. Verwende stattdessen das mitgelieferte Diagnose-Tool, das nacheinander Erreichbarkeit, REST-API, Plugin-Aktivierung und Anmeldedaten prüft, sodass ein Fehler dir sagt, welcher Teil fehlgeschlagen ist:
.\scripts\Test-Bridge.ps1 -SiteUrl https://example.com -Username admin -AppPassword 'abcd efgh ijkl mnop'Oder erzwinge echtes curl mit curl.exe statt des Alias.
2. Ein Anwendungspasswort
Gehe in wp-admin zu Benutzer → Profil → Anwendungspasswörter, füge eines mit dem Namen elementor-mcp hinzu und kopiere den generierten Wert. Dies ist nicht das Login-Passwort des Kontos; es kann unabhängig widerrufen werden.
Das Bridge-Plugin prüft bei jeder Route eine echte WordPress-Fähigkeit, sodass der Agent nur das tun kann, was dieser Benutzer von Hand tun könnte. Gib ihm ein Konto mit der geringsten Rolle, die deinen Anwendungsfall abdeckt – Editor reicht normalerweise, Administrator nur, wenn du seitenweite Design-Einstellungen ändern musst.
3. Der Server
npm install
npm run buildKonfiguration
Einzelne Seite:
WORDPRESS_URL=https://example.com
WORDPRESS_USERNAME=your-user
WORDPRESS_APP_PASSWORD="abcd efgh ijkl mnop qrst uvwx"Mehrere Seiten – setze ELEMENTOR_MCP_SITES auf ein JSON-Array:
[
{ "name": "live", "url": "https://example.com", "username": "u", "appPassword": "..." },
{ "name": "staging", "url": "https://staging.example.com", "username": "u", "appPassword": "...", "readOnly": true }
]Variable | Zweck |
| Anmeldedaten für eine einzelne Seite |
| JSON-Array oder nach Namen verschlüsseltes Objekt von Seitenprofilen |
| Pfad zu einer JSON-Datei mit derselben Struktur |
| Welches Profil die Tools verwenden, wenn |
|
|
| Zeitüberschreitung pro Anfrage, Standard 30000 |
Einen Client verbinden
Claude Code:
claude mcp add elementor -- node /path/to/elementor-mcp/dist/index.jsOder durch direktes Bearbeiten einer MCP-Client-Konfiguration:
{
"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"
}
}
}
}So verwendest du es richtig
Die Tool-Beschreibungen weisen darauf hin, aber hier die Kurzfassung:
elementor_site_statuseinmal pro Seite – Versionen, Widget-Anzahl, was der authentifizierte Benutzer tun darf.elementor_get_outline, um Element-IDs zu erhalten. Greife nicht zuelementor_get_page_tree, es sei denn, du brauchst wirklich jede Einstellung; Outlines sind nur ein Bruchteil der Größe.elementor_get_widget_schema, bevor du unbekannte Widget-Einstellungen setzt. Steuerungsnamen sind nicht erratbar, und ein falscher Schlüssel wird still gespeichert ohne sichtbaren Effekt – das ist der häufigste Grund, warum Elementor-Automatisierung schiefgeht.elementor_batch_editfür alles Mehrstufige.elementor_render_page, um das Ergebnis zu bestätigen.
Responsive Einstellungen verwenden _tablet- und _mobile-Suffixe (padding, padding_tablet, padding_mobile); das Schema markiert, welche Steuerungen responsiv sind, und nennt die genauen Schlüssel.
Sicherheitsmodell
Anliegen | Wie es gehandhabt wird |
Gleichzeitige Bearbeitung | Schreibvorgänge tragen den Hash, der beim Laden gelesen wurde; eine geänderte Seite gibt 409 zurück und der Server versucht es einmal mit frischen Daten erneut |
Fehler | Jeder Schreibvorgang erstellt zuerst einen Snapshot des Layouts; |
Halbfertige Bearbeitung | Stapel werden im Speicher angewendet und validiert, bevor ein einziger Schreibvorgang erfolgt; ein fehlgeschlagener Vorgang schreibt nichts |
Beschädigte Bäume | Doppelte IDs, Widgets mit Kindern und Widgets ohne |
Destruktive Operationen | Dauerhaftes Löschen und seitenweites Ersetzen benötigen |
Seitenweites Ersetzen | Standardmäßig ein Probelauf, der jede betroffene Seite meldet |
Berechtigungen | Jede Route prüft eine echte WordPress-Fähigkeit für den authentifizierten Benutzer |
Veraltetes CSS | Elementors gecachtes CSS wird nach jedem Schreibvorgang geleert, sodass Änderungen tatsächlich sichtbar werden |
Um dauerhaftes Löschen und festgeschriebene seitenweite Ersetzungen zu erlauben, füge in wp-config.php hinzu:
define( 'EMCP_ALLOW_DESTRUCTIVE', true );Tools
Vollständige Referenz in docs/TOOLS.md. Nach Bereichen:
Seiten –
elementor_list_sites,elementor_site_status,elementor_native_mcp_callSeiten – Liste, Abruf, Outline, Erstellen, Duplizieren, Löschen, Rendern, Metadaten aktualisieren, vollständiger Baum
Elemente – Abruf, Suche, Widget hinzufügen, Container hinzufügen, Aktualisieren, Verschieben, Duplizieren, Löschen, Neu anordnen, Umwickeln, Stapelbearbeitung, Baum ersetzen
Widgets – Liste, Schema, Elementtypen, dynamische Tags
Design – Globals, globale Farbe setzen, Globals aktualisieren, benutzerdefiniertes CSS, globale Klassen, CSS leeren
Vorlagen – Liste, Abruf, Speichern, Anwenden, Exportieren, Importieren
Verlauf – Snapshots (Liste/Erstellen/Wiederherstellen), Revisionen (Liste/Wiederherstellen)
Inhalt – Suche, Suchen und Ersetzen, Widget-Nutzung, Medienliste, Bild-Upload
Elementors eigenes MCP-Modul
Elementor 4.3 enthält ein eingebautes MCP-Modul, das hinter der WordPress-Abilities-API liegt und sich auf v4-Atomfunktionen konzentriert – globale Klassen, Variablen, Komponenten, Kompositionen. Wo es vorhanden ist, leitet elementor_native_mcp_call direkt dorthin weiter, sodass du diese Fähigkeiten zusätzlich zu allem hier erhältst.
Es ist kein Ersatz für diesen Server: Es erfordert Elementor 4.3+ mit installierten optionalen Abhängigkeiten und deckt nicht das klassische Abschnitt/Spalte/Widget-Modell ab, auf dem die überwältigende Mehrheit der aktiven Elementor-Seiten basiert. elementor_site_status meldet, ob es verfügbar ist.
Entwicklung
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 lädt das Bridge-Plugin gegen gestubbte WordPress-Funktionen und stellt sicher, dass jede Route einen aufrufbaren Handler und einen Berechtigungs-Callback hat. Es ist kein Ersatz für eine echte Seite, aber es fängt die Aktivierungsfehler ab, die ein ZIP sonst bis zum Upload verbergen würde.
Lizenz
MIT. Siehe 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