royal-mcp__wp_security_triage
Read-only security check for a site you suspect was compromised. Reports facts only, never secrets: must-use plugins and drop-ins (file, name, version, modified date) and anything else in mu-plugins; plugin folders and loose PHP files in the plugins folder that WordPress does not list as plugins; every plugin with its folder and main-file modified dates; users holding capabilities beyond their role (id, short login hash, role, extra capabilities, registration date; no emails or logins) and the administrator count; whether named options exist (present + count only, never names beyond your pattern or values); leftovers in wp-content/upgrade. Pass since (a date) to flag anything installed, changed or registered after it, plugin_names to look for published indicator plugin slugs, option_patterns for published database indicators. Ends with the indicators found and a summary that never says the site is clean: "No indicators found among the checks run". Filesystem walks stop at 5,000 files or 3 seconds per check a… Through Royally: read-only, runs straight away.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| since | No | Optional date (2026-10-17 or 2026-10-17T00:00:00Z): flag plugins, must-use plugins, drop-ins and upgrade leftovers changed after it, and count administrators registered after it. | |
| checks | No | Optional subset of checks to run. Default: all. | |
| site_id | No | Site to run this tool on: 8ef2e52b-bd07-4671-a363-ebe8b480b65c (https://demo.royalplugins.com) | |
| plugin_names | No | Up to 50 plugin slugs or folder names from a published advisory; each is looked for among registered, unregistered, must-use and drop-in files. | |
| option_patterns | No | Up to 20 option names or patterns with one * at the start or end (e.g. *_sync_token), at least 6 characters besides the *. Each returns present and count only. |