Security plugins · 2 modules
WordPress Security Plugin MCP that hardens only what you confirm.
A WordPress security plugin MCP reads supported findings with defined redaction and proposes settings changes through a plan. The client can send confirm=true itself; configure human confirmation or Pro approvals when a person must decide. Inspect the returned health and attempted-recovery results and test access separately.
What goes wrong without a plugin-aware module
- A security plugin assumed to protect the site while one of its modules is inert
- Lockout reasons pasted into a chat with usernames and email addresses intact
- A hardening change that quietly switches off the Application Passwords the agent signs in with
Why it matters
What plugin-aware changes for security plugins
A security plugin is the one place on a site that knows who is attacking it and what its last scan found, and it is also the place most likely to hold data nobody should paste into a chat: attempted usernames, full IP addresses, email addresses and licence keys. It is also easy to harden into a lockout. The module reads through a redacting layer, and its few writes go through a reviewable plan, a confirmed apply, a check that the site and MCP still answer, and an undo. The confirm flag is sent by the agent unless the site's confirmation mode is "A person approves" or Pro's approval queue holds the call, so turn one of those on if a person must sign off.
A first safe workflow
Start with the status call and read one line in it closely: whether the firewall and login protection are actually running, not only switched on. Solid Security's brute-force module, for one, does nothing until an IP detection method is chosen. The status call is in GoBuildWP Free. With Pro, ask for a hardening plan, read the current and proposed value of each change, and apply it only when every line is one you would have made yourself.
How to tell it worked
Compare the agent's summary with the plugin's own dashboard once, then trust the redaction: networks instead of IPs, user ids instead of usernames. After applying a plan, read the applied list: each setting says whether it was read back, and the before and after checks say whether the home page, REST and MCP still answered. A finding is only as current as the last scan, so check its date before acting on an empty list.
Worked example
Tighten a Wordfence site's login protection after a burst of failed sign-ins, without locking out the agent's own connection.
Wordfence; Solid Security takes the same calls and answers in the same shape. The first two calls run on GoBuildWP Free, the plan and its apply on Pro.
wppilot/security-plugin-statusFreeReports whether the firewall is on and in which mode, the lockout thresholds, whether scans are scheduled and when the last one finished, and the active lockouts.
wppilot/security-scan-findingsFreeLists open findings from the latest scan, filtered to critical and high, with the affected file or plugin. It does not start a scan, so the last scan date matters.
wppilot/security-harden-planProPlans the change without writing: each setting with its current value, the proposed one and a reason, plus what it refused and why. It never offers switching off Application Passwords or the REST API.
wppilot/security-apply-settingsProWith confirm=true, recomputes that exact plan, writes each setting through Wordfence's own save path and reads it back, checking before and after that the home page, REST and MCP still answer. If a check fails, it puts every setting back at once and reads them again; any it cannot restore come back as rollback_failed, named, for a person to fix in Wordfence's screen or retry with rollback-change.
wppilot/list-changesFreeShows the applied plan as one ledger entry; wppilot/rollback-change undoes all of its settings together.
What to check yourself. Sign in to wp-admin from a normal browser and make one MCP call from the client. Compare the lockout thresholds in Wordfence's own screen with the plan you approved; the result lists each setting as verified or not, but a person should see the vendor's screen once.
Modules
2 modules compared
Each module loads only when its plugin is active. The Edition column shows how much of each one GoBuildWP Free covers; the rest needs Pro. Open a module for its full ability list, requirements and safety notes.
| Module | Edition | Abilities | Inspect / change / destructive | Covers |
|---|---|---|---|---|
| Wordfence | Free 3 + Pro 5 | 8 | 4 / 1 / 3 | firewall state, mode and protection level, open scan findings by severity, current blocks and lockouts, hardening plan: current value, proposed value and reason |
| Solid Security | Free 3 + Pro 5 | 8 | 4 / 1 / 3 | site scanner results, brute-force and two-factor settings, IP detection check, current and lifted lockouts |
Choosing and running a security plugin with an agent
Wordfence and Solid Security behave differently under an agent
Both plugins answer the same abilities in the same shape, so a prompt written for one runs on the other. What differs is underneath, and it changes how you read an answer and how you undo a mistake.
- Where scans run. Wordfence starts a background scan on the site and requires its configured key. The GoBuildWP handler does not universally refuse local sites; inspect Wordfence's start result, configured vendor-service connectivity and background-request requirements, then read findings after completion. Solid Security asks its cloud service to scan, so the site must be reachable from the internet.
- How long a block lasts. A Wordfence block expires, after 24 hours unless you choose otherwise, and Wordfence deletes expired records, so its lockout list shows only what is in force now. Solid bans stay until lifted, and Solid keeps lifted lockouts, so asking for expired entries returns a short history.
- How settings are saved. Wordfence validates each value before saving it. Solid saves module settings at the end of a request, so the apply step forces that save before it reads values back.
- What stays report-only. Wordfence extended protection edits server configuration and is only reported. Solid two-factor is reported, not set, and Solid's network brute-force protection is switched on only when Solid already holds its network key.
Picking between them for an agent-managed site
Neither plugin is the better choice everywhere. A site behind a firewall or on a private staging host gets no scan results from Solid's cloud; a site that never finished Wordfence onboarding gets none from Wordfence. If expiring blocks suit your traffic, Wordfence's defaults need less tidying after an incident. If you want a ban to stay until a person lifts it, Solid's behaviour matches that, and its retained lockouts give an agent more history to summarise.
Sites without a security plugin still get a baseline read
The security modules load only when Wordfence or Solid Security is active. Without either, GoBuildWP Free's security-audit ability still inspects a bounded set of WordPress hardening signals and lists outstanding updates. It is not a malware scan and will not find what a scanner finds, so treat it as a check of configuration the owner controls, and install a security plugin when the site needs file scanning, a firewall or login lockouts. The security audit use case walks through that read.
Rehearse hardening where a lockout costs nothing
Hardening is the one job in this category where a wrong change locks out the person or agent who would fix it. Run the plan on a staging copy first, with wp-admin access and file access that do not depend on the agent. Check the staging scanner's actual prerequisites: Wordfence needs its key and working vendor-service and background requests where required by the installed configuration; a started scan is not a completed one. Solid's cloud must reach the site publicly. Use findings from the environment that actually completed the scan rather than treating staging availability as guaranteed.
When you test blocking, use a synthetic address rather than a real visitor's. The abilities refuse the address making the request, the server's own addresses and private ranges, but a site behind a proxy or CDN may see visitors under an address you did not expect, which only a check on that site reveals. After an apply, sign in from an ordinary browser, load the login page and one REST route, and make one MCP call from the client.
Permissions and safety profiles for security abilities
Every security ability needs an account with manage_options, so an editor-level connection sees none of them. Under the Read Only profile the status, findings and lockout reads still answer, which suits a client you only want reporting. The hardening plan changes nothing either, though it is a Pro ability. Applying it, starting a scan, and blocking or unblocking an address are Pro writes that take an explicit confirm, and an access token created with a narrower ceiling than the site's profile stays at that ceiling. Safety profiles lists what each profile allows.
FAQ
Security plugins and AI, answered
Can an agent change Wordfence or Solid Security settings?
With GoBuildWP Pro, yes, within limits, and only after confirmation; GoBuildWP Free reads their status, findings and lockouts only. wppilot/security-harden-plan proposes firewall, brute-force, scan and login settings with the current value, the new one and a reason; wppilot/security-apply-settings applies that exact plan, reads each setting back, and tries to put everything back if the site or MCP stops answering, reporting rollback_failed with the settings it could not restore. It never disables Application Passwords, the REST API or XML-RPC, never hides the login URL or blocks countries, and the whole apply undoes as one change. Wordfence extended protection, its Premium real-time blocklist and Solid two-factor are only reported.
Can it block or unblock an IP address?
Yes, with GoBuildWP Pro and confirm=true: one address or a range no wider than /16 (IPv4) or /32 (IPv6), through the plugin's own block list, with a reason. Wordfence blocks last 24 hours unless you choose otherwise; Solid bans are permanent until lifted. The address making the request, the server's own addresses and private ranges are refused, and undoing an unblock restores the block with the time it had left.
What personal data leaves the site?
As little as the job allows. IP addresses come back as their /24 or /48 network, usernames as the account's user id or a masked form, and email addresses are removed from any text the plugin stored. Licence keys, API keys and secrets are never read into a result.
Why does Wordfence break my MCP connection?
Wordfence switches WordPress Application Passwords off by default, so a client signing in with one gets a 401 on every call. GoBuildWP Free's Connection Doctor names Wordfence and the setting to uncheck, and OAuth or a GoBuildWP access token work without Application Passwords.
Start in Read Only, then add what the site runs
Connect your AI client to the free MCP foundation and check what it can see. The free plugin already covers the basics for Wordfence and Solid Security; add Pro when a job needs more.