Ultimate Elementor MCP
Enables comprehensive WordPress and Elementor management through 60 powerful tools with modular configuration modes. Supports content creation, page building, element manipulation, file operations, and template management with enterprise-grade security and debugging capabilities.
README
🔧 Ultimate Elementor MCP
The Most Comprehensive WordPress & Elementor Management 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
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:
# 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
- Open Cursor Settings (
Ctrl/Cmd + ,) - Search for "MCP" or go to "Features" → "Model Context Protocol"
- Click "Edit Config" or open your MCP settings file
- Add this configuration:
{
"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:
MCP_MODE=full # Options: essential, standard, advanced, full
🛠️ Available Tools
<details> <summary><b>WordPress Tools (16)</b></summary>
Posts
get_posts- List posts with filteringget_post- Get single post by IDcreate_post- Create new postupdate_post- Update existing postdelete_post- Delete post
Pages
get_pages- List pages with filteringget_page- Get single page by IDcreate_page- Create new pageupdate_page- Update existing pagedelete_page- Delete pagelist_all_content- List all content with Elementor status
Media
get_media- List media filesupload_media- Upload new media
Users
get_users- List usersget_user- Get user by ID
Taxonomies
get_categories- List categoriesget_tags- List tags
</details>
<details> <summary><b>Elementor Tools (25)</b></summary>
Data Management
get_elementor_data- Get complete Elementor dataupdate_elementor_data- Update Elementor dataget_elementor_data_chunked- Get data in chunksbackup_elementor_data- Backup page dataclear_elementor_cache- Clear Elementor cache
Element Creation
create_section- Create sectioncreate_column- Create columncreate_container- Create containercreate_heading- Create heading widgetcreate_text- Create text widgetcreate_button- Create button widgetcreate_image- Create image widgetcreate_divider- Create divider widgetcreate_spacer- Create spacer widget
Element Manipulation
find_element_by_id- Find element by IDupdate_element_settings- Update element settingsdelete_element- Delete elementclone_element- Clone elementmove_element- Move elementreorder_elements- Reorder elementsextract_page_structure- Get page structure
Templates (Full Mode)
get_templates- List templatescreate_template- Create templateupdate_template- Update templatedelete_template- Delete template
</details>
<details> <summary><b>File Operations Tools (8)</b></summary>
export_elementor_data- Export to fileimport_elementor_data- Import from filebackup_page_data- Create backuprestore_page_data- Restore from backuplist_backups- List available backupscleanup_old_backups- Clean old backupsget_file_info- Get file informationvalidate_file- Validate file integrity
</details>
<details> <summary><b>Configuration Tools (6)</b></summary>
get_configuration- Get current configlist_configuration_modes- List available modesvalidate_configuration- Validate configget_feature_descriptions- Get feature infoconfigure_wordpress- Configure WordPress connectiontest_wordpress_connection- Test connection
</details>
<details> <summary><b>Debugging Tools (5)</b></summary>
get_error_statistics- Get error statsclear_error_statistics- Clear error statsset_log_level- Set logging levelenable_debug_mode- Enable debug modehealth_check- Perform health check
</details>
📖 Setup for Different Platforms
Cursor (Recommended)
See the 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
{
"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:
{
"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:
- Build the project:
npm run build - Configure your client to run:
node dist/index.js - Set environment variables for WordPress credentials
- 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
- Go to WordPress Admin → Users → Profile
- Scroll down to Application Passwords section
- Enter a name: "Ultimate Elementor MCP"
- Click Add New Application Password
- 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:
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:
- Create the page with
create_page - Build Elementor structure with
create_section,create_column,create_heading,create_text - 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:
- Find the page ID with
get_pages - Get the Elementor data with
get_elementor_data - 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:
- Get data from source with
get_elementor_data - Create new page with
create_page - Clone elements and update settings
- 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:
# 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
# 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
# Custom directories for file operations
EXPORTS_DIR=./data/exports
BACKUPS_DIR=./data/backups
# Backup retention
BACKUP_RETENTION_DAYS=30
🐛 Troubleshooting
MCP Server Not Loading
- Check the path - Must be absolute path to
dist/index.js - Verify build - Run
npm run buildto ensure files are compiled - Check logs - Look at your MCP client logs for error messages
- Restart client - Fully close and reopen your MCP client
WordPress Connection Errors
- Verify credentials - Double-check your
.envfile - Test WordPress API - Visit
https://your-site.com/wp-json/in a browser - Check Application Password - Ensure it's correct (no spaces)
- Firewall/Security - Some hosts block REST API, check with your provider
"No Tools Available"
- Check environment variables - WordPress credentials must be set
- Verify MCP mode - Check
MCP_MODEis set correctly - 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
# 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:
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
📄 License
This project is licensed under the MIT License - see the LICENSE file for details.
🔗 Resources
- Documentation: See
/docsfolder for detailed guides - Tools Reference: TOOLS_REFERENCE.md
- Changelog: CHANGELOG.md
- Testing Report: INTEGRATION_TESTING_REPORT.md
🙏 Acknowledgments
- Built on the Model Context Protocol
- Inspired by the WordPress and Elementor communities
- Powered by TypeScript and modern development practices
📞 Support
- Issues: GitHub Issues
- Discussions: GitHub Discussions
- Documentation: Full Documentation
<div align="center">
The Ultimate solution for WordPress & Elementor management through AI
</div>
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.