elementor-mcp
Elementor MCP
MCP-сервер для работы с сайтами на WordPress, построенными на Elementor — чтение структуры страниц, редактирование виджетов, управление глобальными дизайн-токенами — и всё это без риска что-либо сломать.
Elementor хранит всю раскладку страницы как JSON-блоб в защищённом ключе postmeta (_elementor_data). WordPress REST API не умеет ни читать, ни писать этот ключ, поэтому обычные WordPress MCP-серверы могут показать список ваших страниц, но не могут тронуть их содержимое. Этот проект закрывает этот пробел.
Что вы получаете
50 инструментов, покрывающих структуру страниц, хирургию элементов, схемы виджетов, глобальный дизайн, шаблоны, историю и поиск по всему сайту.
Живые схемы виджетов. Определения контролов читаются из реестра Elementor самого целевого сайта, поэтому полученная схема описывает ровно те виджеты, которые установлены на этом сайте — ядро, Pro и любые сторонние аддоны — вместо захардкоженного списка, который устаревает.
Безопасные конкурентные записи. Каждая запись несёт хэш контента, с которым страница была прочитана, и отклоняется, если страница изменилась под вами. Никаких тихих перезаписей.
Отмена. Каждая запись сначала снимает снапшот раскладки.
elementor_restore_snapshotоткатывает последнее изменение.Атомарные пакеты. Многошаговый рефакторинг применяется одной операцией или не применяется вовсе — страница никогда не остаётся наполовину отредактированной.
Мультисайтовость. Один сервер может обслуживать множество установок WordPress, каждая адресуется по имени, каждая независимо может быть помечена read-only.
Related MCP server: elementor-mcp-agent
Архитектура
Две части, потому что ни одна из них не работает в одиночку:
MCP client ──stdio──▶ elementor-mcp (Node) ──REST──▶ WordPress
├── Elementor MCP Bridge (this repo)
└── Elementorplugin/elementor-mcp-bridge/ — плагин WordPress, открывающий REST-пространство имён elementor-mcp/v1. Он читает и пишет документы Elementor через собственный Document::save() самого Elementor (тот же путь, что использует редактор, поэтому санитизация, ревизии и регенерация CSS происходят корректно) и интроспектирует живой реестр виджетов для получения схем.
src/ — MCP-сервер. Он держит дерево элементов в собственном процессе и выполняет структурную работу там, поэтому страницу на 400 КБ можно редактировать, не загоняя этот JSON в контекст модели.
Такое разделение — осознанное решение. Хирургия дерева живёт в TypeScript, где она покрыта юнит-тестами на 59 кейсов; PHP-сторона остаётся тонкой и делегирует Elementor.
Установка
1. Плагин-мост
Соберите устанавливаемый zip и загрузите его через Плагины → Добавить новый → Загрузить плагин в wp-admin:
./scripts/package-plugin.sh
# build/elementor-mcp-bridge-1.0.0.zipСкрипт откажется собирать, если хоть один файл не пройдёт php -l, так что сломанный плагин не может быть упакован.
Или установите напрямую:
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-adminТребуется WordPress 5.9+, PHP 7.4+ и Elementor 3.x или 4.x.
Проверьте, что он работает:
curl -u 'user:app password' https://example.com/wp-json/elementor-mcp/v1/statusВ Windows curl — это алиас для Invoke-WebRequest и не принимает -u. Вместо этого используйте встроенную диагностику, которая проверяет по порядку доступность, REST API, активацию плагина и учётные данные, так что при сбое сразу видно, что именно сломалось:
.\scripts\Test-Bridge.ps1 -SiteUrl https://example.com -Username admin -AppPassword 'abcd efgh ijkl mnop'Или принудительно используйте настоящий curl через curl.exe, а не алиас.
2. Пароль приложения
В wp-admin перейдите в Пользователи → Профиль → Пароли приложений, добавьте один с именем elementor-mcp и скопируйте сгенерированное значение. Это не пароль входа в аккаунт; его можно отозвать независимо.
Мост проверяет реальную возможность WordPress на каждом маршруте, поэтому агент может делать только то, что этот пользователь мог бы сделать вручную. Дайте ему аккаунт с минимальной ролью, покрывающей ваши задачи — обычно достаточно Редактора, Администратор нужен только если требуется менять общесайтовые настройки дизайна.
3. Сервер
npm install
npm run buildНастройка
Один сайт:
WORDPRESS_URL=https://example.com
WORDPRESS_USERNAME=your-user
WORDPRESS_APP_PASSWORD="abcd efgh ijkl mnop qrst uvwx"Несколько сайтов — задайте ELEMENTOR_MCP_SITES как JSON-массив:
[
{ "name": "live", "url": "https://example.com", "username": "u", "appPassword": "..." },
{ "name": "staging", "url": "https://staging.example.com", "username": "u", "appPassword": "...", "readOnly": true }
]Переменная | Назначение |
| Учётные данные для одного сайта |
| JSON-массив или объект с ключами-именами профилей сайтов |
| Путь к JSON-файлу с той же структурой |
| Какой профиль используют инструменты, если |
|
|
| Таймаут на запрос, по умолчанию 30000 |
Подключение клиента
Claude Code:
claude mcp add elementor -- node /path/to/elementor-mcp/dist/index.jsИли напрямую отредактировав конфиг 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"
}
}
}
}Как использовать правильно
Описания инструментов подталкивают к этому, но краткая версия:
elementor_site_statusодин раз на сайт — версии, количество виджетов, что может делать аутентифицированный пользователь.elementor_get_outlineдля получения id элементов. Не тянитесь кelementor_get_page_tree, если вам не нужны действительно все настройки; аутлайны занимают долю размера.elementor_get_widget_schemaперед установкой незнакомых настроек виджетов. Имена контролов не угадываются, а неверный ключ сохраняется молча без видимого эффекта — это самая частая причина, по которой автоматизация Elementor идёт не так.elementor_batch_editдля всего многошагового.elementor_render_pageдля подтверждения результата.
Респонсивные настройки используют суффиксы _tablet и _mobile (padding, padding_tablet, padding_mobile); схема помечает, какие контролы респонсивные, и явно указывает точные ключи.
Модель безопасности
Проблема | Как решается |
Конкурентные правки | Записи несут хэш, с которым страница была загружена; изменённая страница возвращает 409, и сервер один раз повторяет попытку на свежих данных |
Ошибки | Каждая запись сначала снимает снапшот раскладки; |
Недоделанные правки | Пакеты применяются в памяти и валидируются до единой записи; при сбое операция не пишет ничего |
Повреждённые деревья | Дубликаты id, виджеты с детьми и виджеты без |
Деструктивные операции | Постоянное удаление и общесайтовая замена требуют |
Общесайтовая замена | По умолчанию — сухой прогон, сообщающий о каждой странице, которой коснётся операция |
Права | Каждый маршрут проверяет реальную возможность WordPress для аутентифицированного пользователя |
Устаревший CSS | Кэш CSS Elementor сбрасывается после каждой записи, поэтому изменения реально отображаются |
Чтобы разрешить постоянные удаления и зафиксированные общесайтовые замены, добавьте в wp-config.php:
define( 'EMCP_ALLOW_DESTRUCTIVE', true );Инструменты
Полный справочник в docs/TOOLS.md. По областям:
Сайты —
elementor_list_sites,elementor_site_status,elementor_native_mcp_callСтраницы — список, получение, аутлайн, создание, дублирование, удаление, рендер, обновление метаданных, полное дерево
Элементы — получение, поиск, добавление виджета, добавление контейнера, обновление, перемещение, дублирование, удаление, переупорядочивание, обёртка, пакетное редактирование, замена дерева
Виджеты — список, схема, типы элементов, динамические теги
Дизайн — глобальные значения, установка глобального цвета, обновление глобальных значений, кастомный CSS, глобальные классы, сброс CSS
Шаблоны — список, получение, сохранение, применение, экспорт, импорт
История — снапшоты (список/создание/восстановление), ревизии (список/восстановление)
Контент — поиск, поиск и замена, использование виджетов, список медиа, загрузка изображений
Собственный MCP-модуль Elementor
Elementor 4.3 поставляется со встроенным MCP-модулем, ограниченным WordPress Abilities API и ориентированным на атомарные функции v4 — глобальные классы, переменные, компоненты, композиции. Там, где он присутствует, elementor_native_mcp_call проксирует напрямую к нему, так что вы получаете эти возможности в дополнение ко всему, что есть здесь.
Он не заменяет этот сервер: он требует Elementor 4.3+ с установленными опциональными зависимостями и не покрывает классическую модель секция/колонка/виджет, на которой построено подавляющее большинство живых сайтов на Elementor. elementor_site_status сообщает, доступен ли он.
Разработка
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 загружает мост против заглушенных функций WordPress и проверяет, что у каждого маршрута есть вызываемый обработчик и колбэк проверки прав. Это не замена реальному сайту, но это ловит фатальные ошибки активации, которые zip иначе скрыл бы до загрузки.
Лицензия
MIT. См. 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