Skip to main content
Glama

royal-mcp__wp_update_option

Destructive

Update a WordPress option. Four gates in order: (1) manage_options capability on the caller; (2) master "Allow AI to write WordPress options" admin toggle enabled; (3) hard denylist (siteurl, home, admin_email, mailserver_*, upload_path, users_can_register, wp_user_roles, wp_capabilities, api_key/secret/_pass/key patterns, royal_mcp* namespace — permanent, cannot be filter-overridden); (4) write⊆readable invariant + writable allowlist (option must appear in both royal_mcp_readable_options AND royal_mcp_writable_options — plugin authors must opt into READS before opting into WRITES). Error text names which gate blocked. "Not in allowlist" is fixable by an administrator under Royal MCP settings (Allowlisted plugin options) or via filter opt-in; "permanently denylisted" is not. Set dry_run=true to preview the change (current + proposed value, autoload state, size delta) without writing. (site: demo.royalplugins.com) Through Royally: waits for a person to approve it in Royally; nothing on the site changes until then.

Input Schema

NameRequiredDescriptionDefault
nameYes
valueYesNew value (any JSON type). Full overwrite — read first, merge in your client, then write back.
dry_runNoPreview the write without persisting. Returns current/proposed value, autoload state, and size delta.
site_idNoSite to run this tool on: 8ef2e52b-bd07-4671-a363-ebe8b480b65c (https://demo.royalplugins.com)

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Far beyond the annotations: it discloses the ordered capability/toggle/denylist/allowlist gates, the write⊆readable invariant, that errors name the blocking gate, and — critically — that the call is queued for human approval via Royally so nothing changes immediately. The annotations flag destructiveHint, but this adds the actual destruction surface and recovery semantics.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Purpose and the four gates are front-loaded ahead of the dry_run and Royally notes, so the agent can stop reading early. The gate-3 parenthetical is a long comma-spliced denylist that bloats one sentence, but each clause carries operational information rather than filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a destructive, multi-gate mutation with no output schema, this covers permissions, admission rules, preview mode, error triage, remediation paths, and the asynchronous approval delay. An agent has everything needed to decide whether to call it and how to interpret a rejection.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is already 75%, so the schema carries most parameter meaning (value is documented as a full overwrite requiring a read-merge-write cycle). The description nonetheless adds real semantics for `name` by listing the denylist patterns and allowlist membership rule that determine whether a name is even writable, plus the dry_run preview contract. It does not explain `site_id`, but that is enum-constrained and self-describing.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Opens with a specific verb+resource ('Update a WordPress option') that cleanly separates it from the read-side sibling (wp_get_option). The gate list and the Royally approval note make the scope and effect unmistakable without opening a schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly prescribes 'Set dry_run=true to preview the change ... without writing', enumerates the four gates that must pass, and tells the agent which failures are recoverable ('Not in allowlist' fixable by an administrator/filter) versus terminal ('permanently denylisted' is not). That is a complete when/when-not/why-blocked guide.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources