Elementor Ultra
officielCréez des sites Elementor avec des agents IA — environ 90 outils pour des pages Elementor V4 natives et modifiables via REST, avec validation, sauvegardes, restauration et un compilateur JSX typé. MIT.
Que pouvez-vous faire avec Elementor Ultra MCP ?
- Lister les pages — Demander de lister toutes les pages Elementor et leur structure via les outils
elementor.page.*. - Créer une page — Demander de créer une nouvelle page Elementor à partir d'une mise en page, avec validation côté serveur et sauvegarde.
- Convertir du HTML — Demander de convertir un extrait HTML en arborescence d'éléments Elementor à l'aide du convertisseur HTML→Elementor.
- Refactoriser un site en direct — Demander de modifier des widgets, le design ou des modèles sur un site en direct, avec sauvegardes automatiques et restauration.
- Validation à blanc — Demander de valider une arborescence d'éléments proposée sans enregistrer, en détectant les erreurs de manière atomique.
Documentation
Elementor Ultra MCP
La surface de contrôle agent pour Elementor. Un serveur Model Context Protocol + plugin WordPress compagnon qui permet aux agents IA de lire, construire, refactoriser et gouverner de vrais sites Elementor comme les ingénieurs livrent du logiciel — Éditeur V4 éléments atomiques d'abord, V3 classique en repli — avec validation côté serveur faisant autorité, différences, sauvegardes et restauration à chaque écriture.
packages/server— Serveur MCP TypeScript : 91 outils (elementor.page.*,widget,design,templates,media,nav,pro.*, conversion HTML→Elementor), transports stdio + HTTP, profils d'outils lean/full.plugin/elementor-ultra-mcp— Plugin WordPress exposant la couture REST faisant autorité (/wp-json/elementor-ultra/v1/*) : chaque écriture passe par leDocument::save()propre à Elementor avec instantanés de sauvegarde, concurrence optimiste (base_hash), rejeu d'idempotence (op_id), le validateur faisant autorité, et un préchauffage CSS obligatoire.packages/shared— la surface contractuelle figée : registre des routes REST, taxonomie d'erreurs, miroirs JSON-schema, fixtures dorées. Octet-identique àspec/contracts/schemas(protégé par CI).spec/— le dossier d'ingénierie complet : contrats, verdicts de spike et lots de travail sur lesquels le système a été construit.
S'associe avec elementor-jsx — le compilateur JSX→Elementor dont les déploiements passent par cette couture REST du plugin.
Démarrage rapide (utilisation avec un agent)
- Installez le plugin compagnon sur votre site WordPress (zip depuis Releases ; nécessite Elementor ≥ 4.1) et créez un mot de passe d'application.
- Connectez le serveur à votre client MCP (
.mcp.json) :
{
"mcpServers": {
"elementor-ultra": {
"command": "node",
"args": ["/path/to/elementor-ultra-mcp/packages/server/dist/index.js"],
"env": {
"WP_URL": "https://your-site.com",
"WP_USER": "admin",
"WP_APP_PASSWORD": "xxxx xxxx xxxx xxxx xxxx xxxx",
"ULTRA_TOOLS": "full",
},
},
},
}
- Demandez à votre agent de lister les pages, de simuler un arbre, de construire une page. Chaque mutation est validée par les propres parseurs d'Elementor côté serveur avant toute sauvegarde ; les arbres invalides sont rejetés atomiquement avec un code d'erreur taxonomique.
Licence
- Paquets TypeScript (
packages/*) : MIT © 2026 Algorismus - Plugin WordPress (
plugin/elementor-ultra-mcp) : GPL-2.0-or-later (convention WordPress)
Non affilié à Elementor Ltd ni approuvé par elle — « Elementor » est leur marque ; il s'agit d'une intégration indépendante qui cible leur format de page.
Prérequis
| Outil | Version | Notes |
|---|---|---|
| Node.js | ≥ 20 LTS | .nvmrc épingle 20. engine-strict=true est appliqué. |
| pnpm | 9.x | Le gestionnaire de paquets ; le lockfile est commité. |
| Docker | en cours d'exécution | Requis par @wordpress/env (wp-env) pour le site WP de dev. |
| PHP | ≥ 7.4 (dans le conteneur) | Fourni par le conteneur Docker wp-env — aucun PHP hôte requis. |
| Composer | (dans le conteneur) | La configuration Composer/PHPCS du plugin est fournie par WP-P01. |
Vous n'avez pas besoin de PHP ou Composer sur l'hôte ; les outils PHP s'exécutent dans le conteneur wp-env.
Installation et build
pnpm install # installs all workspace deps; writes/uses pnpm-lock.yaml
pnpm build # turbo: compiles packages/shared + packages/server (strict TS)
pnpm lint # eslint (typescript-eslint, recommended-type-checked) across the workspace
pnpm format:check # prettier --check
pnpm test:unit # turbo: vitest run in each package
Exécution du binaire serveur (aucun outil câblé pour l'instant)
Après pnpm build, le binaire serveur existe à packages/server/dist/index.js. Avec aucune variable d'environnement définie, il
affiche un message clair et se termine proprement (code de sortie 0) :
node packages/server/dist/index.js
# -> elementor-ultra-mcp: missing required environment variable(s): WP_URL, WP_USER, WP_APP_PASSWORD. ...
Une fois configuré, il lit les variables d'environnement suivantes :
| Variable | Requise | Signification |
|---|---|---|
WP_URL | oui | URL de base du site WordPress cible. |
WP_USER | oui | Nom d'utilisateur WordPress (propriétaire du mot de passe d'application). |
WP_APP_PASSWORD | oui | Mot de passe d'application WordPress (authentification HTTP Basic). |
MCP_TRANSPORT | non | stdio (défaut) ou http (Streamable HTTP). |
ULTRA_TOOLS | non | lean (défaut) ou full profil d'outils. |
La liaison de transport réelle + le registre d'outils sont ajoutés par WP-T01 dans
packages/server/src/server.ts. Le binaire (index.ts) charge paresseusementimport()s./server.jset affiche "server core not yet wired" jusqu'à ce que ce module existe — donc le binaire compile et démarre de manière autonome sur ce squelette.
Site WordPress de développement local (wp-env)
Le site de dev utilise @wordpress/env et épingle
Elementor 4.1.1 + Elementor Pro 4.1.0 exactement via des zips de plugins locaux (pas le slug wp.org,
qui tire la dernière version et n'héberge pas Pro du tout).
Où vivent les zips de plugins (et où Pro doit être placé)
.wp-env.json référence deux zips locaux sous .wp-env-plugins/ (un répertoire gitignoré) :
.wp-env-plugins/
├─ elementor.4.1.1.zip # Elementor free 4.1.1
└─ elementor-pro.4.1.0.zip # Elementor Pro 4.1.0 (licensed; not on wp.org)
Ces zips ne sont pas commités (ce sont des binaires sous licence et ils sont gitignorés). Après un clone frais, vous devez les placer vous-même :
mkdir -p .wp-env-plugins
cp /path/to/elementor.4.1.1.zip .wp-env-plugins/elementor.4.1.1.zip
cp /path/to/elementor-pro.4.1.0.zip .wp-env-plugins/elementor-pro.4.1.0.zip
Les noms de fichiers exacts ci-dessus doivent correspondre aux chemins dans .wp-env.json.
Démarrer / arrêter
pnpm wp-env:start # boots WordPress + Elementor 4.1.1 + Pro 4.1.0; mounts the companion plugin
pnpm wp-env:stop
.wp-env.json monte également ./plugin/elementor-ultra-mcp comme plugin. Le contenu de ce répertoire
(le bootstrap, composer.json, phpcs.xml.dist, readme.txt, et includes/) est créé par
WP-P01 ; une fois en place, le plugin compagnon est activable dans le site wp-env. La propre
configuration Composer/PHPCS du plugin est également fournie par WP-P01.
Structure du monorepo
elementor-ultra-mcp/
├─ packages/
│ ├─ server/ # TS MCP server (bin: elementor-ultra-mcp)
│ └─ shared/ # shared types + JSON Schemas + fixtures
├─ plugin/
│ └─ elementor-ultra-mcp/ # companion WP plugin (PHP) — populated by WP-P01
├─ spec/ # frozen architecture + contracts + work packages
├─ .wp-env.json # pins Elementor 4.1.1 + Pro 4.1.0 (local zips) + mounts the plugin
└─ (root tooling: pnpm-workspace.yaml, turbo.json, tsconfig.base.json, eslint, prettier)
Épinglage du SDK MCP (VERROUILLÉ)
packages/server épingle @modelcontextprotocol/sdk ^1.29 avec zod comme pair requis.
N'ajoutez jamais de paquet 2.x de @modelcontextprotocol/* — en 1.x, inputSchema/outputSchema sont
des cartes ZodRawShape et les transports sont des imports profonds .js. CI protège contre l'apparition d'une dépendance 2.x
dans le lockfile (WP-F07).