MCP server for managing WordPress Elementor pages via the WordPress REST API.
-
Install dependencies:
npm install
-
Configure WordPress sites:
Copy
.env.exampleto.env:cp .env.example .env
Edit
.envand add your WordPress site details:WP_SITE_1_URL=https://yoursite.com WP_SITE_1_USERNAME=admin WP_SITE_1_APP_PASSWORD=your-app-password-hereFor multiple sites, add more entries:
WP_SITE_2_URL=https://anothersite.com WP_SITE_2_USERNAME=admin WP_SITE_2_APP_PASSWORD=another-app-password -
Generate WordPress Application Password:
- Log into your WordPress admin panel
- Go to Users → Profile
- Scroll to "Application Passwords"
- Create a new application password
- Copy the generated password (format:
xxxx xxxx xxxx xxxx xxxx xxxx)
npm startAdd to your Claude Desktop config file:
MacOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"wordpress-elementor": {
"command": "node",
"args": ["C:\\Users\\spenc\\WebstormProjects\\elementor-mcp\\index.js"]
}
}
}List all configured WordPress sites.
List pages from a WordPress site.
Parameters:
site_id(required): Site ID (e.g., 'site1')per_page(optional): Number of pages (default: 10, max: 100)search(optional): Search term
Get details of a specific page.
Parameters:
site_id(required): Site IDpage_id(required): WordPress page ID
Create a new WordPress page with Elementor.
Parameters:
site_id(required): Site IDtitle(required): Page titlestatus(optional): Page status (draft, publish, pending, private)elementor_data(optional): Elementor JSON data
Update an existing page.
Parameters:
site_id(required): Site IDpage_id(required): WordPress page IDtitle(optional): New titlestatus(optional): New statuselementor_data(optional): Updated Elementor JSON data
Get Elementor-specific metadata for a page.
Parameters:
site_id(required): Site IDpage_id(required): WordPress page ID
Ensure your WordPress site has:
- REST API enabled (enabled by default)
- Application Passwords enabled (WordPress 5.6+)
- Elementor plugin installed
- Never commit
.envfile (it's in.gitignore) - Application passwords are stored locally only
- Use HTTPS URLs for production sites