# Royal MCP Pro Documentation

> Royal MCP Pro documentation: bulk Divi, Elementor, and WooCommerce workflows, cross-plugin composers, a universal audit log, and 72h undo on every operation.

- Canonical: <https://royalplugins.com/support/royal-mcp-pro/>
- Last updated: 2026-08-07
- HTML version: <https://royalplugins.com/support/royal-mcp-pro/>

---

Agency-scale WordPress AI automation. Everything Royal MCP Free does, plus 79 Pro-tier tools for bulk Divi / Elementor / WooCommerce workflows, ACF Setup Suite, cross-plugin composers, universal audit log, and 72-168 hour reversibility on every destructive operation.

New here?

Start with [**Getting Started**](https://royalplugins.com/support/royal-mcp-pro/getting-started/) for installation, license activation, and your first Pro tool call. Then browse [the six Pro pillars](#pillars) below.

## What Royal MCP Pro Adds

Royal MCP Pro bundles the free codebase and adds a Pro tier of tools designed for agencies and power users running WordPress work at scale. Every Free tool continues to work exactly as before — Pro is net-new capability, not features held back.

### The six Pro pillars

[8 tools

#### Divi Pro Tools

Clone pages, bulk image swaps, library CRUD, D5 preset ops, and a Divi 4 → 5 migration prep tool that audits + backs up content before you click Divi's own Migrate button. First-class support for both Divi 4 and Divi 5.

Read docs →](https://royalplugins.com/support/royal-mcp-pro/divi-tools/)
[9 tools

#### Elementor Pro Depth

Widget CRUD from MCP, template clone-and-retarget, theme builder ops, bulk setting replacement, and display-condition management.

Read docs →](https://royalplugins.com/support/royal-mcp-pro/elementor-pro-tools/)
[6 tools

#### WooCommerce Bulk Ops

Bulk price updates, stock changes, product edits, category assignment, order status changes, deletes. Two-step confirm on bulk deletes above 10 products, plus an active-subscriptions safety guard.

Read docs →](https://royalplugins.com/support/royal-mcp-pro/woocommerce-bulk-tools/)
[4 tools

#### Cross-plugin Composers

Multi-plugin workflows in one call: `wp_prepare_for_launch`, `wp_publish_and_promote_pro`, `wp_monthly_maintenance_report`, `wp_migrate_theme_assets`.

Read docs →](https://royalplugins.com/support/royal-mcp-pro/cross-plugin-composers/)
[11 tools

#### SEO Agency Suite

Bulk SEO audit, Yoast / RankMath / SEOPress / AIOSEO / SEObolt bulk-update wrappers, widget bulk ops, Redirection import/export.

Read docs →](https://royalplugins.com/support/royal-mcp-pro/seo-agency-suite/)
[Pro-only capability

#### Audit Log & Undo

Every Pro operation logged with per-row detail. 72-hour undo tokens on every destructive tool. Full recovery path even after an "oops" moment.

Learn more ↓](#audit-log)

## Universal Audit Log

Every Pro tool call — successful, errored, or undone — writes a row to the Universal Audit Log. Free-tier tools also write to the log when Pro is active on the same site. The result is a complete, filterable, exportable trail of every AI-driven change to your site.

### What's captured

- **Who** — WP user + auth method (API key or OAuth) + session identifier
- **What** — tool name, full serialized arguments (sensitive fields scrubbed), affected object type + ID
- **When** — timestamp, response status (success / error / undone), tool response summary
- **Undo state** — token, expiration, whether the operation was later reversed
- **Client fingerprint** — Claude Desktop / Cursor / ChatGPT / etc. with version

### Admin viewer

The audit log lives at **Royal MCP Pro → Audit Log** in wp-admin. Paginated 50 rows per page. Filters for user, tool, date range, response status, and undo state. Per-row actions include "View full args" (JSON viewer) and "Undo this operation" for rows still within the 72-hour undo window.

### Export

Filtered results export to CSV. The export is safe against CSV-injection attacks — leading `=`, `+`, `-`, and `@` characters are quoted so Excel/Sheets don't execute them as formulas.

### Retention

Default retention is 90 days. A daily cron prunes older rows. To change the retention window, use the `royal_mcp_pro_audit_retention_days` filter:

```
add_filter( 'royal_mcp_pro_audit_retention_days', function( $days ) {
    return 180; // Keep audit rows for 180 days
} );
```

Privacy

When a WordPress user is deleted, their audit rows anonymize automatically — `user_id` nulls out and any user-identifiable client fingerprints strip. The row itself stays for reporting integrity. See [Privacy](https://royalplugins.com/privacy/) for GDPR handling.

Full concept guide: [**Understanding the Universal Audit Log →**](https://royalplugins.com/support/royal-mcp-pro/understanding-the-audit-log/)

## 72-Hour Undo Tokens

Every destructive Pro tool returns an `undo` block at the top level of its MCP tool-call response:

```
{
  "isError": false,
  "content": [{"type": "text", "text": "Bulk price update on 47 products — 12% off"}],
  "structuredContent": {...tool-specific fields...},
  "undo": {
    "token": "<64-character-hex-token>",
    "expires_at": "2026-08-08T14:23:15Z",
    "ttl_hours": 72
  }
}
```

Call `royal_mcp_undo_last_operation` with that token to reverse the operation. The undo store keeps the full payload needed to revert — original values, deleted rows, prior state — for the token's TTL.

### Which tools support undo?

Every Pro tool that writes, edits, or deletes returns an undo token. Non-destructive read tools return the token block with a no-op flag for API consistency. Free-tier destructive tools also become undoable when Pro is active on the same site — `wp_delete_post`, `wp_reorder_menu_items`, and Gutenberg custom-CSS updates all get 72-hour recovery windows once Pro is licensed.

### Who can trigger undo?

An undo call is authorized when the caller is any of the following: the **original actor** who ran the operation, a user with the explicit `royal_mcp_pro_undo_any` capability, a user with `manage_options` (single-site admins), or a **super-admin** on multisite. This lets your normal admin team recover from mistakes without giving every user the power to reverse each other's work — grant `royal_mcp_pro_undo_any` selectively if you want to tighten it further.

Extended undo windows (roadmap)

A future Pro release will add a 168-hour (7-day) undo TTL option. A later phase will introduce cloud-backed undo tokens synced to my.royalplugins.com — surviving plugin reinstalls and database restores. No committed ship date on either yet.

Full concept guide: [**Undo Tokens & Reversibility →**](https://royalplugins.com/support/royal-mcp-pro/undo-tokens-and-reversibility/)

## Builder Session Safety

Royal MCP Pro's `Builder_Safety` layer detects when the WordPress editor or a page builder (Divi 4, Divi 5, Elementor, block editor, Bricks, Beaver Builder, Oxygen) has an active editing session on a post. Write tools soft-error rather than clobber unsaved in-editor changes.

The mechanism is WordPress core's `_edit_lock` post meta — set by `wp_set_post_lock()`, read by `wp_check_post_lock()`. Because the guard hangs off core rather than any builder vendor, it works identically for every editor that respects the core lock.

### Write-tool guard

Write tools return a soft error when an active session is detected:

```
{
  "error": "builder_session_active",
  "builder_session": { "active": true, "since": 1723029815, "source": "edit_lock", "editor_user_id": 3 },
  "hint": "Close the editor session on this post or pass force=true to override."
}
```

Pass `force: true` to bypass the guard when you know it's safe. See [Builder Session Detected — When to Force Override](https://royalplugins.com/support/royal-mcp-pro/builder-session-detected-force-override/) for the decision framework.

## In-flow Upgrade Prompts

When a Free-tier install attempts to call a Pro-only tool, the MCP response contains an agent-directive text block that surfaces the upgrade path as chat content in Claude, ChatGPT, Cursor, and other clients. The response is a successful envelope (`isError: false`) so the LLM presents it to the user, not routes around it as a failed tool call.

If you see the upgrade prompt in your Pro-licensed site, that's a bug — see [Pro Tool Returned Upgrade Prompt with Valid License](https://royalplugins.com/support/royal-mcp-pro/pro-tool-returned-upgrade-prompt/) for the full diagnostic path.

## Pro Tool Inventory

79 Pro-tier tools ship in Royal MCP Pro 1.0.8.2 on top of the 209 Free-tier tools already bundled from Royal MCP Free. Grouped by category with links to per-category documentation:

### Divi Pro (6 tools)

Pro-tier only. Free ships 9 additional Divi tools (`divi_clone_page`, `divi_replace_image`, `divi_import_template`, `divi_get_page_format`, `divi_get_page_outline`, `divi_list_local_templates`, `divi_library_get`, `divi_replace_text`, `divi_validate_layout`) that Pro customers also get. Total Divi tools on a Pro install: 15.

divi\_library\_create

Create library item with format-explicit validation

divi\_library\_update

Update existing library item

divi\_library\_delete

Delete library item (global-in-use safety check)

divi\_convert\_shortcodes\_to\_blocks ⭐

Audit Divi 4/5/mixed state across posts + back up D4 content + return Divi's admin migrate URL

divi\_apply\_global\_preset

Bulk-apply Divi 5 preset across a page

divi5\_scaffold\_block

Schema-verified Divi 5 module scaffolder (silent-fail-safe validation)

### Elementor Pro (10 tools)

elementor\_clone\_template

Duplicate template with bulk retarget substitutions

elementor\_apply\_template\_advanced

Pro variant of the Free apply-template tool (adds mode=replace + concurrent-edit guard)

elementor\_save\_template\_with\_conditions

Save template with display conditions in one call

elementor\_update\_widget

Update widget settings by ID (undo-supported)

elementor\_delete\_widget

Delete widget with undo

elementor\_create\_widget

Insert new widget with settings

elementor\_apply\_theme\_builder\_conditions

Theme Builder display conditions management

elementor\_bulk\_replace\_widget\_setting

Bulk update a specific setting across widget instances

elementor\_export\_theme\_builder\_template

Export Theme Builder templates for cross-site reuse

elementor\_update\_widget\_setting

Update a single widget setting by dot-path key

### WooCommerce Bulk (11 tools)

wc\_bulk\_price\_update

Update N product prices with two-step commit + undo

wc\_bulk\_update\_products

Update N products in one call (any field, dry-run mode)

wc\_bulk\_delete\_products

Delete N products with two-step confirm + undo

wc\_bulk\_update\_stock

Bulk stock quantity updates

wc\_bulk\_assign\_categories

Assign categories to N products

wc\_bulk\_update\_orders

Bulk order status changes with notification suppression

wc\_bulk\_create\_coupons

Create N coupons in one call (validated + undo-supported)

wc\_bulk\_update\_coupons

Update coupon fields across a batch (any field, dry-run)

wc\_bulk\_expire\_coupons

Expire coupons by date range or explicit ID list

wc\_bulk\_delete\_coupons

Delete N coupons with two-step confirm + undo

wc\_bulk\_update\_subscription\_product\_prices

WooCommerce Subscriptions bulk price update (existing subscribers untouched)

### Cross-plugin Composers (5 tools)

wp\_publish\_and\_promote\_pro

Publish + SiteVault backup + ForgeCache purge in one call

wp\_prepare\_for\_launch

Backup + SEO audit + broken links + perf check + report

wp\_monthly\_maintenance\_report

Cross-plugin monthly report with admin-only viewing

wp\_migrate\_theme\_assets

Bulk asset migration during theme swap

wp\_bulk\_find\_and\_replace

Bulk search-and-replace across post content with dry-run + undo

### SEO Agency Suite (11 tools)

wp\_audit\_seo\_bulk

Portfolio-scale SEO audit with rollup + SiteVault snapshot

yoast\_bulk\_update\_meta

Yoast SEO bulk meta updates

rankmath\_bulk\_update\_meta

RankMath bulk meta updates

seopress\_bulk\_update\_meta

SEOPress bulk meta updates

aioseo\_bulk\_update\_meta

All in One SEO bulk meta updates

seobolt\_bulk\_update\_meta

SEObolt SEO plugin bulk meta updates (Royal's own SEO plugin path)

wp\_bulk\_update\_widgets

Bulk widget updates across sidebars

wp\_bulk\_replace\_widget\_content

Text/URL substitution across all widget content

redirection\_bulk\_import

Bulk import Redirection plugin rules from CSV/JSON

redirection\_bulk\_export

Bulk export Redirection rules

redirection\_apply\_rule\_set

Apply pre-built rule set (domain change, migration patterns)

### Undo (1 tool)

royal\_mcp\_undo\_last\_operation

Reverse any Pro operation within its 72h token TTL

## Troubleshooting

Pro-specific troubleshooting starts with [**Troubleshooting — Start Here**](https://royalplugins.com/support/royal-mcp-pro/troubleshooting-start-here/), which extends the free-tier [Royal MCP troubleshooting guide](https://royalplugins.com/support/royal-mcp/troubleshooting-start-here/) with Pro-specific triage.

Common Pro-specific issues:

- [**License activation fails**](https://royalplugins.com/support/royal-mcp-pro/license-activation-issues/) — full diagnostic tree covering DNS, firewalls, license-server reachability, and seat conflicts
- [**Pro tool returned upgrade prompt with valid license**](https://royalplugins.com/support/royal-mcp-pro/pro-tool-returned-upgrade-prompt/) — license-server sync issues, object cache, tier-check middleware
- [**Undo failed**](https://royalplugins.com/support/royal-mcp-pro/undo-token-errors/) — token expired, consumed, handler missing, capability mismatch
- [**Builder session detected**](https://royalplugins.com/support/royal-mcp-pro/builder-session-detected-force-override/) — when to close the editor vs. pass `force=true`

If your issue is with the underlying MCP connection (Claude.ai can't connect, ChatGPT DCR fails, host WAF blocks OAuth) — start with the [free-tier troubleshooting guide](https://royalplugins.com/support/royal-mcp/troubleshooting-start-here/). Those docs cover the same underlying MCP surface Pro uses.

## Still Stuck? Two-Step Support Path

If a Pro tool isn't working, an activation is failing, or something you expected to happen didn't, work through these two steps in order — most Pro-tier failures resolve at Step 1 because they're actually the same underlying MCP-connection or host-layer issues covered in the shared Royal MCP troubleshooting flow.

### Step 1: Start with the Royal MCP Troubleshooting Guide

[**Royal MCP Troubleshooting — Start Here**](https://royalplugins.com/support/royal-mcp/troubleshooting-start-here/) covers the 4-step diagnostic checklist for MCP-layer issues: edge/host probes, cache and WAF interference, OAuth discovery failures, and connector-side error codes. If your issue is that Claude can't connect, the connector fails, or you're seeing an `ofid_xxxxx` error, that guide is where to start.

For Pro-specific patterns not covered there, see:

- [License activation fails](https://royalplugins.com/support/royal-mcp-pro/license-activation-issues/) — full diagnostic tree covering DNS, firewalls, license-server reachability, and seat conflicts
- [Pro tool returned upgrade prompt with valid license](https://royalplugins.com/support/royal-mcp-pro/pro-tool-returned-upgrade-prompt/) — license-server sync issues, object cache, tier-check middleware
- [Undo token errors](https://royalplugins.com/support/royal-mcp-pro/undo-token-errors/) — expired, consumed, handler missing, capability mismatch
- [Builder session detected](https://royalplugins.com/support/royal-mcp-pro/builder-session-detected-force-override/) — when to close the editor vs. pass `force: true`

### Step 2: Email priority support

If you've worked through Start Here and the relevant Pro-specific doc and the issue still isn't resolved, email priority support from your purchase email address at **[support@royalplugins.com](mailto:support@royalplugins.com)**. Priority email support is included with your license — typical response within 24 hours. **Never include your license key in email**; we look it up from your purchase address.

What to include in your email

- **Your hosting provider** (SiteGround, Cloudways, Hostinger, Kinsta, WP Engine, Liquid Web, self-hosted VPS, etc.)
- **Royal MCP Pro version** from WP Admin → Plugins
- **Active caching plugins** (LiteSpeed Cache, WP Rocket, W3 Total Cache, SpeedyCache, Hummingbird, none)
- **Active security plugins** (Wordfence, Defender Pro, Solid Security, NinjaFirewall, none)
- **Cloudflare or CDN** in front of the site? If yes, is “Manage AI Bots” or “Bot Fight Mode” on?
- **Which MCP client** — claude.ai web custom connector, Claude Desktop with `mcp-remote`, ChatGPT MCP, Cursor, or another MCP-compatible client
- **The exact error message** you see, plus any `ofid_xxxxx` reference code if claude.ai shows one
- **The Pro tool name and args** you called, if the issue involves a specific Pro tool
- **Screenshot of the most recent `oauth:` row in Activity Log** AND **the most recent Pro tool row in Audit Log** with View Details expanded (or confirmation that the logs are empty after a reproduced failure)
- **Which steps you ran from Start Here** and what changed at each

## Frequently Asked Questions

### Do I need to remove the free Royal MCP plugin before installing Pro?

No. Royal MCP Pro bundles the free codebase and automatically deactivates the free plugin on activation. Your existing settings, OAuth clients, and API keys are preserved. Uninstall the free plugin at your convenience once Pro is running.

### Which MCP clients work with Royal MCP Pro?

Every MCP-compliant client that works with the free plugin also works with Pro. Claude.ai web, Claude Desktop, ChatGPT, Cursor, Windsurf, VS Code, Zed, JetBrains AI, LM Studio, and Ollama frontends all connect the same way. Pro tools appear in the same `tools/list` response once your license is active.

### What happens if my Pro license expires?

When your license expires, Pro tools return a short service message directing you to renew. Admin notices appear in the 30 days leading up to expiration so it's not a surprise. **Free tools continue to work indefinitely** — Pro never disables the free feature set. Renew any time from [your account dashboard](https://my.royalplugins.com/my-account/) and Pro tools resume immediately.

### Are Pro operations reversible?

Every destructive Pro tool returns a 72-hour `undo_token` in its response. Call `royal_mcp_undo_last_operation` with that token to reverse the operation. The full history lives in the Universal Audit Log with per-row undo actions.

### How many sites can I run Pro on?

**Personal** tier covers 1 site ($99/yr). **Professional** covers 5 sites ($249/yr). **Agency** covers 100 sites ($999/yr). Above 100 sites is Enterprise territory — [contact us](https://royalplugins.com/contact/) for a partnership conversation. Seats can be moved between sites at any time from your account dashboard at my.royalplugins.com.

The first 100 [Founding Members](https://royalplugins.com/royal-mcp-pro/founding-members/) rate-lock the Personal tier at $79/yr — the rate never increases at renewal. (The license itself is still an annual subscription like every other tier; "rate-lock" refers to the price, not the renewal cycle.)

### Do Pro tools affect front-end performance?

No. Royal MCP Pro only activates when an MCP client makes a tool call. There is no front-end footprint on regular visitors.

### Can I get a refund if Pro doesn't fit my workflow?

Yes. 30-day money-back guarantee — reach out to support with your reason and we'll process a full refund within 3-5 business days. Full [refund policy](https://royalplugins.com/refund/).

[← Royal MCP (Free) Docs](https://royalplugins.com/support/royal-mcp/)
[Getting Started →](https://royalplugins.com/support/royal-mcp-pro/getting-started/)
