Royal MCP
MCP serverSecurityYour AI can work directly on your WordPress site with security built in from the start. This integration adds 129 tools to Claude, ChatGPT, and Gemini so they can take on WordPress tasks for you. It is free to get from WordPress.org.
Use Royal MCP in Claude, ChatGPT or Ahel Desktop
Free. Sign in, add Royal MCP and connect your AI. About a minute.
Also: Claude Code · Cursor · Codex
Then ask your AI: use Royal MCP
Needs your own Royal MCP account. You sign in to it and approve access when you connect.
Details
Available today. Use it from your connected AI after setup.
After adding it, get the integration free from WordPress.org and connect your WordPress site. Then start giving your AI WordPress tasks in Claude, ChatGPT, or Gemini.
What your AI can do with it
- Connect Claude, ChatGPT, or Gemini to your WordPress site
- Work on your site through 129 built-in tools
- Use the same setup across Claude, ChatGPT, and Gemini
- Run site tasks with security-first protections in place
Install Royal MCP
The server’s own address, for the clients that take one directly. Or connect Ahel once and every client you use reads it from one address, with the account kept on Ahel rather than in each client’s config.
Claude Code
claude mcp add --transport http --scope user royal-mcp 'https://demo.royalplugins.com/wp-json/royal-mcp/v1/mcp'Run it once in your project, then open /mcp to approve any sign-in the server asks for.
Claude Desktop
https://demo.royalplugins.com/wp-json/royal-mcp/v1/mcpAdd a custom connector in Settings, paste this address, and approve the sign-in.
Cursor
cursor://anysphere.cursor-deeplink/mcp/install?name=royal-mcp&config=eyJ1cmwiOiJodHRwczovL2RlbW8ucm95YWxwbHVnaW5zLmNvbS93cC1qc29uL3JveWFsLW1jcC92MS9tY3AifQ==Open the link and Cursor adds the server at that address.
ChatGPT
https://demo.royalplugins.com/wp-json/royal-mcp/v1/mcpIn Settings, enable Developer mode, create an MCP app, and paste this address. Your plan and workspace must allow custom apps.
Codex
codex mcp add royal-mcp --url 'https://demo.royalplugins.com/wp-json/royal-mcp/v1/mcp'Run it once, then sign in with codex mcp login royal-mcp if the server asks for an account.
From the project's README
As published by royalplugins/royal-mcp in README.md.
Royal MCP is an open-source, security-first WordPress plugin that connects Claude, ChatGPT, Perplexity, Gemini, and any other MCP agent to your site.
Download on WordPress.org · Documentation · Royal Plugins
Agents can read and write posts, pages, media, users, menus, WooCommerce orders, and Elementor pages over the Model Context Protocol. Every call is capability-gated, rate-limited, and audit-logged.
Capabilities
WordPress core (85 tools, always available)
- Content — Posts, pages, custom post types (full CRUD + revisions + featured images)
- Taxonomies — Categories, tags, custom taxonomies, term meta, post-term linking
- Media — Browse, upload (URL or base64), update metadata, delete
- Comments — Create, moderate (approve / spam / trash)
- Users — Read display names + roles (emails and usernames are not exposed)
- Menus — Read, create items, reorder, update with destructive-write guardrails
- Theme — Custom CSS, theme mods, active theme detection
- Site — Permalink structure, options (allowlisted), site info
- Search — Cross-content search by query
- SEO — Yoast / Rank Math / AIOSEO meta read/write where the plugin is active
- Diagnostics — Site status (WP/PHP/MySQL/plugins/themes/cron in one call), PHP error-log tail, WP cron schedule, and MCP
royal_mcp_connection_health(returns route, auth method, session ID, plugin version, and active page-builder versions for Divi + Elementor + Gutenberg)
Plugin integrations (124 tools, conditional)
Auto-register only when the integrated plugin is active.
| Plugin | Tools | What's covered |
|---|---|---|
| WooCommerce | 29 | Products, variations, attributes, coupons, orders (create/update/notes), customers, store stats |
| Elementor | 14 | Clone pages, replace text, swap images, get outline (with optional include-styles), read single element, list templates, import templates, add widget, rebuild post_content, widget-schema discovery, widget-list discovery, dynamic-tag discovery |
| Divi | 9 | Format detection (D4 shortcode vs D5 block), page outline, layout validation, library list + get, find/replace with builder-format awareness, clone, image swap, library apply |
| GuardPress | 7 | Security score, failed logins, blocked IPs, vulnerability scans, audit log |
| SiteVault | 6 | Trigger backups, monitor progress, list schedules |
| Royal AI Firewall | 6 | Dashboard stats, recent bot hits, per-bot policies (allow / block / challenge), daily rollups |
| Yoast SEO | 5 | Read/write Yoast meta (raw + resolved), capture JSON-LD schema graph, list indexed internal links, list Premium redirects |
| Redirection | 4 | List redirects with group + URL-substring filters, create + update redirects (301 / 302 / 307 / regex / groups), list redirect groups |
| Royal Ledger | 4 | Software costs, renewal dates, license keys (values never exposed) |
| Advanced Custom Fields | 4 | Read/write ACF fields with each field's Return Format respected (hydrated post objects, parsed repeater rows, image arrays); enumerate field groups |
| UpdraftPlus | 4 | List backup history, read per-backup status, trigger async backups with entity filtering, read schedule |
| WPForms | 4 | List forms, read a single form's parsed field schema, (Pro) list submissions, (Pro) read single submission |
| Solid Security | 4 | Read security status, list currently locked-out IPs, read the security event log, add an IP to the ban list |
| MonsterInsights | 4 | Read the analytics overview, top pages, traffic sources, and top Google Search Console queries |
| BuddyPress | 4 | List community members, read a single member profile, list groups, read the activity feed (same detection covers BuddyBoss Platform) |
| Contact Form 7 | 3 | List forms, read a single form's parsed field schema, list submissions (via Flamingo add-on) |
| W3 Total Cache | 3 | Read cache configuration across every module, purge cache (all / by URL / by post), read usage statistics |
| Duplicator | 3 | List migration packages, read per-package status, get the installer URL for a completed package |
| Royal Links | 3 | Branded short links, click stats |
| ForgeCache | 4 | Cache stats, clear cache, purge URL, real-user Core Web Vitals (INP/LCP/CLS/TTFB) |
WordPress Abilities API bridge (WP 6.9+)
WordPress 6.9 shipped the Abilities API — a primitive that lets plugins register typed capabilities AI agents can call. As of 1.4.38, every Royal MCP tool also registers as a WordPress ability, giving you three ways to reach the same handlers:
- Native — Royal MCP's
/wp-json/royal-mcp/v1/mcpStreamable HTTP endpoint (unchanged, always available). - WP MCP Adapter — if the
wordpress/mcp-adapterpackage is installed, Royal MCP registers a namedroyal-mcp-serveron themcp_adapter_inithook alongside adapter's default server. - WP core REST — direct ability invocation at
/wp-json/wp-abilities/v1/abilities/{name}/runfor callers that prefer the core WP endpoint.
Same handlers, three transports, one set of per-tool capability gates. Bridge can be disabled with the royal_mcp_abilities_registration_enabled option (default: on).
What we don't do
Explicit scope boundaries — the integration model is "narrow tools that work reliably," not "expose every API surface."
- No widget-level Elementor generation from scratch. Atomic widgets (Editor V4) pass through opaque; we never decode atomic schemas because Elementor itself may shift them.
- No Beaver Builder / Bricks page-builder JSON writes. Standard post content is readable and writable; page-builder-specific JSON storage is opaque unless covered by a dedicated tool. (Elementor and Divi have dedicated tools — see the integration table above.)
- No theme builder template creation (Elementor or otherwise).
- No core file modifications — Royal MCP never writes to
wp-content/themes,wp-includes, orwp-admin. - No plugin installation or upgrades via MCP. Discovery yes; install/activate/deactivate no.
- No raw SQL. Queries go through
WP_Queryand$wpdb->prepare()only.
Connect
Install
- Install from WordPress.org (recommended — auto-updates via WP admin) or upload the GitHub release zip.
- Royal MCP → Settings → click Generate API Key.
- Pick a client below.
Claude.ai web (OAuth — recommended)
Easiest path — no config file edits, no API key in your client.
- In Claude.ai → Settings → Connectors → Add Custom Connector.
- URL:
https://yoursite.com/wp-json/royal-mcp/v1/mcp - Approve the OAuth consent screen when prompted. Claude.ai handles dynamic client registration + PKCE flow against your site.
Claude Desktop (.mcpb one-click bundle — new in 1.4.38)
Easiest Claude Desktop path — no mcp-remote, no npx, no config-file editing.
- Download
royal-mcp-1.4.38.mcpbfrom the latest GitHub release. - Double-click the
.mcpbfile — Claude Desktop opens the install prompt. - Enter your site URL + API key when prompted. Connection is live.
The bundle ships a zero-dependency stdio-to-HTTPS bridge in Node ≥18, which Claude Desktop already includes. See Claude Desktop MCP Bundles for the .mcpb spec.
Claude Desktop (OAuth via mcp-remote)
{
"mcpServers": {
"my-wordpress": {
"command": "npx",
"args": ["-y", "mcp-remote", "https://yoursite.com/wp-json/royal-mcp/v1/mcp"]
}
}
}
Config path: ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows).
Claude Desktop (API key)
Skip OAuth and authenticate via header:
{
"mcpServers": {
"my-wordpress": {
"command": "npx",
"args": [
"-y", "mcp-remote",
"https://yoursite.com/wp-json/royal-mcp/v1/mcp",
"--header", "X-Royal-MCP-API-Key:YOUR_API_KEY"
]
}
}
}
ChatGPT
ChatGPT's custom MCP connector takes the same URL as Claude.ai web. Follow ChatGPT's connector flow and paste https://yoursite.com/wp-json/royal-mcp/v1/mcp.
Raw HTTP (custom clients)
# 1. Initialize a session. -i prints headers so you can grab Mcp-Session-Id.
curl -i -X POST https://yoursite.com/wp-json/royal-mcp/v1/mcp \
-H "X-Royal-MCP-API-Key: YOUR_KEY" \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-d '{
"jsonrpc": "2.0",
"method": "initialize",
"id": 1,
"params": {
"protocolVersion": "2025-11-25",
"capabilities": {},
"clientInfo": {"name": "my-app", "version": "1.0"}
}
}'
# 2. List available tools using the session id from the response header.
curl -X POST https://yoursite.com/wp-json/royal-mcp/v1/mcp \
-H "X-Royal-MCP-API-Key: YOUR_KEY" \
-H "Mcp-Session-Id: <session_id>" \
-H "Content-Type: application/json" \
-d '{"jsonrpc": "2.0", "method": "tools/list", "id": 2}'
Security model
| Layer | What it does |
|---|---|
| API key | 32-char hex, timing-safe comparison. Sent via X-Royal-MCP-API-Key header. Regenerate from admin without server restart. |
| OAuth 2.1 | RFC 7591 Dynamic Client Registration, RFC 8414 metadata, PKCE S256 required, refresh tokens supported. No implicit grant. No client_credentials grant. |
| Capability gating | Every tool checks WordPress capabilities. edit_posts for create/update, manage_options for site settings, edit_post per-post for individual operations. |
| Rate limiting | 60 requests/minute per IP, sliding window. |
| Session model | Sliding 24h TTL with refresh-on-access. Cryptographically secure 32-byte session IDs. |
| Activity log | Every tool call writes a row to a database log. Records: tool name, argument keys, IP, User-Agent, errors. Never records argument values (they may contain customer data). |
| OAuth state recovery | One-click Reset OAuth State admin button wipes all clients + tokens + auth codes, without affecting your API key or settings. |
| Discovery | .well-known/oauth-authorization-server and .well-known/oauth-protected-resource served at site root per RFC 8414 + RFC 9728. |
Full security architecture: royalplugins.com/support/royal-mcp/
Royal MCP Pro (paid)
The Free plugin is fully featured for individual site owners. Royal MCP Pro extends it for agencies and multi-site operators:
- Divi Pro suite — page clone, image swap, template import, full library CRUD, D4→D5 Migrator, global preset bulk-apply (8 tools)
- Elementor Pro depth — additional Elementor tools beyond the Free integration
- Universal audit log — every AI operation logged with attribution + export
- 72-hour undo on every write — every destructive Pro tool returns an undo token; reverse any operation within the window
- License-gated updates through the standard WordPress updater — no runtime dependencies on external license servers
Learn more at royalplugins.com/royal-mcp-pro
Further reading
- Editing Elementor with Claude: The Four Workflows That Work Today — the four real architectures for AI-editing Elementor pages and when to reach for which. User-facing version with prompts, examples, and a video demo of the clone-and-customize flow.
- Editing Elementor with Claude: 4 MCP Architectures — engineer's cut on Hashnode. The PHP under the hood of
elementor_clone_page, the six tool signatures, and the HTTP-Basic-vs-OAuth-2.1 auth-model tradeoff.
Related projects
- GuardPress — WordPress security hardening
- SiteVault — WordPress backups and migration
- ForgeCache — Caching and performance
- FormForge — Form builder with PDF generation
- SEObolt — SEO toolkit for WordPress
License
GPLv2 or later — see LICENSE or the GNU site.
Royal MCP is provided as-is. API keys protect your endpoints; guard them like any other credential. You are responsible for the content, commands, and actions any AI platform is allowed to perform on your WordPress site.
Signals
- GitHub stars
- 9
- Forks
- 6
- Last commit
- Oct 2026
Advanced
- Delivery
- royal-mcp MCP server → your Ahel connector (mcp.ahel.ai) → your AI.
- Item type
- mcp-server
- Key
com-royalplugins-royal-mcp- Source
- github.com/royalplugins/royal-mcp
- Hosted endpoint
https://demo.royalplugins.com/wp-json/royal-mcp/v1/mcp
github.com/royalplugins/royal-mcp
More in Security
MCP server
More in Securityechelongraph-mcp
MCP server · echelongraph
More in Securitynotfair
MCP server · nowork-studio
More in Securityfeedmyagent
MCP server · makash
More in Securityopenwork
MCP server · different-ai
More in Securityosv-advisory-mcp-server
MCP server · cyanheads
More in Security