Skip to main content
Glama

Royal MCP

Security-first MCP server for WordPress. Connect Claude, ChatGPT, and Gemini to your WordPress site with API key + OAuth 2.1 authentication, full activity logging, and capability-gated access.

WordPress PHP License Version

Download on WordPress.org · Documentation · Royal Plugins


A WordPress plugin that exposes your site as a Model Context Protocol server. AI agents — Claude.ai web, Claude Desktop, ChatGPT, custom clients — can read and write posts, pages, media, users, menus, WooCommerce orders, and Elementor pages, with every call going through capability gating, rate limiting, and an audit log. Distributed via the official WordPress.org plugin directory.

Quick facts

Auth

API key (X-Royal-MCP-API-Key) or OAuth 2.1 with PKCE + Dynamic Client Registration (RFC 7591)

Transport

MCP 2025-11-25 Streamable HTTP (single /mcp endpoint, POST/GET/DELETE)

Tool count

Up to 144 (73 WordPress core + 71 conditional plugin integrations)

Abilities API

WP 6.9+ — every tool also registers as a WordPress ability, reachable via WP core REST at /wp-json/wp-abilities/v1/abilities/{name}/run and via the WordPress MCP Adapter's named royal-mcp-server

Rate limit

60 req/min per IP (configurable)

Session model

Sliding 24h TTL with refresh-on-access

Activity log

Every tool call logged (tool name + arg keys; argument values are never recorded)

Distribution

wp.org plugin directory + GitHub releases + auto-update via WP admin

Tested

PHP 7.4 → 8.3, WordPress 5.8 → 7.0

License

GPLv2+

Related MCP server: wp-cli-mcp

Capabilities

WordPress core (73 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 (71 tools, conditional)

Auto-register only when the integrated plugin is active.

Plugin

Tools

What's covered

WooCommerce

26

Products, variations, attributes, coupons, orders, customers, store stats

Elementor

8

Clone pages, replace text, swap images, get outline, read single element, list templates, import templates, add widget

GuardPress

7

Security score, failed logins, blocked IPs, vulnerability scans, audit log

Royal AI Firewall

6

Dashboard stats, recent bot hits, per-bot policies (allow / block / challenge), daily rollups, one-call emergency lockdown

SiteVault

6

Trigger backups, monitor progress, list schedules

Redirection (new in 1.4.38)

4

List redirects with group + URL-substring filters, create + update redirects (301 / 302 / 307 / regex / groups), list redirect groups

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 for AI-driven discovery

Royal Ledger

4

Software costs, renewal dates, license keys (values never exposed)

Royal Links

3

Branded short links, click stats

ForgeCache

3

Cache stats, clear cache, purge URL

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:

  1. Native — Royal MCP's /wp-json/royal-mcp/v1/mcp Streamable HTTP endpoint (unchanged, always available).

  2. WP MCP Adapter — if the wordpress/mcp-adapter package is installed, Royal MCP registers a named royal-mcp-server on the mcp_adapter_init hook alongside adapter's default server.

  3. WP core REST — direct ability invocation at /wp-json/wp-abilities/v1/abilities/{name}/run for 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 / Divi / 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.

  • No theme builder template creation (Elementor or otherwise).

  • No core file modifications — Royal MCP never writes to wp-content/themes, wp-includes, or wp-admin.

  • No plugin installation or upgrades via MCP. Discovery yes; install/activate/deactivate no.

  • No raw SQL. Queries go through WP_Query and $wpdb->prepare() only.

Connect

Install

  1. Install from WordPress.org (recommended — auto-updates via WP admin) or upload the GitHub release zip.

  2. Royal MCP → Settings → click Generate API Key.

  3. Pick a client below.

Easiest path — no config file edits, no API key in your client.

  1. In Claude.ai → Settings → Connectors → Add Custom Connector.

  2. URL: https://yoursite.com/wp-json/royal-mcp/v1/mcp

  3. 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.

  1. Download royal-mcp-1.4.38.mcpb from the latest GitHub release.

  2. Double-click the .mcpb file — Claude Desktop opens the install prompt.

  3. 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/

Project status

  • Active maintenance — releases roughly weekly. See releases for changelog.

  • MCP spec compliance — implements the Streamable HTTP transport (2025-11-25).

  • Issuesgithub.com/royalplugins/royal-mcp/issues. Customer-impact issues are typically acknowledged within 24h and triaged with version targets.

  • Contributing — PRs welcome. The plugin source is committed to both this repo and the wp.org SVN trunk; releases are coordinated through the wp.org review process.

Further reading

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.


F
license - not found
-
quality - not tested
A
maintenance

Maintenance

Maintainers
16hResponse time
3dRelease cycle
21Releases (12mo)
Commit activity
Issues opened vs closed

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

  • F
    license
    -
    quality
    D
    maintenance
    A comprehensive MCP server for managing WordPress sites through the REST API, featuring 38 tools for content, media, plugin, and theme management. It supports secure Application Password authentication and offers specific compatibility for Divi theme shortcode structures.
    Last updated

View all related MCP servers

Related MCP Connectors

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/royalplugins/royal-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server