elementor-cli

sorakiu/elementor-cli
0 starsCommunity

Install to Claude Code

This server doesn't publish a one-line install command. Follow the setup in the source repository.

Summary

CLI and MCP server for reading and writing Elementor page data on WordPress.

README.md

elementor-cli

CLI and MCP server for reading and writing Elementor page data on WordPress.

Installation

npm install -g elementor-cli
# or run without installing:
npx elementor-cli <command>

Credentials

Create a .elementor-cli.env file (or export variables in your shell):

cp .elementor-cli.env.example .elementor-cli.env
# Edit with your WordPress URL and application password

Generate an application password: WordPress Admin → Users → Profile → Application Passwords.

Environment variables:

| Variable | Description | |-------------------|-----------------------------------------------| | WP_URL | Full URL of your WordPress site | | WP_USER | WordPress username | | WP_APP_PASSWORD | Application password (spaces are fine) | | WP_PATH | WordPress root on the server (SSH mode only, default /var/www/html) |

Commands

Connection

elementor connection test

Pages

# List all Elementor pages
elementor pages list
elementor pages list --status draft
elementor pages list --format json

# Show element tree for a page
elementor pages get 42
elementor pages get 42 --format json

# Search elements by text content
elementor pages search 42 "Welcome"

# Find and replace text across a page
elementor pages replace 42 "Old Company" "New Company"
elementor pages replace 42 "Old" "New" --dry-run

# Restore from backup
elementor pages restore 42
elementor pages restore 42 --backup .elementor-backups/42-2024-01-01T12-00-00.json

Widgets

# Inspect a widget's settings
elementor widgets get 42 abc123
elementor widgets get 42 widget:heading[0] --format json

# Update widget settings (key=value pairs)
elementor widgets set 42 abc123 title="New Heading"
elementor widgets set 42 abc123 title="Hello" header_size=h1 --dry-run

SSH+WP-CLI transport

For servers that restrict REST API access, use SSH+WP-CLI:

elementor pages list --ssh user@yourserver.com
elementor widgets set 42 abc123 title="Hello" --ssh user@yourserver.com

Claude Code MCP Integration

Add the MCP server so Claude Code can call commands autonomously:

elementor mcp config

Paste the output into your Claude Code mcp.json (or ~/.config/claude/mcp.json):

{
  "mcpServers": {
    "elementor-cli": {
      "command": "npx",
      "args": ["elementor-cli", "mcp", "serve"],
      "env": {
        "WP_URL": "${WP_URL}",
        "WP_USER": "${WP_USER}",
        "WP_APP_PASSWORD": "${WP_APP_PASSWORD}"
      }
    }
  }
}

Available MCP tools: elementor_connection_test, elementor_pages_list, elementor_pages_get, elementor_pages_search, elementor_pages_replace, elementor_pages_restore, elementor_widgets_get, elementor_widgets_set.

Schema

The committed src/schema/elementor-schema.json covers the free Elementor plugin widgets only (GPL-licensed, safe to redistribute).

Elementor Pro users: place your ./plugins/elementor-pro/ directory in the project root and run:

npm run update-schema

This regenerates the schema locally with Pro widget support. The ./plugins/ directory is gitignored — Pro source is never committed.

Development

npm install
npm run typecheck
npm test
npm run lint

Related MCP servers

Browse all →