Connecting Royal MCP to ChatGPT
Connect Royal MCP to ChatGPT via Plugins (previously called Custom Apps, and originally Custom Connectors) — a Developer-Mode feature available on every paid ChatGPT plan. Setup is a one-time Developer Mode toggle plus a New Plugin configuration. Read the plan-tier note immediately below before starting; what ChatGPT can do with Royal MCP depends on which plan you’re on.
Same feature, three names in the last year: Custom Connectors → Custom Apps → Plugins (current, as of August 2026). Older Royal Plugins support docs and OpenAI’s own historical documentation may still use the earlier names. Wherever you see any of the three, they refer to the same feature. This page uses the current name (Plugins) throughout.
ChatGPT’s Plugins feature behaves differently across plans:
- Free — no Plugins at all
- Plus / Pro — Plugins work, but ChatGPT is limited to read/fetch actions only (read your posts, pages, settings, WooCommerce data; cannot create, update, or delete)
- Team — read + limited write actions
- Business / Enterprise / Edu — full read + write/modify support
If you want the full “AI publishes my blog post” / “AI updates my products” experience, you need Business tier or higher on ChatGPT. On Plus or Pro you’ll get read-only — useful for reporting + analysis, but not for content management. (Claude.ai has no such tier gate — if you need write actions and you’re on a personal ChatGPT plan, Claude is the better fit until OpenAI lifts the restriction.)
First — Install and Enable Royal MCP
Before connecting anything to ChatGPT, Royal MCP needs to be running on your WordPress site. Three small steps:
Install the plugin
In wp-admin, go to Plugins → Add New, search for Royal MCP, and click Install Now. Or download the latest version from wordpress.org/plugins/royal-mcp/ and upload the zip.
Activate
On the Plugins page, click Activate under Royal MCP. A new Royal MCP item appears in your wp-admin sidebar.
Enable the integration + flush Permalinks
Go to Royal MCP → Settings → General Settings and turn on the Enable Royal MCP Integration toggle (it’s off by default after activation). Then go to Settings → Permalinks and click Save Changes once — this flushes WordPress’s rewrite rules so the OAuth endpoints resolve. Don’t skip this; the ChatGPT setup below won’t work until rewrites are flushed and Permalinks must not be set to “Plain.”
Open https://example.com/.well-known/oauth-authorization-server in any browser. If you see a JSON response listing issuer, authorization_endpoint, and scopes_supported, Royal MCP is live and the ChatGPT setup below will work. If you see a 404 or an HTML page, jump to the troubleshooting checklist — something is intercepting your request before it reaches WordPress.
Enable Developer Mode in ChatGPT
Custom Plugins live behind ChatGPT’s Developer Mode — a feature gate that signals to OpenAI you understand the security implications of granting external services tool access. You enable it once per account; it stays on until you turn it off. Developer Mode also unlocks the full tool surface an MCP server exposes — without it, ChatGPT connectors are limited to search / knowledge-base tool patterns, and Royal MCP’s 100+ WordPress tools won’t be reachable.
Sign in to ChatGPT
Open chatgpt.com in any browser. You must be on a plan that supports Plugins (Plus, Pro, Team, Business, Enterprise, or Edu — Free tier doesn’t have the feature).
Open Settings → Plugins
Click your profile icon (bottom-left of the ChatGPT sidebar) and choose Settings. In the Settings panel that opens, click Plugins in the left sidebar. (This tab was called Apps before the August 2026 rename, and Connectors before that.)
ChatGPT → Settings → Plugins. The list shows both OpenAI first-party plugins (Canva, Documents, PDF, etc.) and a connected Royal MCP install (“Royal Plugins Demo”). This tab was called “Apps” before the August 2026 rename, and “Connectors” before that.
Open Advanced settings → toggle Developer Mode ON
Near the bottom of the Plugins panel, click Advanced settings. Toggle Developer Mode to ON. OpenAI shows an ELEVATED RISK warning about the responsibilities that come with Plugins — read it and confirm.
Developer Mode ON. The ELEVATED RISK badge and the “Memory is disabled” note are part of the toggle — OpenAI’s explicit acknowledgment that you’re running unverified MCP servers.
Three things to check: (1) you’re on a paid tier — Free ChatGPT doesn’t have it; (2) if you’re on Team / Business / Enterprise / Edu, your organization’s admin may have disabled Developer Mode for member accounts — check with them; (3) very recent Plus/Pro upgrades sometimes need a sign-out + sign-in to pick up the new account capability.
Add Royal MCP as a Plugin
With Developer Mode on, the Add more button appears at the top-right of the Plugins panel. Clicking it opens the New Plugin dialog — this is where you tell ChatGPT how to reach Royal MCP.
Click Add more → the New Plugin dialog opens
Back on Settings → Plugins, click Add more (top-right of the panel). The New Plugin dialog opens.
Fill in the New Plugin dialog
The dialog has several fields plus a mandatory risk-acknowledgment checkbox. The icon is optional; skip it unless you want a custom badge in your Plugins list:
- Name — a memorable label that appears in your Plugins list. Something like “My WordPress Site” or your site name works well.
- Description — actually matters: ChatGPT reads this to decide WHEN to invoke the Plugin during conversations. Be specific. Good: “Manages content, settings, and WooCommerce data on my WordPress site.” Bad: “WordPress MCP.”
- Connection → Server URL — your Royal MCP server endpoint:
https://example.com/wp-json/royal-mcp/v1/mcp(substitute your bare domain only — no leadinghttps://in the substitution, the protocol is already in the template). The dialog’s placeholder showshttps://example.com/sse— ignore that, Royal MCP uses the streamable HTTP MCP transport at the URL above, not SSE. (The Tunnel radio option next to Server URL is for developers running an MCP server locally via ngrok-style tunneling — not what you want for Royal MCP on a public WordPress site.)
New Plugin dialog with a Royal MCP setup ready to submit. The icon is optional; everything else above is required, including the I understand and want to continue acknowledgment.
Click Create
Set Authentication to OAuth (default). The Advanced OAuth settings row will show “Review discovered OAuth settings” once you’ve entered a valid URL — that means ChatGPT successfully auto-discovered Royal MCP’s OAuth metadata and you don’t need to configure anything manually. Then check the mandatory I understand and want to continue box (OpenAI gates Create behind an explicit risk acknowledgment for unverified MCP servers). Click Create. If the URL fails validation, double-check it returns 401 to an unauthenticated request (the correct behavior — means the endpoint exists and is gating access). Run curl -s -o /dev/null -w "%{http_code}\n" https://example.com/wp-json/royal-mcp/v1/mcp from any terminal to verify before retrying.
ChatGPT’s Plugin handles OAuth through Royal MCP’s own OAuth endpoints — you don’t paste a Client ID or Client Secret into ChatGPT. When you click Create, ChatGPT redirects you through Royal MCP’s /authorize → /token flow automatically. (Unlike Claude Desktop, ChatGPT doesn’t currently expose a Custom Headers field, so there’s no API-key bypass path. If OAuth is blocked by a WAF or Cloudflare on your host, see the troubleshooting checklist — the same fixes apply regardless of which AI platform you’re connecting from.)
Approve the OAuth Consent
After you click Create, ChatGPT redirects you through Royal MCP’s OAuth consent flow. This is identical to the Claude OAuth flow — Royal MCP’s OAuth server doesn’t care which client is asking.
ChatGPT shows a “Sign in with...” prompt
Before the actual OAuth flow starts, ChatGPT displays a confirmation modal titled Add <your Plugin name> to ChatGPT with a single Sign in with <your Plugin name> button. Three trust notes appear below it: permissions are respected, you’re in control of your data, and connectors may introduce risk. Click Sign in to proceed — this is when ChatGPT actually opens the OAuth handshake with your WordPress site.
ChatGPT’s pre-OAuth confirmation modal. Nothing has happened yet on your WordPress site — the OAuth flow starts when you click Sign in.
Browser opens the consent screen on your WordPress site
A new browser tab loads https://example.com/authorize?... (your domain). You’ll see your site name, the application requesting access (ChatGPT), and the specific actions Royal MCP will allow it to perform on your behalf — reading posts/pages/media, creating and editing content, managing categories/tags/menus, and viewing site settings + user info.
Royal MCP’s OAuth consent screen. The permissions listed are the same scopes Royal MCP grants to any MCP client — ChatGPT, Claude, or otherwise — via the mcp:full scope.
Click Authorize
Royal MCP issues an access token, returns it to ChatGPT, the consent tab closes automatically.
Back in ChatGPT — Plugin is marked active
Return to the ChatGPT Settings → Plugins panel. Your new Plugin now appears in the list with a Connected state. Clicking it opens the Plugin detail view: a Connection row identifying the Plugin, a Permissions row (defaults to “Allow low-risk actions” — we cover this in the next section), and an Actions list showing every MCP tool Royal MCP exposes with its input schema and risk tags. You’re ready to use it in conversations — but before you do, set the permissions level (next section).
Plugin detail view post-connection. Every Royal MCP tool is listed in Actions with its input schema and risk classification — ChatGPT reads these to decide when to invoke each tool.
If the Actions list is empty — use Refresh to reconnect
Occasionally ChatGPT reports a successful Create but the Plugin detail view shows “No app actions available yet.” in the Actions section, sometimes accompanied by a red error banner at the top. Scroll down to the Information section on the same page and click the Refresh button in its header. ChatGPT re-runs the connection handshake — you may be sent through the OAuth authorize page a second time. Once the retry succeeds the Actions section populates with every Royal MCP tool. This retry is safe to run multiple times; each attempt appears in Royal MCP → Activity Log so you can pinpoint the failing handshake step if it keeps missing.
Refresh is also available on the three-dot menu at the top-right of the Plugin detail view, where the same action is labeled Reconnect — see the Managing the Plugin Later section below.
Open Royal MCP → Activity Log in a separate browser tab before clicking Create in ChatGPT. You’ll see live entries fire as the OAuth handshake progresses (oauth:register → oauth:authorize → oauth:token). If anything fails, the Activity Log shows you which step + the exact reason — that’s the single most useful diagnostic Royal MCP gives you.
Set the Plugin’s Permissions
ChatGPT’s Plugins UI added a per-Plugin Permissions setting that controls when ChatGPT asks you to approve an action. It’s a new addition (was not present in the earlier Custom Apps UI) and worth setting explicitly — the default may not match how you want to use Royal MCP.
Open the Plugin’s Permissions row
From Settings → Plugins, click your Royal MCP Plugin, then click the Permissions row (or scroll to it in the detail view). You’ll see four options.
The per-Plugin Permissions screen. Default is “Allow low-risk actions.”
Pick the level that matches how you want to work
The four levels, in ascending trust:
- Always ask — ChatGPT asks for confirmation on every Royal MCP action, read or write. Most cautious. Slows down workflow but no surprises.
- Allow read actions — ChatGPT reads (posts, pages, settings, products) without asking, but confirms before creating/editing/deleting. Good default for content review + analysis workflows.
- Allow low-risk actions (DEFAULT) — ChatGPT decides which actions are “low risk” and executes those without asking; asks for anything it flags as sensitive. Reasonable middle ground, but note ChatGPT makes the judgment call about what counts as low-risk.
- Allow all actions (ELEVATED RISK) — no confirmation prompts at all. ChatGPT can create, update, delete without asking. Fastest workflow for “AI is my publishing assistant” use cases, but you should only pick this if you trust your own prompts + have backups (SiteVault handles that).
Note: on Plus / Pro tiers, ChatGPT can’t perform write actions regardless of what you pick here — the plan-tier gate is upstream of this setting. On Business+ tiers, this setting actually controls the approval flow.
For most Royal MCP use cases, Allow read actions is the safest choice on paid personal tiers, and Allow low-risk actions is a reasonable default on Business+ — but if you’re running an agentic workflow (ChatGPT publishes drafts, updates products, etc.) and want the least friction, Allow all actions with a fresh SiteVault backup before you start is the fastest path. You can change this any time from Settings → Plugins.
Use Royal MCP in Conversations
Plugins aren’t auto-included in every chat — you toggle them on per-conversation via the message composer.
Open a new conversation
Start a fresh chat in ChatGPT.
Click the + button next to the message composer
The + button is to the left of the input field. Click it to open the tools menu.
Click More → pick your Royal MCP Plugin
Expand the More section and find your Royal MCP Plugin in the list. Click it to add the Plugin to the current conversation’s context.
Ask ChatGPT to do something
The Plugin is now available for the rest of this conversation. Try: “What’s the title and tagline of my site?” — ChatGPT will invoke wp_get_site_info and respond with your actual site data.
You’ll re-add the Plugin each time you start a fresh conversation (via the + → More menu). Some ChatGPT tiers expose a way to pin frequently-used Plugins as a default; check your Settings → Plugins for a “Default to all chats” option on each Plugin card.
Once you’ve added the Plugin on ChatGPT web, it’s automatically available in the ChatGPT mobile apps (iOS / Android) and the ChatGPT desktop apps (macOS / Windows) on the same account. No re-configuration needed.
Verify It’s Working
A few first commands to confirm the connection. These all use read actions, so they work on every supported plan tier:
- “What’s the title and tagline of my site?” → calls
wp_get_site_info, returns your site title, description, language, WordPress version. - “List my five most recent published posts.” → calls
wp_get_postswith a status filter. - “What plugins are installed and which ones have updates available?” → calls
wp_get_plugins.
If ChatGPT responds with your site-specific data, you’re connected. If you get a generic “I don’t have access to that” response, the Plugin isn’t toggled on in this conversation — go back to the + → More menu and add it.
ChatGPT calls wp_get_site_info and reports back the site’s actual metadata — confirming end-to-end the OAuth handshake, the Plugin wiring, and Royal MCP’s tool invocation are all working.
For Business / Enterprise / Edu plans — write actions
If you’re on a tier with write support, try:
- “Create a draft post titled ‘Test from ChatGPT’ with body ‘This is a test.’” → calls
wp_create_post. ChatGPT asks for manual confirmation before executing (unless you’ve enabled approval memory for this connector in conversation settings).
If write actions silently fail with a generic error on Plus or Pro, that’s the plan tier gate — not a Royal MCP issue. The fix is upgrading to Business tier or higher (or switching to Claude.ai, which has no such gate).
Managing the Plugin Later — Reconnect, Disconnect, Delete
Once your Plugin is connected, the Plugin detail view exposes a small management surface. Most users never need to touch it, but knowing which button does what saves headaches when something changes on the WordPress side (license expired, OAuth reset, site moved) and you need to reconfigure ChatGPT to match.
Open the three-dot menu (top-right of the Plugin detail view)
From Settings → Plugins, click your Plugin, then click the … icon in the top-right corner of the detail view. Six options appear: View plugin detail, Edit name, Edit description, Reconnect, Disconnect, and Delete.
Reconnect
Re-runs the connection handshake against your WordPress site. Typically triggers the OAuth authorize page a second time. Use this when the Plugin is still registered in ChatGPT but the connection has degraded — for example after a temporary network blip during the initial connect, or when the Actions list appeared empty and you want to retry without recreating the Plugin from scratch. Identical in behavior to the Refresh button in the Information section further down the same page — ChatGPT just uses two different labels for the same action depending on which UI surface you’re on.
Disconnect
Revokes the current access token on the ChatGPT side but keeps the Plugin registration (name, description, server URL, OAuth client_id) intact. ChatGPT stops calling your WordPress site until you Reconnect. Use this if you want to temporarily pause the Plugin without losing the configuration. Note that on some ChatGPT screens this same action shows up under the label Uninstall — it’s the same operation, just a different name.
Delete
Removes the Plugin entirely from ChatGPT — registration, tokens, and client_id all gone. Requires you to re-add the Plugin from scratch through Add more → New Plugin (starting from the top of this guide). Use this when you want a completely clean slate, and specifically when you’ve reset OAuth state on the WordPress side (see the callout below).
When you click Reset OAuth State under Royal MCP → Settings (or run any tool that revokes all issued OAuth clients on the WordPress side), ChatGPT’s stored client_id becomes invalid. Reconnect and Disconnect both preserve that stale client_id, so retrying with either will keep hitting authentication failures. The only reliable recovery path is Delete the Plugin from ChatGPT, then re-add it from scratch — that creates a fresh OAuth client registration on both sides.
ChatGPT uses different words for the same action depending on which screen you’re on. When troubleshooting or following instructions, translate as needed:
| Same action, labeled… | …in one place | …in another |
|---|---|---|
| Re-run the connection / retry OAuth | Refresh (Information section) | Reconnect (three-dot menu) |
| Revoke tokens, keep registration | Uninstall (some panels) | Disconnect (three-dot menu) |
| Wipe registration entirely | Delete (three-dot menu only) | |
If Something Goes Wrong
ChatGPT-specific issues + the cross-platform issues that affect any OAuth-based MCP setup:
ChatGPT sometimes shows an error banner right after Authorize even when the connector is fully working. Before working through the table below, run one quick check: in a new chat, prompt “Use Royal MCP to list my last 5 posts.” If real data comes back, you’re connected — the error was cosmetic. If nothing comes back or ChatGPT says it doesn’t have access, use the table.
| Symptom | Likely cause | Fix |
|---|---|---|
| Developer Mode toggle doesn’t appear in Plugins → Advanced settings | Free tier OR org admin disabled it | Upgrade plan / contact org admin |
| Create button rejects the Server URL | URL not reachable from public internet (localhost / private IP / blocked) | Verify Royal MCP endpoint resolves externally via curl |
| OAuth consent screen never appears after Create | Browser popup blocker, OR your host returned an error on /authorize |
Disable popup blockers; check Royal MCP Activity Log for the failure |
| Consent screen appears but Authorize button does nothing | OAuth callback URL mismatch, or host-side CORS issue | See troubleshooting hub |
| Plugin created but “Couldn’t reach the MCP server” when used | Almost always shared-hosting WAF blocking the inbound MCP request | Same fixes as Claude side — see troubleshooting hub |
| “Unknown error” shown briefly after Authorize, but Settings → Plugins shows the Plugin as connected | Known ChatGPT-side UX quirk during the final OAuth callback — the handshake actually completed successfully | Ignore the error message. Verify in Settings → Plugins that your Royal MCP Plugin appears in the list with a Connected on date. If it does, you’re good. If the Plugin didn’t appear, start over from the New Plugin dialog. |
| “Something went wrong with setting up the connection” immediately after Authorize, and the Plugin does NOT appear in Settings → Plugins | Developer Mode not actually engaged — the toggle didn’t take, or was never turned on | Return to Settings → Plugins → Advanced settings and confirm the Developer Mode toggle is ON. Recreate the Plugin from the New Plugin dialog after enabling. On Free tier, Developer Mode isn’t available — use Claude instead. |
| OAuth completes but ChatGPT reports zero tools OR names a specific tool as invalid (e.g. “Invalid MCP tool schema for tool ‘wc_create_order’”) | Tool schema shape rejected by ChatGPT’s strict schema validator | Update Royal MCP to 1.4.44.1 or later. If the wp.org auto-updater hasn’t offered it yet, download the current build from the GitHub releases page and install via Plugins → Add New → Upload Plugin. |
| Connector works initially, then tools disappear on the second chat message or in a new conversation | Known ChatGPT-side session bug affecting multiple MCP servers — documented in OpenAI Developer Community reports | Start a fresh conversation. If it persists, delete and re-add the Plugin. If still broken, Claude Desktop is unaffected and works as an alternative until OpenAI ships the fix. |
| Write actions silently fail on Plus / Pro plan | Plan tier gate — write actions require Business+ on ChatGPT | Upgrade tier OR use Claude.ai (no tier gate) |
| ChatGPT keeps asking to confirm every action | Plugin’s Permissions is set to “Always ask” or “Allow read actions” | Settings → Plugins → your Royal MCP Plugin → Permissions — change to Allow low-risk actions or Allow all actions. See the Set Permissions section above. |
| Plugin works in chat but ChatGPT doesn’t use it | Description field too generic — ChatGPT can’t tell when to invoke it | Edit the Plugin, add a more specific description naming what your site contains (“blog content, product catalog, customer orders”) |
For any OAuth-flow failure that isn’t ChatGPT-specific (Cloudflare Zero Trust hijack, SiteGround .well-known/ 404, ModSecurity 406, etc.) — the troubleshooting start-here page covers all of them. The fixes work across Claude, ChatGPT, and any other MCP client.
Claude vs ChatGPT — When to Use Which (or Both)
Royal MCP supports both Claude and ChatGPT simultaneously — same WordPress site, same plugin, no extra license, no per-platform limit. You don’t have to choose. But the experience differs:
| Claude.ai (web + Desktop) | ChatGPT | |
|---|---|---|
| Plugins (formerly Custom Apps / Connectors) on Free tier | Yes | No — paid tier required |
| Write actions on individual paid tier | Yes | Limited (Plus/Pro = read-only) |
| API-key bypass (skip OAuth entirely) | Yes (Claude Desktop) | No — OAuth-only currently |
| Setup complexity | Single dialog | Settings toggle + Plugin dialog + permissions setting |
| Mobile sync | Yes | Yes |
Our honest take: Claude.ai is currently the better-fit platform for Royal MCP because it doesn’t gate write actions behind a tier upgrade and supports the API-key bypass for OAuth-blocked hosts. ChatGPT works fine for read / analysis use cases (monthly content audits, SEO reporting, WooCommerce sales summaries on Plus or Pro), but for “AI publishes my blog post” workflows on a personal account, Claude is the easier path until OpenAI lifts the tier gate.
Many users run both at once and pick whichever fits the task.
Still Stuck? Two Support Paths
If you’ve worked through the checklist and your connection still fails:
Community Support (free) — wp.org Plugin Forum
Post a new thread at wordpress.org/support/plugin/royal-mcp/. The Royal Plugins team monitors the forum regularly. Include the diagnostic info below.
Premium Support (paid) — direct one-on-one help
For priority response (24-hour SLA) and hands-on diagnostic help, our Premium Support tier is $149/year. Direct email, full refund if we can’t resolve your issue.
Information to include in your post or ticket
- Which ChatGPT plan you’re on (Plus / Pro / Team / Business / Enterprise / Edu).
- Which step failed (Developer Mode toggle missing, Server URL rejected, OAuth consent didn’t appear, consent succeeded but ChatGPT can’t reach the server, etc.).
- Screenshot of the Activity Log in Royal MCP with the most recent
oauth:*rows visible, View Details expanded on the failing row. - The exact error message ChatGPT shows.
- Your hosting provider and whether Cloudflare is in front of the site.