# Ultimate Elementor MCP - Tools Reference
## Overview
This document provides a comprehensive reference for all 41 MCP tools available in the Ultimate Elementor MCP.
## Tool Count by Category
- **WordPress Tools**: 16 tools
- **Elementor Tools**: 25 tools
- **Total**: 41 tools
---
## WordPress Tools (16 tools)
### Posts Management (4 tools)
#### `get_posts`
Retrieve WordPress posts with optional filtering.
**Parameters**:
- `per_page` (number, default: 10) - Number of posts to retrieve
- `status` (string, default: 'publish') - Post status filter
- `search` (string) - Search term to filter posts
- `author` (number) - Filter by author ID
**Returns**: List of posts with pagination info
---
#### `get_post`
Get a specific WordPress post by ID.
**Parameters**:
- `id` (number, required) - Post ID to retrieve
**Returns**: Post object with all fields
---
#### `create_post`
Create a new WordPress post.
**Parameters**:
- `title` (string, required) - Post title
- `content` (string, required) - Post content (HTML)
- `status` (string, default: 'draft') - Post status
- `excerpt` (string) - Post excerpt
- `categories` (array of numbers) - Category IDs
- `tags` (array of numbers) - Tag IDs
**Returns**: Created post ID and details
---
#### `update_post`
Update an existing WordPress post.
**Parameters**:
- `id` (number, required) - Post ID to update
- `title` (string) - Post title
- `content` (string) - Post content
- `status` (string) - Post status
- `excerpt` (string) - Post excerpt
**Returns**: Updated post object
---
### Pages Management (5 tools)
#### `get_pages`
Retrieve WordPress pages.
**Parameters**:
- `per_page` (number, default: 10) - Number of pages
- `status` (string, default: 'publish') - Page status filter
**Returns**: List of pages with pagination
---
#### `create_page`
Create a new WordPress page.
**Parameters**:
- `title` (string, required) - Page title
- `content` (string, default: '') - Page content
- `status` (string, default: 'draft') - Page status
- `parent` (number) - Parent page ID
**Returns**: Created page ID
---
#### `update_page`
Update an existing WordPress page.
**Parameters**:
- `id` (number, required) - Page ID
- `title` (string) - Page title
- `content` (string) - Page content
- `status` (string) - Page status
**Returns**: Updated page object
---
#### `list_all_content`
List all posts and pages with their IDs and Elementor status.
**Parameters**:
- `per_page` (number, default: 50) - Items per type
- `include_all_statuses` (boolean, default: false) - Include drafts/private
**Returns**: Combined list of posts and pages
---
### Media Management (2 tools)
#### `get_media`
Get WordPress media library items.
**Parameters**:
- `per_page` (number, default: 10) - Number of items
- `media_type` (string) - Filter by type (image, video, audio)
**Returns**: List of media items
---
#### `upload_media`
Upload media file to WordPress.
**Parameters**:
- `file_path` (string, required) - Path to file
- `title` (string) - Media title
- `alt_text` (string) - Alternative text
**Returns**: Uploaded media ID and URL
---
### User Management (2 tools)
#### `get_users`
Get WordPress users.
**Parameters**:
- `per_page` (number, default: 10) - Number of users
- `roles` (array of strings) - Filter by roles
**Returns**: List of users
---
#### `create_user`
Create a new WordPress user.
**Parameters**:
- `username` (string, required) - Username
- `email` (string, required) - Email address
- `password` (string, required) - Password
- `roles` (array of strings) - User roles
**Returns**: Created user ID
---
### Taxonomy Management (4 tools)
#### `get_categories`
Get WordPress categories.
**Parameters**:
- `per_page` (number, default: 10) - Number of categories
**Returns**: List of categories
---
#### `create_category`
Create a new category.
**Parameters**:
- `name` (string, required) - Category name
- `description` (string) - Description
- `parent` (number) - Parent category ID
**Returns**: Created category ID
---
#### `get_tags`
Get WordPress tags.
**Parameters**:
- `per_page` (number, default: 10) - Number of tags
**Returns**: List of tags
---
#### `create_tag`
Create a new tag.
**Parameters**:
- `name` (string, required) - Tag name
- `description` (string) - Description
**Returns**: Created tag ID
---
## Elementor Tools (25 tools)
### Basic Elementor Data Operations (5 tools)
#### `get_elementor_data`
Get complete Elementor data for a page.
**Parameters**:
- `post_id` (number, required) - Post/Page ID
**Returns**: Complete Elementor data structure
---
#### `update_elementor_data`
Update complete Elementor data for a page.
**Parameters**:
- `post_id` (number, required) - Post/Page ID
- `elementor_data` (string, required) - Elementor data as JSON string
**Returns**: Success message
---
#### `get_elementor_data_chunked`
Get Elementor data in chunks for large pages.
**Parameters**:
- `post_id` (number, required) - Post/Page ID
- `chunk_size` (number, default: 50) - Elements per chunk
**Returns**: Chunked data with metadata
---
#### `backup_elementor_data`
Create backup of Elementor data.
**Parameters**:
- `post_id` (number, required) - Post/Page ID
**Returns**: Backup with timestamp and checksum
---
#### `clear_elementor_cache`
Clear Elementor cache for performance.
**Parameters**: None
**Returns**: Success message
---
### Page Structure (1 tool)
#### `get_page_structure`
Get hierarchical structure of a page.
**Parameters**:
- `post_id` (number, required) - Post/Page ID
- `include_settings` (boolean, default: false) - Include settings
**Returns**: Flattened tree structure
---
### Section & Container Creation (2 tools)
#### `create_elementor_section`
Create a new Elementor section with columns.
**Parameters**:
- `post_id` (number, required) - Post/Page ID
- `columns` (number, default: 1) - Number of columns
- `position` (number) - Insert position
- `section_settings` (object) - Section settings
**Returns**: Created section ID
---
#### `create_elementor_container`
Create a new Elementor container (Flexbox).
**Parameters**:
- `post_id` (number, required) - Post/Page ID
- `position` (number) - Insert position
- `container_settings` (object) - Container settings
**Returns**: Created container ID
---
### Widget Management (6 tools)
#### `add_widget_to_section`
Add a widget to a section or column.
**Parameters**:
- `post_id` (number, required) - Post/Page ID
- `parent_id` (string, required) - Parent element ID
- `widget_type` (string, required) - Widget type
- `widget_settings` (object) - Widget settings
- `position` (number) - Position in parent
**Returns**: Created widget ID
---
#### `clone_widget`
Clone an existing widget.
**Parameters**:
- `post_id` (number, required) - Post/Page ID
- `widget_id` (string, required) - Widget to clone
- `target_parent_id` (string) - Target parent
- `position` (number) - Position in target
**Returns**: Cloned widget ID
---
#### `add_heading_widget`
Add a pre-configured heading widget.
**Parameters**:
- `post_id` (number, required) - Post/Page ID
- `parent_id` (string, required) - Parent element ID
- `text` (string, required) - Heading text
- `tag` (string, default: 'h2') - HTML tag (h1-h6)
- `position` (number) - Position in parent
**Returns**: Created widget ID
---
#### `add_text_widget`
Add a text editor widget.
**Parameters**:
- `post_id` (number, required) - Post/Page ID
- `parent_id` (string, required) - Parent element ID
- `content` (string, required) - Text content (HTML supported)
- `position` (number) - Position in parent
**Returns**: Created widget ID
---
#### `add_button_widget`
Add a button widget.
**Parameters**:
- `post_id` (number, required) - Post/Page ID
- `parent_id` (string, required) - Parent element ID
- `text` (string, required) - Button text
- `link` (string, default: '#') - Button URL
- `position` (number) - Position in parent
**Returns**: Created widget ID
---
#### `add_image_widget`
Add an image widget.
**Parameters**:
- `post_id` (number, required) - Post/Page ID
- `parent_id` (string, required) - Parent element ID
- `image_url` (string, required) - Image URL
- `image_id` (number) - WordPress media ID
- `position` (number) - Position in parent
**Returns**: Created widget ID
---
### Element Manipulation (4 tools)
#### `update_element_settings`
Update settings for any element.
**Parameters**:
- `post_id` (number, required) - Post/Page ID
- `element_id` (string, required) - Element ID
- `settings` (object, required) - Settings to update
**Returns**: Success message
---
#### `delete_elementor_element`
Delete an element (section, column, or widget).
**Parameters**:
- `post_id` (number, required) - Post/Page ID
- `element_id` (string, required) - Element to delete
**Returns**: Success message
---
#### `move_element`
Move an element to a new position.
**Parameters**:
- `post_id` (number, required) - Post/Page ID
- `element_id` (string, required) - Element to move
- `target_parent_id` (string) - Target parent ID
- `position` (number, required) - Position in target
**Returns**: Success message
---
#### `reorder_elements`
Change the order of elements.
**Parameters**:
- `post_id` (number, required) - Post/Page ID
- `parent_id` (string) - Parent element ID (null for root)
- `new_order` (array of strings, required) - Element IDs in new order
**Returns**: Success message
---
### Element Search (2 tools)
#### `find_elements_by_type`
Find all elements of a specific type.
**Parameters**:
- `post_id` (number, required) - Post/Page ID
- `element_type` (string, required) - Type (section, column, widget, container)
**Returns**: Array of matching elements
---
#### `find_widgets_by_type`
Find all widgets of a specific type.
**Parameters**:
- `post_id` (number, required) - Post/Page ID
- `widget_type` (string, required) - Widget type
**Returns**: Array of matching widgets
---
### Template Management (3 tools)
#### `get_elementor_templates`
Get Elementor templates.
**Parameters**:
- `per_page` (number, default: 10) - Number of templates
- `type` (string) - Template type (page, section, widget)
**Returns**: List of templates
---
#### `create_elementor_template`
Create a new Elementor template.
**Parameters**:
- `title` (string, required) - Template title
- `type` (string, required) - Template type
- `content` (string, required) - Template content as JSON
**Returns**: Created template ID
---
#### `apply_template_to_page`
Apply template to a page.
**Parameters**:
- `page_id` (number, required) - Target page ID
- `template_id` (number, required) - Template to apply
**Returns**: Success message
---
### Advanced Operations (2 tools)
#### `copy_element_settings`
Copy settings from one element to another.
**Parameters**:
- `post_id` (number, required) - Post/Page ID
- `source_element_id` (string, required) - Source element
- `target_element_id` (string, required) - Target element
- `settings_keys` (array of strings) - Specific settings to copy
**Returns**: Success message
---
#### `duplicate_section`
Duplicate an existing section.
**Parameters**:
- `post_id` (number, required) - Post/Page ID
- `section_id` (string, required) - Section to duplicate
- `position` (number) - Insert position
**Returns**: Duplicated section ID
---
## Configuration Modes
### Essential Mode (20 tools)
- All WordPress CRUD operations
- Basic Elementor data operations
- No advanced features
### Standard Mode (32 tools)
- All Essential tools
- Section/container creation
- Widget management
- Element manipulation
- Page structure tools
### Advanced Mode (39 tools)
- All Standard tools
- Template management
- Advanced search
- Performance optimization
### Full Mode (41 tools)
- All Advanced tools
- Global settings management
- Custom fields integration
- Revision history (when available)
---
## Usage Examples
### Creating a Complete Page
```javascript
// 1. Create a new page
create_page({ title: "My New Page", status: "draft" })
// 2. Create a section with 2 columns
create_elementor_section({ post_id: 123, columns: 2 })
// 3. Add a heading to the first column
add_heading_widget({
post_id: 123,
parent_id: "column_id",
text: "Welcome",
tag: "h1"
})
// 4. Add text content
add_text_widget({
post_id: 123,
parent_id: "column_id",
content: "<p>This is my content</p>"
})
// 5. Publish the page
update_page({ id: 123, status: "publish" })
```
### Managing Elements
```javascript
// Find all heading widgets
find_widgets_by_type({ post_id: 123, widget_type: "heading" })
// Move an element
move_element({
post_id: 123,
element_id: "widget_123",
target_parent_id: "column_456",
position: 0
})
// Duplicate a section
duplicate_section({ post_id: 123, section_id: "section_789" })
// Copy settings between elements
copy_element_settings({
post_id: 123,
source_element_id: "widget_123",
target_element_id: "widget_456"
})
```
### Working with Templates
```javascript
// Get available templates
get_elementor_templates({ per_page: 20, type: "page" })
// Apply a template
apply_template_to_page({ page_id: 123, template_id: 456 })
// Create your own template
create_elementor_template({
title: "My Template",
type: "section",
content: "{...}"
})
```
---
## Error Handling
All tools implement comprehensive error handling:
- **Authentication Errors**: Clear messages about credential issues
- **Validation Errors**: Detailed information about invalid inputs
- **Network Errors**: Connection and timeout handling
- **WordPress API Errors**: HTTP status codes and WordPress error messages
- **Elementor Data Errors**: Parsing and structure validation
Error responses include:
- Error message
- Error category
- Error code
- Detailed context
- Suggested fixes (when applicable)
---
## Performance Considerations
- **Chunked Data**: Use `get_elementor_data_chunked` for large pages
- **Backup Before Changes**: Use `backup_elementor_data` before major modifications
- **Cache Management**: Use `clear_elementor_cache` after bulk operations
- **Batch Operations**: Group multiple changes when possible
---
## Best Practices
1. **Always backup before major changes**: Use `backup_elementor_data`
2. **Get page structure first**: Use `get_page_structure` to understand layout
3. **Use pre-built widgets**: Faster than creating custom widgets
4. **Test with drafts**: Use `status: "draft"` until ready
5. **Check Elementor data**: Verify with `get_elementor_data` after changes
6. **Clear cache**: Clear cache after bulk operations for best performance
---
## Support
For issues, questions, or feature requests:
- Check the troubleshooting guide
- Review error messages for details
- Use debug mode for detailed logging
- Check WordPress and Elementor documentation
---
## Version History
- **v1.0.0**: Initial release with 41 tools
- 16 WordPress tools
- 25 Elementor tools
- Full CRUD operations
- Template management
- Advanced manipulation features