Skip to content

Safety controls

On top of the always-on governance model, the plugin offers five optional controls. All five stay off until you set them.

Set a per-minute cap on the Settings tab under “Rate limit (per minute)”. Each connection can make that many agent calls a minute, counted per agent user, and 0 turns the limit off. Calls over the cap are denied and logged on the Activity Log tab, so you can spot a connection that keeps hitting it.

Restrict connections to a list of IP addresses you trust. Off until you set it.

Force new content the agent creates to draft, so nothing an agent writes goes live without a human publishing it.

Cap the length of titles the agent can set, a small guard against runaway or malformed content.

When an agent writes a page, post, template, or reusable block, the plugin steers the styling into block attributes instead of inline CSS and checks the markup before it saves. That keeps agent-authored content from showing up as “invalid content” in the block editor. It warns by default. Turn on strict mode and a block that fails validation is refused rather than saved with a warning.

Added in 1.7.4. The abilities you enable on the Abilities tab apply to the whole site. This screen narrows that further, for one role or for one connection.

The rules only ever narrow. An ability has to clear the global list, then the role’s list, then that connection’s list before an agent can call it, so a row here can take reach away and can never add it. That order is enforced twice, once when the agent asks what tools exist and again when it calls one, so a tool it cannot use does not show up in its list either.

A site that never opens the screen sees no change at all. Scoping works at the role level and the connection level. There is no per-Application-Password scoping, so if you need two agents with genuinely different reach, give them separate connections or separate users.

Since 1.7.5 you set this with a searchable checkbox picker rather than by typing ability slugs into a text box, and the role and client fields are selects listing what actually exists on your site. The stored data and the narrowing rules are identical either way; only the input control changed. The same release added a Client ID copy control and paginated the Connection tables.

The five optional controls at the top of this page are per-call limits on abilities that are still registered as MCP tools. Two other switches head the same Safety controls card on the Settings tab, and they work a level earlier: they decide what gets registered at all. They sit apart from those five because they do not share the “off until you set them” promise.

  • Read-only mode, off by default, added in 1.6.0. One switch and nothing that writes is registered as an MCP tool, whatever you have ticked, so a blocked write is missing from the agent’s tool list rather than refused when it calls. It covers abilities bridged from your other plugins too, each judged by that plugin’s own annotation, and anything that declares neither way counts as a write and stays out. Turning it on enables nothing by itself, and turning it off enables nothing either.
  • The high-risk lock, on by default, added in 1.5.0. The WooCommerce abilities that move money or grant authority stay locked even after you enable them, until you switch the high-risk control on as well. That switch is written to the audit log.

Both are covered in full on Features and Security.