Elementor Ultra MCP server
io.github.Algorismus-io/elementor-ultra-mcp·v1.0.1·2 starsBuild Elementor sites with AI agents - native, editable pages via ~90 MCP tools. Free & MIT.
2 stars311 downloads/wk
Reviews
Write oneNobody has reviewed Elementor Ultra yet.
If you have run it, two minutes of your experience saves the next person an afternoon.
Elementor Ultra tools (91, 23 write)
write = sends, deletes, buys or postsRead from the package source without running it. The installed server may list more.
elementor.batch.applywrite actionExecute a multi-document plan with up-front backups and best-effort compensation on partial failure.
elementor.batch.planDry-plan a multi-document brief build (records required backups).
elementor.breakpoints.getActive Elementor breakpoints with direction (min/max) and width.
elementor.convert.fidelity_checkRender the saved page and visual-compare against the source HTML (pixelmatch).
elementor.convert.figma_to_pageConvert a Figma frame, sideload its assets (attachment ids only — temp asset URLs never persist), validate, and (only on explicit commit) create/replace the page + prime CSS + verify against the Figma frame render. NEVER auto-commits.
elementor.convert.figma_to_treeFetch a Figma frame (fetch-to-file with manifest resume) and convert it into a native atomic element tree with proposed classes/variables, a coverage report, and the figma frame/tokens/flatten record (NO page persistence).
elementor.convert.html_to_pageConvert HTML, sideload media, create classes/variables, validate, and (only on explicit commit) create/replace the page + prime CSS. NEVER auto-commits.
elementor.convert.html_to_treeConvert HTML+CSS into a native atomic element tree with proposed classes/variables and a coverage report (NO persistence).
elementor.design.classes.deletewrite actionRemove global classes by id (explicit deletion).
elementor.design.classes.listGlobal classes with variants + order (paginated).
elementor.design.classes.reorderSet the full ordering of global classes.
elementor.design.classes.upsertAdd or modify global classes via a diff-PUT (PHP builds the changes/items/order body; budget + duplicate-label aware).
elementor.design.classes.usageWhere each global class is used.
elementor.design.deploywrite actionBulk-deploy global classes + variables in one transaction (budget pre-flighted, full cache flush after).
elementor.design.element_defaults.getPer-widget kit default settings.
elementor.design.element_defaults.setPer-widget kit default settings.
elementor.design.fonts.installInstall a NON-Google-catalog font face (contract 18 §7-AI S4): store woff2/woff/ttf/otf bytes under uploads, register its @font-face (Pro Custom Fonts CPT when available, else kit custom CSS), and return the resolved family string for atomic font-family props.
elementor.design.fonts.upload_zipwrite actionExtract a ZIP of font files (OTF/TTF/WOFF/WOFF2) and install every face into the WP Font Library. Reads font family names and weights automatically from each file's OTF/TTF name table — no manual metadata needed. Accepts file_path (local path to ZIP on the server filesystem) or zip_data (base64-encoded ZIP). Returns the list of installed faces and any skipped files.
elementor.design.globalColors.deletewrite actionRead/write V3 kit color repeaters (`system_colors`/`custom_colors`).
elementor.design.globalColors.listRead/write V3 kit color repeaters (`system_colors`/`custom_colors`).
elementor.design.globalColors.upsertRead/write V3 kit color repeaters (`system_colors`/`custom_colors`).
elementor.design.globalFonts.deletewrite actionRead/write V3 kit typography repeaters (`system_typography`/`custom_typography`).
elementor.design.globalFonts.listRead/write V3 kit typography repeaters (`system_typography`/`custom_typography`).
elementor.design.globalFonts.upsertRead/write V3 kit typography repeaters (`system_typography`/`custom_typography`).
elementor.design.sync_v4_to_v3Flag a V4 variable `sync_to_v3` and regenerate the bridge stylesheet.
elementor.design.variables.batchAtomic multi-edit of tokens (single watermark).
elementor.design.variables.createwrite actionCreate a color/font/size token (all three are FREE in 4.1.x).
elementor.design.variables.deletewrite actionSoft-delete a token (watermark-guarded).
elementor.design.variables.listDesign tokens (color/font/size) + optimistic watermark.
elementor.design.variables.restoreRestore a soft-deleted token (watermark-guarded).
elementor.design.variables.updatewrite actionEdit a token (watermark-guarded).
elementor.dynamic.get_tag_schemaPer-tag controls/args and categories for binding.
elementor.dynamic.list_tagsAvailable dynamic tags on the site, by category.
elementor.element.bind_dynamicBind a dynamic tag to a control (V3 `__dynamic__` or V4 atomic dynamic prop).
elementor.element.bind_globalBind a V3 global color/typography to a control via `__globals__`.
elementor.element.deletewrite actionRemove a node and its subtree.
elementor.element.getRead a single node from a document tree.
elementor.element.moveReorder or reparent a node.
elementor.element.set_classesSet the `classes` prop (global + local class ids) on a node.
elementor.element.set_local_styleUpsert a local style variant on a node (mirrors the style id into the element's classes prop).
elementor.kit.exportFull-site kit export zip.
elementor.kit.importwrite actionUpload + import a kit zip.
elementor.kit.revertRevert a kit import session.
elementor.media.listSearch/list attachments.
elementor.media.sideload_urlImport an external image into the WP media library (deduped by source hash).
elementor.media.uploadwrite actionUpload raw bytes/base64 to the media library.
elementor.nav.bind_widgetBind a Pro nav-menu/mega-menu widget to a menu term.
elementor.nav.menus.createwrite actionCreate and populate a navigation menu.
elementor.nav.menus.listList WP navigation menus.
elementor.ops.logAudit trail of writes (op_id, before/after hashes, result).
elementor.page.buildBatch create-and-populate a document from a declarative element tree; validates via PHP dry_run, saves, and primes atomic CSS.
elementor.page.createwrite actionCreate a blank Elementor document.
elementor.page.deletewrite actionTrash a document.
elementor.page.dry_runwrite actionAuthoritative validate-and-diff of an element tree with NO persistence (PHP instantiates every node + get_data_for_save).
elementor.page.duplicateDeep-copy a document and its meta (ids regenerated).
elementor.page.export_templateEmit a document in library-format JSON (content + page settings + bundled global classes/variables).
elementor.page.get_settingsRead `_elementor_page_settings` for a document.
elementor.page.get_structureRead the element tree of a document with depth / subtree / projection controls; returns the optimistic-lock base_hash.
elementor.page.list_backupsList the pre-write backup snapshots for a document (paginated); each carries the meta_key + base_hash to roll back to.
elementor.page.replace_treeOverwrite the entire element tree of a document in one transaction (optimistic-lock guarded).
elementor.page.rollbackRestore a document to a prior backup snapshot (by meta_key or "latest"), then re-prime atomic CSS.
elementor.page.update_settingswrite actionPatch document / page settings (GET-merge-PUT so partial updates never wipe unrelated keys).
elementor.page.verify_renderProbe that a document actually RENDERS (permalink loopback with in-process front-controller dispatch fallback): asserts HTTP 200 + no fatal marker; a fatal returns render_verified:false (RENDER_FAILED, op-logged).
elementor.pages.listList documents built with Elementor (paginated).
elementor.pro.dynamic.bindByte-identical mirror of core Manager::tag_to_text for dynamic binding.
elementor.pro.dynamic.list_tagsPer-tag name/title/group/categories/settings controls/availability.
elementor.pro.form.buildBuild an Elementor form widget (V3 classic `form`, or atomic `e-form` when `e_pro_atomic_form` active) with fields + actions.
elementor.pro.form.list_actionsRegistered (license-gated) form actions and their settings controls.
elementor.pro.loop.bind_gridConfigure a loop-grid/carousel widget bound to a loop-item template + query.
elementor.pro.loop.create_itemwrite actionCreate a loop-item template document.
elementor.pro.popup.createwrite actionCreate a popup document with layout settings, display settings (triggers/timing), and conditions.
elementor.pro.popup.set_timingMerge into the existing `_elementor_popup_display_settings`.
elementor.pro.popup.set_triggersMerge into the existing `_elementor_popup_display_settings`.
elementor.pro.theme.createwrite actionCreate a header/footer/single/archive/404/search/section theme-builder document with conditions.
elementor.pro.theme.get_conditions_configValid condition keys / sub-conditions per location (autocomplete tree).
elementor.pro.theme.set_conditionsReplace all display conditions on a theme doc (via Conditions_Manager::save_conditions + cache regenerate).
elementor.pro.woo.add_widgetAdd a context-validated WooCommerce widget (single/archive/context-free).
elementor.schema.stylesThe flat atomic Style-Schema (css-prop → prop-type), unit presets, and enums.
elementor.schema.widgetPer-widget props schema for an atomic widget (post-filter `get_props_schema()`, includes `_cssid` + dynamic-capable flags) or classic widget controls.
elementor.site.capabilitiesReport experiments, Pro presence, registered element types, breakpoints, capabilities, and migration state for the target site.
elementor.templates.getTemplate content + settings.
elementor.templates.importImport a .json/.zip template (image sideload + id remap).
elementor.templates.insert_into_pagewrite actionPaste a block into a document (ids minted fresh).
elementor.templates.listTemplate library list (paginated).
elementor.templates.savePersist a reusable block/page template (ids regenerated by Source_Local::save_item).
elementor.tools.get_schemaReturn the input/output schema + annotations for a named tool.
elementor.tools.invokeInvoke any catalog tool (incl. disabled) by name with a payload; mirrors the named tool's safety class + confirm gating.
elementor.tools.list_endpointsEnumerate every tool (incl. disabled) with namespace + safety class.
elementor.tools.searchProgressive discovery of the full Elementor tool surface; returns matching tool names + schemas so advanced tools can be enabled on demand.
elementor.widget.insertwrite actionInsert a node under a parent at an index (transactional, optimistic-lock + idempotency guarded).
elementor.widget.update_settingswrite actionPatch a single node's settings (transactional).
Public scan report
scanner v0.1.10 · 2026-11-04 · same rubric, same numbers if you re-run it
- Code scan203 source files scanned25/25
- –Live reliabilityno gateway calls yet and no remote to proben/a
- –Tool poisoningtools not inspected (local package is not executed); not countedn/a
- Auth qualitystatic API keys via environment variables6/15
- Maintenancelast push 78 days ago12/15
- Maintainer identityregistry namespace matches repository owner7/10
How Elementor Ultra compares
Against every graded MCP server, from our own scans and uptime checks. Updated after each scan run.
- Safety score
- 77/100
- higher than 50% of 48,255 servers
- Tools
- 91
- the typical server has 7
- Tools that change things
- 25%
- typical: 0%. Fewer write tools means less an agent can break
- GitHub stars
- 2
- more than 75% of 28,688 servers
- Downloads a week
- 311
- more than 81% of 12,191 servers with a package
What its tools let an agent do: 68 read · 23 change
Install Elementor Ultra in Claude Code, Cursor or VS Code
Runs npx -y @algorismus/elementor-ultra-mcp on your machine. Read the scan report first; the gateway never runs local packages.
claude mcp add elementor-ultra-mcp -- npx -y @algorismus/elementor-ultra-mcp
What the publisher says
From the Elementor Ultra repository's README, as published. We do not edit it. Read it on GitHub
Elementor Ultra MCP
The agent control surface for Elementor. A Model Context Protocol server + companion WordPress plugin that let AI agents read, build, refactor and govern real Elementor sites the way engineers ship software — Editor V4 atomic elements first, V3 classic fallback — with authoritative server-side validation, diffs, backups and rollback on every write.
widget, design, templates, media, nav, pro.*, HTML→Elementor convert), stdio + HTTP transports, lean/full tool profiles.
- packages/server — TypeScript MCP server: 91 tools (elementor.page.*,
(/wp-json/elementor-ultra/v1/): every write goes through Elementor's own Document::save() with backup snapshots, optimistic concurrency (basehash), idempotency (op_id) replay, the authoritative validator, and mandatory CSS priming.
- plugin/elementor-ultra-mcp — WordPress plugin exposing the authoritative REST seam
JSON-schema mirrors, golden fixtures. Byte-identical to spec/contracts/schemas (CI-guarded).
- packages/shared — the frozen contract surface: REST route registry, error taxonomy,
the system was built against.
- spec/ — the full engineering record: contracts, spike verdicts and work packages
Pairs with elementor-jsx — the JSX→Elementor compiler whose deploys ride this plugin's REST seam.
Quickstart (use it with an agent)
Elementor ≥ 4.1) and create an application password.
- Install the companion plugin on your WordPress site (zip from Releases; requires
- Wire the server into your MCP client (.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",
},
},
},
}by Elementor's own parsers server-side before anything saves; invalid trees are rejected atomically with a taxonomy error code.
- Ask your agent to list pages, dry-run a tree, build a page. Every mutation is validated
Licensing
- TypeScript packages (packages/): MIT** © 2026 Algorismus
- WordPress plugin (plugin/elementor-ultra-mcp): GPL-2.0-or-later (WordPress convention)
Not affiliated with or endorsed by Elementor Ltd — "Elementor" is their trademark; this is an independent integration that targets their page format.
Prerequisites
You do not need PHP or Composer on the host; the PHP tooling runs inside the wp-env container.
Install & 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 packageRunning the server bin (no tools wired yet)
Shortened. The full README is on GitHub.
Nothing above is checked by us. What we check is on the safety report.
Elementor Ultra: common questions
- Is Elementor Ultra MCP server safe?
- Mostly: it is graded B (77/100). Read the Elementor Ultra safety report
- How do I install Elementor Ultra?
- It runs on your machine. Copy the Claude Code, Cursor, VS Code or Claude Desktop config from the install section.
- Does Elementor Ultra need an API key?
- Yes. The registry entry asks for
WP_APP_PASSWORD. - Is Elementor Ultra maintained?
- The last commit was 78 days ago (2026-08-18). The latest release is v1.0.1.
- How does Elementor Ultra compare with other MCP servers?
- safety score 77/100 (higher than 50% of 48,255 servers); tools 91 (the typical server has 7); tools that change things 25% (typical: 0%. Fewer write tools means less an agent can break). Full comparison.