v1.3.0 — Page builders, full WooCommerce operations, site speed, robust errors
Major release. 55 → 140 tools. Page-builder aware editing, complete WooCommerce store operations, a site-speed audit and optimiser, and a structured error-handling system.
Page builders (new)
A WordPress page is only "HTML in post_content" on a classic site. Elementor keeps a JSON tree in post meta, Gutenberg keeps block comments in the content, Divi and WPBakery keep nested shortcodes. Overwriting post_content on any of those either does nothing or destroys the layout.
So the plugin now detects what actually built a page and edits it in that builder's own structure.
detect_page_builder— which builder renders this page, and whether overwriting the body is safeget_page_structure— the page as an addressable tree of sections, widgets and blocksedit_page_element— change one heading, button, link or image in place; the builder's CSS cache is regeneratedinsert_page_section,delete_page_element,list_builder_templates,manage_global_styles,render_page_preview
Full read/write for Elementor and Gutenberg blocks; text and attribute editing for Divi and WPBakery; read support for Beaver Builder, Oxygen, Bricks, Breakdance, SiteOrigin.
WooCommerce — complete store operations
Catalogue (26 tools): products of any type with the full field set, variations including generate_product_variations, global attributes and their terms, categories with images and SEO, image and gallery management, catalogue-wide repricing and scheduled sales, inventory control, an inventory report, coupons, whitelisted store settings, and sales reporting.
Orders & customers (8 tools): a separate wc_orders group, off by default — orders, order notes, refunds, customers, retention analysis. It carries personal data and can move money, so a catalogue or SEO engagement never gets it. refund_order records a manual refund unless via_gateway=true and never exceeds the refundable balance.
Performance — "make my website faster"
performance_audit— measures the live page (response time, HTML weight, render-blocking scripts, compression, cache headers), the platform (PHP version, object cache, OPcache, caching plugin) and the database (autoload bloat, revisions, transients, orphaned meta) → a ranked fix list and a scoreoptimize_site—preset=safeorpreset=aggressive, dry run by default, every flag reversibledatabase_cleanup,clear_cache,image_optimization_report,analyze_page_speed,list_autoloaded_options
Appearance (new)
Navigation menus, widgets and sidebars, customizer theme mods, and site identity — title, tagline, logo, favicon, timezone, front page.
Robust error handling
Every failure returns structured JSON — a stable code, a message, an actionable hint, and details — instead of a bare sentence.
- Arguments validated and coerced against each tool's schema before the handler runs
- PHP warnings raised during a call captured and returned alongside the result
- A shutdown guard turns a fatal into a readable JSON-RPC error rather than a blank 500
- Rolling error log, readable with
get_error_log,mcp_status, and a panel on the settings screen - PHP is parsed before every file write and refused if it would not compile — a fatal in a theme file would otherwise take down the site and this endpoint
- Automatic backups on every overwrite and delete, restorable with
restore_file
Also new
Content: bulk updates, dry-run search and replace, duplication, revisions, comment moderation, media management. Site management: plugin and theme updates and deletion, user CRUD, cron inspection, permalinks. Filesystem: search_files, copy_file, file_info, create_child_theme.
Fixes
- Redirects to another domain are honoured instead of bouncing to
wp-admin - SERP length checks count characters, not bytes — non-Latin meta descriptions are no longer flagged as too long
- Word counts understand CJK, Devanagari, Cyrillic and Arabic, so non-English pages stop reading as thin content
- Order status handling used
ltrimwith a character list, turningcompletedintoompleted install_plugingoes through the core upgrader instead of hand-rolled zip extractionsql_executeblocks SQL-level file I/O and requires confirmation forDROP,TRUNCATEand unboundedDELETE/UPDATE;describe_tablesresolves table names against the real table list- URL arguments reaching
wp_remote_getare validated, so the measurement and preview tools cannot probe localhost or private ranges seo_auditstreams post IDs instead of loading thousands of full objects into memory- Sales and customer reports are bounded rather than unlimited
- Unreadable directories no longer abort a recursive file scan
- The Heartbeat throttle hooked
initfrom withininitand never fired
Upgrading
Drop-in. New capability groups default sensibly: Page builders, Performance and Appearance on; WooCommerce orders off alongside Site Management, Filesystem and Raw Database. Tools that write site-wide — bulk_update_products, search_replace_content, optimize_site, database_cleanup — default to dry_run=true.
Requires WordPress 5.6+ and PHP 7.4+.
Install: download wordpress-mcp.zip below and upload it via Plugins → Add New → Upload.