MCP.Market

Elementor Ultra MCP server

by Algorismus-io·io.github.Algorismus-io/elementor-ultra-mcp·v1.0.1·2 stars

Build Elementor sites with AI agents - native, editable pages via ~90 MCP tools. Free & MIT.

B77/100grade B
What users say
No reviews yet
Be the first
Safety scan
B77/100

full report

Adoption
Growing

2 stars311 downloads/wk

Reviews

Write one

Nobody 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 posts

Read from the package source without running it. The installed server may list more.

  • elementor.batch.applywrite action

    Execute a multi-document plan with up-front backups and best-effort compensation on partial failure.

  • elementor.batch.plan

    Dry-plan a multi-document brief build (records required backups).

  • elementor.breakpoints.get

    Active Elementor breakpoints with direction (min/max) and width.

  • elementor.convert.fidelity_check

    Render the saved page and visual-compare against the source HTML (pixelmatch).

  • elementor.convert.figma_to_page

    Convert 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_tree

    Fetch 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_page

    Convert 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_tree

    Convert HTML+CSS into a native atomic element tree with proposed classes/variables and a coverage report (NO persistence).

  • elementor.design.classes.deletewrite action

    Remove global classes by id (explicit deletion).

  • elementor.design.classes.list

    Global classes with variants + order (paginated).

  • elementor.design.classes.reorder

    Set the full ordering of global classes.

  • elementor.design.classes.upsert

    Add or modify global classes via a diff-PUT (PHP builds the changes/items/order body; budget + duplicate-label aware).

  • elementor.design.classes.usage

    Where each global class is used.

  • elementor.design.deploywrite action

    Bulk-deploy global classes + variables in one transaction (budget pre-flighted, full cache flush after).

  • elementor.design.element_defaults.get

    Per-widget kit default settings.

  • elementor.design.element_defaults.set

    Per-widget kit default settings.

  • elementor.design.fonts.install

    Install 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 action

    Extract 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 action

    Read/write V3 kit color repeaters (`system_colors`/`custom_colors`).

  • elementor.design.globalColors.list

    Read/write V3 kit color repeaters (`system_colors`/`custom_colors`).

  • elementor.design.globalColors.upsert

    Read/write V3 kit color repeaters (`system_colors`/`custom_colors`).

  • elementor.design.globalFonts.deletewrite action

    Read/write V3 kit typography repeaters (`system_typography`/`custom_typography`).

  • elementor.design.globalFonts.list

    Read/write V3 kit typography repeaters (`system_typography`/`custom_typography`).

  • elementor.design.globalFonts.upsert

    Read/write V3 kit typography repeaters (`system_typography`/`custom_typography`).

  • elementor.design.sync_v4_to_v3

    Flag a V4 variable `sync_to_v3` and regenerate the bridge stylesheet.

  • elementor.design.variables.batch

    Atomic multi-edit of tokens (single watermark).

  • elementor.design.variables.createwrite action

    Create a color/font/size token (all three are FREE in 4.1.x).

  • elementor.design.variables.deletewrite action

    Soft-delete a token (watermark-guarded).

  • elementor.design.variables.list

    Design tokens (color/font/size) + optimistic watermark.

  • elementor.design.variables.restore

    Restore a soft-deleted token (watermark-guarded).

  • elementor.design.variables.updatewrite action

    Edit a token (watermark-guarded).

  • elementor.dynamic.get_tag_schema

    Per-tag controls/args and categories for binding.

  • elementor.dynamic.list_tags

    Available dynamic tags on the site, by category.

  • elementor.element.bind_dynamic

    Bind a dynamic tag to a control (V3 `__dynamic__` or V4 atomic dynamic prop).

  • elementor.element.bind_global

    Bind a V3 global color/typography to a control via `__globals__`.

  • elementor.element.deletewrite action

    Remove a node and its subtree.

  • elementor.element.get

    Read a single node from a document tree.

  • elementor.element.move

    Reorder or reparent a node.

  • elementor.element.set_classes

    Set the `classes` prop (global + local class ids) on a node.

  • elementor.element.set_local_style

    Upsert a local style variant on a node (mirrors the style id into the element's classes prop).

  • elementor.kit.export

    Full-site kit export zip.

  • elementor.kit.importwrite action

    Upload + import a kit zip.

  • elementor.kit.revert

    Revert a kit import session.

  • elementor.media.list

    Search/list attachments.

  • elementor.media.sideload_url

    Import an external image into the WP media library (deduped by source hash).

  • elementor.media.uploadwrite action

    Upload raw bytes/base64 to the media library.

  • elementor.nav.bind_widget

    Bind a Pro nav-menu/mega-menu widget to a menu term.

  • elementor.nav.menus.createwrite action

    Create and populate a navigation menu.

  • elementor.nav.menus.list

    List WP navigation menus.

  • elementor.ops.log

    Audit trail of writes (op_id, before/after hashes, result).

  • elementor.page.build

    Batch create-and-populate a document from a declarative element tree; validates via PHP dry_run, saves, and primes atomic CSS.

  • elementor.page.createwrite action

    Create a blank Elementor document.

  • elementor.page.deletewrite action

    Trash a document.

  • elementor.page.dry_runwrite action

    Authoritative validate-and-diff of an element tree with NO persistence (PHP instantiates every node + get_data_for_save).

  • elementor.page.duplicate

    Deep-copy a document and its meta (ids regenerated).

  • elementor.page.export_template

    Emit a document in library-format JSON (content + page settings + bundled global classes/variables).

  • elementor.page.get_settings

    Read `_elementor_page_settings` for a document.

  • elementor.page.get_structure

    Read the element tree of a document with depth / subtree / projection controls; returns the optimistic-lock base_hash.

  • elementor.page.list_backups

    List the pre-write backup snapshots for a document (paginated); each carries the meta_key + base_hash to roll back to.

  • elementor.page.replace_tree

    Overwrite the entire element tree of a document in one transaction (optimistic-lock guarded).

  • elementor.page.rollback

    Restore a document to a prior backup snapshot (by meta_key or "latest"), then re-prime atomic CSS.

  • elementor.page.update_settingswrite action

    Patch document / page settings (GET-merge-PUT so partial updates never wipe unrelated keys).

  • elementor.page.verify_render

    Probe 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.list

    List documents built with Elementor (paginated).

  • elementor.pro.dynamic.bind

    Byte-identical mirror of core Manager::tag_to_text for dynamic binding.

  • elementor.pro.dynamic.list_tags

    Per-tag name/title/group/categories/settings controls/availability.

  • elementor.pro.form.build

    Build an Elementor form widget (V3 classic `form`, or atomic `e-form` when `e_pro_atomic_form` active) with fields + actions.

  • elementor.pro.form.list_actions

    Registered (license-gated) form actions and their settings controls.

  • elementor.pro.loop.bind_grid

    Configure a loop-grid/carousel widget bound to a loop-item template + query.

  • elementor.pro.loop.create_itemwrite action

    Create a loop-item template document.

  • elementor.pro.popup.createwrite action

    Create a popup document with layout settings, display settings (triggers/timing), and conditions.

  • elementor.pro.popup.set_timing

    Merge into the existing `_elementor_popup_display_settings`.

  • elementor.pro.popup.set_triggers

    Merge into the existing `_elementor_popup_display_settings`.

  • elementor.pro.theme.createwrite action

    Create a header/footer/single/archive/404/search/section theme-builder document with conditions.

  • elementor.pro.theme.get_conditions_config

    Valid condition keys / sub-conditions per location (autocomplete tree).

  • elementor.pro.theme.set_conditions

    Replace all display conditions on a theme doc (via Conditions_Manager::save_conditions + cache regenerate).

  • elementor.pro.woo.add_widget

    Add a context-validated WooCommerce widget (single/archive/context-free).

  • elementor.schema.styles

    The flat atomic Style-Schema (css-prop → prop-type), unit presets, and enums.

  • elementor.schema.widget

    Per-widget props schema for an atomic widget (post-filter `get_props_schema()`, includes `_cssid` + dynamic-capable flags) or classic widget controls.

  • elementor.site.capabilities

    Report experiments, Pro presence, registered element types, breakpoints, capabilities, and migration state for the target site.

  • elementor.templates.get

    Template content + settings.

  • elementor.templates.import

    Import a .json/.zip template (image sideload + id remap).

  • elementor.templates.insert_into_pagewrite action

    Paste a block into a document (ids minted fresh).

  • elementor.templates.list

    Template library list (paginated).

  • elementor.templates.save

    Persist a reusable block/page template (ids regenerated by Source_Local::save_item).

  • elementor.tools.get_schema

    Return the input/output schema + annotations for a named tool.

  • elementor.tools.invoke

    Invoke any catalog tool (incl. disabled) by name with a payload; mirrors the named tool's safety class + confirm gating.

  • elementor.tools.list_endpoints

    Enumerate every tool (incl. disabled) with namespace + safety class.

  • elementor.tools.search

    Progressive discovery of the full Elementor tool surface; returns matching tool names + schemas so advanced tools can be enabled on demand.

  • elementor.widget.insertwrite action

    Insert a node under a parent at an index (transactional, optimistic-lock + idempotency guarded).

  • elementor.widget.update_settingswrite action

    Patch 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

no findings
  • 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
Overall 77/100. Components that don't apply are left out of the denominator. Any critical finding is an F.RubricAppeal a findingJSON

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
Add to Cursor

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.

  1. Install the companion plugin on your WordPress site (zip from Releases; requires
  1. 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.

  1. 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 package

Running 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.