Skip to main content
Glama

Security status across sites

recipe__security_status
Read-onlyIdempotent

Security posture for every connected site running GuardPress, Wordfence or Kadence Security (formerly Solid Security) (when a site has more than one, GuardPress is read, unless GuardPress has never scanned the site and another plugin is protecting it: Wordfence once it has scanned the site, else Kadence Security), from Royally's hourly security sweep: which plugin each site uses (provider), when it last scanned, how many components have known vulnerabilities (null, with vulnerability_checking off, when the site's plugin is not checking: GuardPress without its vulnerability feed, Wordfence before its first scan, and always for Kadence Security, which does not scan for vulnerabilities; not checked, never zero; stale when the feed or last Wordfence scan is over a week old, so new vulnerabilities may be missing; unknown when the site has not said), serious configuration or file findings, updates waiting (updates_waiting counts those without a published vulnerability, null for Kadence Security, which does not report updates; pending_updates lists every core, plugin and theme update the plugin reported, one per component, with current_version, latest_version, fixes_vulnerability, actively_exploited and ignored (set when the agency chose to ignore that update: scope site or every_site, version, reason; ignored updates are left out of the updates alert, but one that fixes a vulnerability is still alerted), or null until the sweep has read the list), and the open security alerts with their advisory ids (use fleet__get_advisory for details), plus muted_alerts that a person dismissed or accepted as a risk. A site whose only problems are muted has status muted, not ok. A site where Royal MCP Pro is not licensed is listed with status unlicensed and no alerts, because Royally cannot check it. A site where Royal MCP reads none of these plugins is checked through EMCP Tools' security scan when that server is connected to it and its scan tool is on (provider emcp: malware, changed WordPress files, critical settings and waiting updates; vulnerability_checking always off, so vulnerable_components is null). Wordfence and Kadence Security sites also get alerts when the firewall or login protection is off. hardening lists which protective settings the site's plugin has on (null until read): provider, items of {key: firewall, login_lockouts, two_factor, strong_passwords, malware_scans, file_monitoring, login_captcha, xml_rpc_off, security_headers, comment_spam or hidden_login; state on, off, learning (Wordfence's firewall not blocking yet) or no_licence (a GuardPress feature that needs its license)}, only the items that plugin reports (a missing item is not reported, not off), GuardPress's own score and grade, and for GuardPress how many users have two-step sign-in set up. Sites Royally does not monitor for security are listed under not_monitored with the reason. Account alerts (a new administrator, which stays open after the account's first 7 days until a person acknowledges, resolves or dismisses it or the account is removed or is no longer an administrator, and capabilities given outside a user's role, which close once they are gone) are raised hourly on every connected site with Royal MCP, with or without a security plugin: they are among these open alerts on the sites listed here, and on other sites they come from Royally's account check (source royally_account_check; use fleet__list_advisories). Use recipe__run_security_sweep to refresh first if the last check is old.

Input Schema

NameRequiredDescriptionDefault
site_idsNoOnly these sites. Omit for every monitored site.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A3.5/5.0
Behavior4/5

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

Annotations already cover readOnly/idempotent, so the bar is lower, but the description adds substantial context beyond them: hourly sweep cadence, staleness after a week, unlicensed sites listed with no alerts, not_monitored sites with a reason, muted-only sites reported as muted rather than ok. It does not discuss result size/pagination for large fleets, which is the main operational risk for a fleet-wide read.

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

Conciseness2/5

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

The entire description is one enormous run-on sentence with nested parentheticals several levels deep, making precedence rules and null semantics nearly impossible to parse on first read. Content is front-loaded with the purpose, but a 400+ word single-sentence block is the opposite of structured.

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

Completeness4/5

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

With no output schema, the description must define the returned fields, and it does so extensively: provider precedence, vulnerable_components null/'not checked'/'stale'/'unknown' states, updates_waiting and pending_updates shape, hardening items and states, muted_alerts, not_monitored, unlicensed. Mostly complete for correct interpretation, though the density risks an agent missing individual field rules.

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

Parameters3/5

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

There is a single optional site_ids parameter with 100% schema description coverage, so the schema already carries the semantics; per the rubric that sets a baseline of 3. The description reinforces the default scope ('every connected site', 'Sites Royally does not monitor ... under not_monitored') but adds no filtering syntax or behavior beyond the schema.

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

Purpose4/5

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

The opening phrase 'Security posture for every connected site running GuardPress, Wordfence or Kadence Security' identifies the resource and its scope, and later clauses differentiate from recipe__run_security_sweep and fleet__get_advisory. It never uses an explicit verb ('returns', 'gets'), and the thread of the sentence is buried under plugin-precedence rules, so the purpose is clear but not crisp.

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

Usage Guidelines3/5

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

The final sentence gives one actionable rule ('Use recipe__run_security_sweep to refresh first if the last check is old') and it routes detail lookups to fleet__get_advisory / fleet__list_advisories. It does not say when to prefer this over fleet__security_triage, fleet__scan_security or recipe__run_security_sweep, and gives no exclusion criteria.

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