A WordPress plugin that extends the WordPress MCP Adapter to expose WPBakery and Uncode actions as MCP tools. This lets Codex, Claude Code, Claude Desktop, and other MCP clients read and modify page builder content programmatically.
- Create pages/posts with WPBakery shortcode content
- Read raw and rendered page content
- Replace/append/prepend page content
- Build shortcode strings from structured inputs
- Insert or remove shortcodes in page content
- List all shortcode tags used in a page
- Read and update Uncode post meta (
_uncode_*,uncode_*) - Read and update Uncode Theme Options (including custom CSS/JS)
- Compose a ready-made hero section in one call
- WordPress
6.9+ - PHP
8.0+ - WPBakery Page Builder active
- WordPress MCP Adapter active
- WordPress Abilities API (
wp_register_ability) available (WP 6.9+)
- This plugin does not create a custom auth layer.
- AI clients authenticate to WordPress MCP endpoint using Basic Auth + WordPress Application Password.
- Requests execute with the permissions of that WordPress user (for example
manage_options,edit_posts). - WordPress MCP Adapter handles MCP transport/session behavior.
- Copy this plugin folder into
wp-content/plugins/wpbakery-uncode-mcp. - Activate MCP Tools for WPBakery + Uncode.
- Ensure WPBakery and MCP Adapter are active.
- Create an Application Password in Users > Profile > Application Passwords.
Endpoint:
https://your-site.com/wp-json/mcp/wpbakery-uncode-mcp-server
Admin panel:
- Go to
Settings > WPBakery MCP Connectiontab: generate connection details for Codex, Claude Code, Cursor, and similar clientsToolstab: enable/disable individual MCP tools
- Activate WPBakery Page Builder, WordPress MCP Adapter, and this plugin.
- Create a WordPress Application Password for the user account you want AI to act as.
- Open
Settings > WPBakery MCP > Connection. - Enter username + application password and click Generate.
- Use the generated instructions that match your client:
- Codex/Cursor: paste the generated JSON into the MCP config those apps expect.
- Claude Code: run the generated
claude mcp add --transport http ... --header ...command.
- Reconnect/restart the AI client and confirm MCP tools are visible.
{
"mcpServers": {
"wpbakery-uncode-mcp": {
"type": "http",
"url": "https://your-site.com/wp-json/mcp/wpbakery-uncode-mcp-server",
"headers": {
"Authorization": "Basic BASE64_ENCODED_CREDENTIALS"
}
}
}
}Claude Code works best with its official CLI registration flow:
claude mcp add --transport http wpbakery-uncode-mcp \
https://your-site.com/wp-json/mcp/wpbakery-uncode-mcp-server \
--header "Authorization: Basic BASE64_ENCODED_CREDENTIALS"Then restart Claude Code and confirm the MCP tools appear.
{
"mcpServers": {
"wpbakery-uncode-mcp": {
"type": "stdio",
"command": "node",
"args": ["/path/to/wp-content/plugins/wpbakery-uncode-mcp/bin/mcp-proxy.mjs"],
"env": {
"WP_URL": "https://your-site.com",
"WP_USERNAME": "admin",
"WP_APP_PASSWORD": "xxxx xxxx xxxx xxxx xxxx xxxx"
}
}
}
}Claude Desktop support for remote MCP servers may differ from Claude Code. This plugin uses Basic Auth with a custom Authorization header, so the most reliable setup today is Claude Code, Codex, Cursor, or another MCP client that supports custom HTTP headers for remote servers.
wpbakery-uncode-mcp/create-pagewpbakery-uncode-mcp/get-pagewpbakery-uncode-mcp/update-page-contentwpbakery-uncode-mcp/build-shortcodewpbakery-uncode-mcp/insert-shortcodewpbakery-uncode-mcp/remove-shortcodewpbakery-uncode-mcp/list-shortcodeswpbakery-uncode-mcp/get-wpbakery-inner-api-statuswpbakery-uncode-mcp/list-wpbakery-elementswpbakery-uncode-mcp/get-wpbakery-element-definitionwpbakery-uncode-mcp/update-wpbakery-element-paramwpbakery-uncode-mcp/set-wpbakery-element-visibilitywpbakery-uncode-mcp/set-wpbakery-output-debugwpbakery-uncode-mcp/get-uncode-metawpbakery-uncode-mcp/update-uncode-metawpbakery-uncode-mcp/get-theme-optionswpbakery-uncode-mcp/update-theme-optionswpbakery-uncode-mcp/update-theme-css-jswpbakery-uncode-mcp/discover-theme-option-keyswpbakery-uncode-mcp/get-theme-option-pathwpbakery-uncode-mcp/update-theme-option-pathwpbakery-uncode-mcp/upsert-theme-css-blockwpbakery-uncode-mcp/update-navigation-stylewpbakery-uncode-mcp/update-menu-layoutwpbakery-uncode-mcp/update-megamenu-visualswpbakery-uncode-mcp/update-menu-cta-settingswpbakery-uncode-mcp/update-logo-settingswpbakery-uncode-mcp/update-logo-linkswpbakery-uncode-mcp/sync-logo-variantswpbakery-uncode-mcp/validate-theme-mappingwpbakery-uncode-mcp/apply-brand-setupwpbakery-uncode-mcp/apply-style-presetswpbakery-uncode-mcp/preview-preset-impactwpbakery-uncode-mcp/export-theme-options-diffwpbakery-uncode-mcp/restore-last-snapshotwpbakery-uncode-mcp/run-theme-ops-batchwpbakery-uncode-mcp/update-header-layoutwpbakery-uncode-mcp/update-footer-layoutwpbakery-uncode-mcp/update-global-typographywpbakery-uncode-mcp/create-theme-options-snapshotwpbakery-uncode-mcp/list-theme-options-snapshotswpbakery-uncode-mcp/restore-theme-options-snapshotwpbakery-uncode-mcp/compose-hero-section
- Uncode-specific tools intentionally restrict writable meta keys to
uncode_and_uncode_prefixes. - This keeps remote MCP mutations scoped to theme-related options and reduces accidental global/meta corruption.
- Theme Options tools require
manage_optionscapability and can auto-detect common option stores (uncode_theme_options,ot_options,uncode_options).
- Call
discover-theme-option-keysto identify real keys on your site (CSS/JS/navigation/layout buckets). - Use
get-theme-option-pathto inspect the exact nested value before changing it. - Use
update-theme-option-pathfor targeted nested changes (setcreate_missing=trueonly when needed). - Use
upsert-theme-css-blockfor CSS sections you want to maintain over time without overwriting everything.