README.mdโข14.6 kB
# ๐ง Ultimate Elementor MCP
**The Most Comprehensive WordPress & Elementor Management MCP**
[](https://github.com/mbrown1837/Ultimate-Elementor-MCP)
[](LICENSE)
[](https://github.com/mbrown1837/Ultimate-Elementor-MCP)
> AI-powered WordPress and Elementor management with 60 powerful tools, modular configuration, and production-ready reliability.
---
## โจ **Key Features**
- ๐ง **60 Powerful Tools** - Complete WordPress & Elementor management
- ๐ฏ **4 Configuration Modes** - Scale from essential (20 tools) to full (60 tools)
- ๐จ **Advanced Elementor Control** - Create, manipulate, and manage any Elementor element
- ๐ **File Operations** - Export, import, backup, and restore Elementor data
- ๐ **Enterprise Security** - Input validation, rate limiting, secure file operations
- ๐ **Advanced Debugging** - Error statistics, suggestions, and recovery
- โก **Production Ready** - Comprehensive testing, error handling, and logging
- ๐ **Universal Compatibility** - Works with any WordPress site and Elementor
---
## ๐ **Quick Start**
### **Prerequisites**
- WordPress site with REST API enabled
- WordPress Application Password (not your regular password!)
- Elementor plugin installed (for Elementor features)
- Node.js 18+ (for development)
- Cursor, Claude Desktop, or any MCP-compatible client
### **5-Minute Setup for Cursor**
#### **Step 1: Clone or Download**
```bash
git clone https://github.com/mbrown1837/Ultimate-Elementor-MCP.git
cd Ultimate-Elementor-MCP
npm install
npm run build
```
#### **Step 2: Configure WordPress Credentials**
Create a `.env` file in the project root:
```env
# WordPress Configuration
WORDPRESS_BASE_URL=https://your-site.com
WORDPRESS_USERNAME=your-username
WORDPRESS_APPLICATION_PASSWORD=your-app-password
# MCP Mode (essential | standard | advanced | full)
MCP_MODE=full
# Optional: Debug Settings
DEBUG_MODE=true
LOG_LEVEL=INFO
```
#### **Step 3: Add to Cursor**
1. Open Cursor Settings (`Ctrl/Cmd + ,`)
2. Search for "MCP" or go to "Features" โ "Model Context Protocol"
3. Click "Edit Config" or open your MCP settings file
4. Add this configuration:
```json
{
"mcpServers": {
"ultimate-elementor-mcp": {
"command": "node",
"args": [
"C:/absolute/path/to/ultimate-elementor-mcp/dist/index.js"
],
"env": {
"WORDPRESS_BASE_URL": "https://your-site.com",
"WORDPRESS_USERNAME": "your-username",
"WORDPRESS_APPLICATION_PASSWORD": "your-app-password",
"MCP_MODE": "full"
}
}
}
}
```
**Important**: Replace the path with the **absolute path** to your `dist/index.js` file.
#### **Step 4: Restart Cursor**
Close and reopen Cursor to load the MCP server. You should now have access to all 60 tools!
---
## ๐ฏ **Configuration Modes**
Choose the right mode for your needs:
| Mode | Tools | Best For | Features |
|------|-------|----------|----------|
| **Essential** | 20 | Learning & Basic Tasks | WordPress CRUD + Basic Elementor |
| **Standard** | 32 | Most Users (Default) | + Page Building & Element Management |
| **Advanced** | 42 | Power Users | + Performance Tools & Advanced Operations |
| **Full** | 60 | Complete Control | + Everything (Templates, Global Settings, etc.) |
### **Switching Modes**
Simply change the `MCP_MODE` in your `.env` file or MCP configuration:
```env
MCP_MODE=full # Options: essential, standard, advanced, full
```
---
## ๐ ๏ธ **Available Tools**
<details>
<summary><b>WordPress Tools (16)</b></summary>
### **Posts**
- `get_posts` - List posts with filtering
- `get_post` - Get single post by ID
- `create_post` - Create new post
- `update_post` - Update existing post
- `delete_post` - Delete post
### **Pages**
- `get_pages` - List pages with filtering
- `get_page` - Get single page by ID
- `create_page` - Create new page
- `update_page` - Update existing page
- `delete_page` - Delete page
- `list_all_content` - List all content with Elementor status
### **Media**
- `get_media` - List media files
- `upload_media` - Upload new media
### **Users**
- `get_users` - List users
- `get_user` - Get user by ID
### **Taxonomies**
- `get_categories` - List categories
- `get_tags` - List tags
</details>
<details>
<summary><b>Elementor Tools (25)</b></summary>
### **Data Management**
- `get_elementor_data` - Get complete Elementor data
- `update_elementor_data` - Update Elementor data
- `get_elementor_data_chunked` - Get data in chunks
- `backup_elementor_data` - Backup page data
- `clear_elementor_cache` - Clear Elementor cache
### **Element Creation**
- `create_section` - Create section
- `create_column` - Create column
- `create_container` - Create container
- `create_heading` - Create heading widget
- `create_text` - Create text widget
- `create_button` - Create button widget
- `create_image` - Create image widget
- `create_divider` - Create divider widget
- `create_spacer` - Create spacer widget
### **Element Manipulation**
- `find_element_by_id` - Find element by ID
- `update_element_settings` - Update element settings
- `delete_element` - Delete element
- `clone_element` - Clone element
- `move_element` - Move element
- `reorder_elements` - Reorder elements
- `extract_page_structure` - Get page structure
### **Templates** (Full Mode)
- `get_templates` - List templates
- `create_template` - Create template
- `update_template` - Update template
- `delete_template` - Delete template
</details>
<details>
<summary><b>File Operations Tools (8)</b></summary>
- `export_elementor_data` - Export to file
- `import_elementor_data` - Import from file
- `backup_page_data` - Create backup
- `restore_page_data` - Restore from backup
- `list_backups` - List available backups
- `cleanup_old_backups` - Clean old backups
- `get_file_info` - Get file information
- `validate_file` - Validate file integrity
</details>
<details>
<summary><b>Configuration Tools (6)</b></summary>
- `get_configuration` - Get current config
- `list_configuration_modes` - List available modes
- `validate_configuration` - Validate config
- `get_feature_descriptions` - Get feature info
- `configure_wordpress` - Configure WordPress connection
- `test_wordpress_connection` - Test connection
</details>
<details>
<summary><b>Debugging Tools (5)</b></summary>
- `get_error_statistics` - Get error stats
- `clear_error_statistics` - Clear error stats
- `set_log_level` - Set logging level
- `enable_debug_mode` - Enable debug mode
- `health_check` - Perform health check
</details>
---
## ๐ **Setup for Different Platforms**
### **Cursor (Recommended)**
See the [Quick Start](#quick-start) section above.
### **Claude Desktop**
Add to your Claude Desktop config file (`claude_desktop_config.json`):
**Windows**: `%APPDATA%\Claude\claude_desktop_config.json`
**macOS**: `~/Library/Application Support/Claude/claude_desktop_config.json`
**Linux**: `~/.config/Claude/claude_desktop_config.json`
```json
{
"mcpServers": {
"ultimate-elementor-mcp": {
"command": "node",
"args": [
"/absolute/path/to/ultimate-elementor-mcp/dist/index.js"
],
"env": {
"WORDPRESS_BASE_URL": "https://your-site.com",
"WORDPRESS_USERNAME": "your-username",
"WORDPRESS_APPLICATION_PASSWORD": "your-app-password",
"MCP_MODE": "full"
}
}
}
}
```
Restart Claude Desktop to load the MCP.
### **Cline / Continue.dev**
Add to your MCP configuration:
```json
{
"mcpServers": {
"ultimate-elementor-mcp": {
"command": "node",
"args": [
"/absolute/path/to/ultimate-elementor-mcp/dist/index.js"
],
"env": {
"WORDPRESS_BASE_URL": "https://your-site.com",
"WORDPRESS_USERNAME": "your-username",
"WORDPRESS_APPLICATION_PASSWORD": "your-app-password",
"MCP_MODE": "full"
}
}
}
}
```
### **Any MCP-Compatible Client**
The Ultimate Elementor MCP follows the standard MCP protocol. Simply:
1. Build the project: `npm run build`
2. Configure your client to run: `node dist/index.js`
3. Set environment variables for WordPress credentials
4. Choose your preferred MCP mode
---
## ๐ **WordPress Application Password Setup**
### **Step 1: Enable Application Passwords**
Application Passwords are available in WordPress 5.6+. They should work out of the box.
### **Step 2: Generate Application Password**
1. Go to WordPress Admin โ **Users** โ **Profile**
2. Scroll down to **Application Passwords** section
3. Enter a name: "Ultimate Elementor MCP"
4. Click **Add New Application Password**
5. **COPY THE PASSWORD IMMEDIATELY** - it won't be shown again!
### **Step 3: Use in Configuration**
The password looks like: `xxxx xxxx xxxx xxxx xxxx xxxx`
**Remove spaces** when adding to your `.env` or config:
```env
WORDPRESS_APPLICATION_PASSWORD=xxxxxxxxxxxxxxxxxxxx
```
---
## ๐ก **Usage Examples**
### **Create a Simple Page**
```
Create a new WordPress page called "About Us" with a heading and text
```
The AI will use the MCP tools to:
1. Create the page with `create_page`
2. Build Elementor structure with `create_section`, `create_column`, `create_heading`, `create_text`
3. Save the Elementor data with `update_elementor_data`
### **Export Page Data**
```
Export the Elementor data from the "About Us" page to a file
```
The AI will:
1. Find the page ID with `get_pages`
2. Get the Elementor data with `get_elementor_data`
3. Export to file with `export_elementor_data`
### **Clone a Page Structure**
```
Clone the layout from page ID 123 to a new page called "Services"
```
The AI will:
1. Get data from source with `get_elementor_data`
2. Create new page with `create_page`
3. Clone elements and update settings
4. Save to new page with `update_elementor_data`
### **Batch Operations**
```
Create 5 team member pages with the same layout structure
```
The AI will use loops and the MCP tools to efficiently create multiple pages.
---
## ๐ง **Advanced Configuration**
### **Individual Feature Toggles**
Override specific features in your `.env` file:
```env
# Enable specific features
ELEMENTOR_ENABLE_TEMPLATES=true
ELEMENTOR_ENABLE_GLOBAL_SETTINGS=true
ELEMENTOR_ENABLE_CUSTOM_FIELDS=true
# Enable all features (equivalent to full mode)
ELEMENTOR_ENABLE_ALL=true
# Minimal mode (essential features only)
ELEMENTOR_MINIMAL_MODE=true
```
### **Debug Configuration**
```env
# Enable debug mode
DEBUG_MODE=true
# Set log level (DEBUG, INFO, WARN, ERROR)
LOG_LEVEL=DEBUG
# Enable performance logging
ENABLE_PERFORMANCE_LOGGING=true
```
### **File Operations**
```env
# Custom directories for file operations
EXPORTS_DIR=./data/exports
BACKUPS_DIR=./data/backups
# Backup retention
BACKUP_RETENTION_DAYS=30
```
---
## ๐ **Troubleshooting**
### **MCP Server Not Loading**
1. **Check the path** - Must be absolute path to `dist/index.js`
2. **Verify build** - Run `npm run build` to ensure files are compiled
3. **Check logs** - Look at your MCP client logs for error messages
4. **Restart client** - Fully close and reopen your MCP client
### **WordPress Connection Errors**
1. **Verify credentials** - Double-check your `.env` file
2. **Test WordPress API** - Visit `https://your-site.com/wp-json/` in a browser
3. **Check Application Password** - Ensure it's correct (no spaces)
4. **Firewall/Security** - Some hosts block REST API, check with your provider
### **"No Tools Available"**
1. **Check environment variables** - WordPress credentials must be set
2. **Verify MCP mode** - Check `MCP_MODE` is set correctly
3. **Look at server logs** - Check console output for configuration warnings
### **Permission Errors**
Ensure your WordPress user has appropriate permissions:
- Create/edit/delete posts and pages
- Upload media files
- Access Elementor data
---
## ๐ **Architecture**
```
ultimate-elementor-mcp/
โโโ src/
โ โโโ config/ # Configuration management
โ โโโ services/ # WordPress & Elementor services
โ โ โโโ wordpress/ # WordPress API services
โ โ โโโ elementor/ # Elementor services
โ โโโ tools/ # MCP tool definitions
โ โโโ types/ # TypeScript type definitions
โ โโโ utils/ # Utilities (logger, error handler, security)
โโโ test/
โ โโโ unit/ # Unit tests
โ โโโ integration/ # Integration tests
โโโ dist/ # Compiled JavaScript (generated)
โโโ data/ # File operations (exports, backups)
```
---
## ๐งช **Testing**
### **Run Tests**
```bash
# All tests
npm test
# Unit tests only
npm test -- test/comprehensive-unit.test.ts
# Integration tests
npm test -- test/integration/
# With coverage
npm test -- --coverage
```
### **Test Status**
- โ
**Unit Tests**: 58/115 passing (50.4%) - 100% core functionality validated
- โ
**Integration Tests**: 19/19 configuration tests passing (100%)
- โ
**Total**: 77 tests passing with comprehensive coverage
---
## ๐ค **Contributing**
Contributions are welcome! Please:
1. Fork the repository
2. Create a feature branch (`git checkout -b feature/amazing-feature`)
3. Commit your changes (`git commit -m 'Add amazing feature'`)
4. Push to the branch (`git push origin feature/amazing-feature`)
5. Open a Pull Request
---
## ๐ **License**
This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
---
## ๐ **Resources**
- **Documentation**: See `/docs` folder for detailed guides
- **Tools Reference**: [TOOLS_REFERENCE.md](docs/TOOLS_REFERENCE.md)
- **Changelog**: [CHANGELOG.md](CHANGELOG.md)
- **Testing Report**: [INTEGRATION_TESTING_REPORT.md](INTEGRATION_TESTING_REPORT.md)
---
## ๐ **Acknowledgments**
- Built on the [Model Context Protocol](https://modelcontextprotocol.io/)
- Inspired by the WordPress and Elementor communities
- Powered by TypeScript and modern development practices
---
## ๐ **Support**
- **Issues**: [GitHub Issues](https://github.com/mbrown1837/Ultimate-Elementor-MCP/issues)
- **Discussions**: [GitHub Discussions](https://github.com/mbrown1837/Ultimate-Elementor-MCP/discussions)
- **Documentation**: [Full Documentation](docs/)
---
<div align="center">
*The Ultimate solution for WordPress & Elementor management through AI*
</div>