Other formats agents might prefer:
markdownjsonllms.txt

Agent? You probably want markdown or json, or Pod over MCP.

Reported issues for royal-mcp

Pod holds 18 of 20 problems reported by people outside the maintainer team. Issues filed by the project's own owners, members and collaborators are excluded entirely — a maintainer's release checklist is not a warning to a prospective user.

Back to royal-mcp.

Most discussed

wp_update_post silently ignores menu_order (and reports success)

Bug: wp_update_post silently ignores menu_order (and reports success)

Summary

The wp_update_post MCP tool cannot change a post/page's menu_order. The parameter is neither in the tool's input schema nor mapped into the update payload, so any request to set it is silently dropped — yet the tool still returns "Post updated successfully". Because there is no read-after-write, an MCP client (Claude / ChatGPT / Gemini) is told the operation succeeded when in fact nothing changed. Thi

Read the thread · 2026-07-20 · closed · external user · 3 comments

noindex issue with rank math

wp_get_seo_meta always reports noindex: false on Rank Math, and wp_update_seo_meta writes a malformed robots array

Plugin version: 1.4.36 SEO plugin: Rank Math (Yoast path is unaffected) File: includes/MCP/Server.php

Summary

Two separate bugs in the Rank Math branch of the SEO meta tools:

  1. wp_get_seo_meta never reports noindex: true. The reader casts an array to a string before searching it, so the check can never match. noindex is returned as false for

Read the thread · 2026-07-19 · closed · external user · 2 comments

Oauth issue with Claude

Bug report: Intermittent HTTP 403 "Session credentials mismatch" with Claude (OAuth) during extended sessions Plugin: Royal MCP 1.4.34 WordPress: 7.0.1 Host: Simply.com (Apache/LiteSpeed shared hosting) — host WAF ruled out (see Evidence) Client: Claude custom connector, OAuth 2.1 mode (the only mode the Claude connector exposes) Endpoint: POST /wp-json/royal-mcp/v1/mcp Likely related: open issue #13 ("MCP session terminates repeatedly during extended operations, ~50 API calls") Summary When Cla

Read the thread · 2026-07-11 · closed · external user · 5 comments

Woocommerce order pagination

Pls support woocommerce order pagination to retrieve tons of orders

Read the thread · 2026-06-22 · closed · external user · 3 comments

Bug: Gutenberg block style.css escaping is corrupted via Royal MCP

Environment

  • WordPress: 7.0 RC3
  • Royal MCP: 1.4.15
  • Affected methods:
    • wp_update_page
    • wp_create_page

Summary

When creating or updating Gutenberg block content through Royal MCP, escaped characters inside a block's style.css attribute are not preserved correctly.

This affects the new per-block Custom CSS feature in WordPress 7.0 RC3. Escaped newlines (\n) and escaped ampersands (\u0026) inside Gutenberg block JSON can be transformed into invalid strings such as n

Read the thread · 2026-05-13 · closed · external user · 3 comments

MCP session terminates repeatedly during extended operations (~50 API calls)

When performing bulk operations via the MCP connector — in this case rebuilding a WordPress navigation menu requiring ~170 sequential wp_delete_menu_item and wp_create_menu_item calls — the session terminates with {"code": 32600, "message": "Session terminated"} approximately every 50 calls. The session recovers on retry without requiring full reconnection (the connector remains shown as connected in Claude Desktop), but the interruptions require manual intervention to resume the operation. Expe

Read the thread · 2026-05-12 · closed · external user · 9 comments

Royal MCP Tag Editing

I apologize if this is correct method of doing this, I have never used github before. I am also not a developer of any sort.

I connected Claude to my WP site via the Royal MCP tool. The main purpose of this was to bulk edit the meta seo for the tags used on articles. Claude is telling me it doesn't have the ability to edit tags, only create them. I managed to get Claude to tell me how to fix this via editing the plugin. I added the code, but WP tells me it can't save the changes, no matter what

Read the thread · 2026-04-09 · closed · external user · 2 comments

cannot activated

installed using the wordpress’s native plugin store. cannot activate, returns "Plugin could not be activated because it triggered a fatal error."

04-Apr-2026 06:28:45 UTC] PHP Fatal error: Uncaught Error: Class "Royal_MCP\OAuth\Token_Store" not found in /home/my-site/public_html/wp-content/plugins/royal-mcp/royal-mcp.php:99 Stack trace: #0 /home/my-site/public_html/wp-includes/class-wp-hook.php(341): Royal_MCP_Plugin->activate() #1 /home/my-site/public_html/wp-includes/class-wp-hook.php(365):

Read the thread · 2026-04-04 · closed · external user · 3 comments

Most recent

Enhancement: search parameter on wp_get_media (title, filename, alt text)

The problem

wp_get_media accepts only per_page (max 100) and mime_type — there is no way to find a specific attachment. The only path is paging the library 100 at a time and scanning title / alt_text client-side.

Real case: a homepage customer-logo strip had an enterprise customer's name misspelled in the image alt text. wp_update_media can fix it in one call, but finding the attachment ID first means paging the entire media library — on a site with a few thousand attachments

Read the thread · 2026-08-05 · closed · outside contributor · 1 comment

Enhancement: expose content_length in wp_get_posts / wp_get_pages / wp_search results

The problem

An agent cannot tell how large a post is without fetching it. On a page-builder site that is the difference between a 200-byte answer and a 1.1 MB one, and there is no way to triage without paying the cost.

Concrete case from a production audit: size-checking 20 candidate pages to decide which were safe to edit meant fetching all 20. One was a pricing page at 1,104,943 bytes, discovered by receiving it. Word count is actively misleading as a proxy — a 551-word Avada post m

Read the thread · 2026-08-05 · closed · outside contributor · 2 comments

Feature: readable revision content and server-side diff (wp_get_revision_content / wp_diff_revisions)

The problem

wp_get_post_revisions returns revision_id, parent_id, author_name, date, title, word_count — but there is no way to read a revision's content, so there is no way to diff a post against its own prior state through MCP.

This matters because "verify your change and confirm nothing else moved" is a standard requirement for agent-driven edits. With no readable revisions, the only fallback is crawling the rendered public page before and after and diffing HTML externa

Read the thread · 2026-08-05 · closed · outside contributor · 0 comments

Feature: wp_replace_sitewide — cross-post find/replace with mandatory dry run

The problem

wp_replace_in_post (#70) covers single-document edits, but real content-hygiene work is inherently cross-post. From one production audit:

Today each correction is N separate wp_search calls to locate, then N per-post replace calls, with no way to confirm the set is complete before starting or that it is closed afterwards.

Proposed tool

wp_replace_sitewide(find, replace, post_types?, post_status?, dry_run, expected_count?)
  → { total_matches, posts: [ { id, title, 

[Read the thread](https://github.com/royalplugins/royal-mcp/issues/73) · 2026-08-05 · open · outside contributor · 1 comment

### Feature: Avada / Fusion Builder integration — text-block read + write tools

## The problem

Avada stores page-builder state as nested shortcodes in `post_content`, and the ratio of markup to human-readable copy is brutal. Measured on a live production site (WP 7.0.2, PHP 8.4, Royal MCP 1.4.38, 364-page content audit):

| Page | Visible copy | `post_content` |
|---|---|---|
| a typical blog post | 551 words | ~55 KB |
| `/pricing/` | ~800 words | **1,104,943 bytes** |
| an integrations page | ~600 words | ~60 KB |

That is roughly **100:1 overhead**, on every post type o

[Read the thread](https://github.com/royalplugins/royal-mcp/issues/72) · 2026-08-05 · open · outside contributor · 1 comment

### Woocommerce direct HPOS

Please support direct HPOS reading for WooCommerce

[Read the thread](https://github.com/royalplugins/royal-mcp/issues/42) · 2026-06-22 · closed · external user · 2 comments

### Feature request: Add Yoast slug field support

I would like the Yoast integration in Royal MCP to include support for updating the Yoast slug field.

## Problem this solves

When using Royal MCP to create or update SEO content, the integration can assist with Yoast-related metadata, but the URL slug field does not appear to be available through the Yoast integration workflow.

This creates a gap when using an AI client to fully prepare or optimize a post/page, because the title, meta description, and other SEO fields may be handled, but the 

[Read the thread](https://github.com/royalplugins/royal-mcp/issues/34) · 2026-06-08 · closed · external user · 2 comments

### Bug: wc_create_product ignores type parameter — always creates simple products

## Bug: `wc_create_product` ignores `type` parameter — always creates `simple` products

### Description

When calling `wc_create_product` with `type: variable` (or any non-simple type such as `woosb`), the product is silently created as `simple`. This makes it impossible to create variable products via MCP, since subsequent calls to `wc_create_variation` fail with:

Error: Product is not a variable product


### Steps to Reproduce

1. Call `wc_create_product` with `type: variable`, e.g.:

[Read the thread](https://github.com/royalplugins/royal-mcp/issues/30) · 2026-05-27 · closed · external user · 1 comment

### wc_get_orders hangs indefinitely when shop_order_refund records appear in results

## Summary

`wc_get_orders` times out (MCP error -32001) whenever a `shop_order_refund` record appears in the result set. A single `wc_get_order` call on a `shop_order_refund` ID also hangs indefinitely.

The root cause is that the tool does not filter by order type, so WooCommerce's internal refund child records (`shop_order_refund`) are returned alongside real orders. `format_order_summary()` is not designed to handle `WC_Order_Refund` objects and hangs when it encounters one.

Note: I'll be i

[Read the thread](https://github.com/royalplugins/royal-mcp/issues/20) · 2026-05-17 · closed · outside contributor · 2 comments

### wp_reorder_menu_items and wp_update_menu_item with position parameter silently destroy menu structure

Two tools cause irreversible destruction of WordPress navigation menu structure with no warning, no confirmation, and no documentation of the risk:
wp_reorder_menu_items
Calling this tool destroys all parent-child relationships across the entire menu. All items are reduced to flat, blank custom links with no titles, URLs, or hierarchy. The operation cannot be undone via the WordPress admin — it requires a full database restore.
wp_update_menu_item with the position parameter
Passing a position v

[Read the thread](https://github.com/royalplugins/royal-mcp/issues/14) · 2026-05-12 · closed · external user · 2 comments

The remaining reports are on [the project's issue tracker](https://github.com/royalplugins/royal-mcp/issues).