# Tune WordPress cache settings with Manus

> Tuning cache settings with Manus means handing the general AI agent a whole settings task, such as making browser caching consistent across your WordPress sites, and letting it read, propose and write through xSpeed Hub.

Page: https://xspeedcache.com/agent/manus/cache-settings/
Last updated: October 2026

You run four WordPress sites and suspect they were set up at different times by different people. A performance report flagged that returning visitors re-download stylesheets and images on some of them. Instead of checking each dashboard, you give Manus the task in one message and name xSpeed Hub so it uses that server. Manus calls list_sites, then get_settings for the browser cache module on each site, one call per site, and builds a table of which sites send cache headers and how long files are kept.

What comes back is a finished piece of work rather than a stream of tool output: two sites send headers with a one week file lifetime, two send none, and Manus proposes switching the headers on for those two with the same lifetime. The Hub tells the agent to confirm once before a write that touches several sites, so Manus asks a single question. After your yes it sends one update_settings call with a list of the two handles, and the Hub returns a result per site, so a site that fails shows as its own row while the other is stored. Each site validates the values against its own schema, and credential fields are refused over the Hub.

What differs in Manus is that it is built to finish tasks with little supervision, and its custom MCP documentation describes no per-tool approval setting for a server you add. The question it asks before the write comes from your request and the Hub's instructions to the agent. So write the stop into the task, as in ask me once before you change anything, and read the plan before you answer. xSpeed Hub has no confirmation step of its own, so a write runs as soon as Manus calls it and the token allows writes.

## Set up Manus once

### 1. Put your sites in xSpeed Hub

Sign in at app.xspeedcache.com with Google or email; the Hub is free and has no site cap. Then connect each WordPress site from its own dashboard: click Connect Hub in the xSpeed Cache top bar, then Connect via xSpeed Hub. Each site needs the free xSpeed Cache plugin.

### 2. Copy the connection token from xSpeed Hub

Sign in at app.xspeedcache.com as the workspace owner, open Connect AI and copy the connection token. If Manus will only report, turn on Read-only everywhere so the Hub refuses every write tool on that token.

```
xSpeed Hub  >  Connect AI  >  connection token
```

### 3. Add xSpeed Hub as a custom MCP server

In Manus, open Settings, then Integrations, then Custom MCP Servers, and click Add Server. Name it xSpeed Hub, enter this as the server URL, and enter the connection token as the Bearer token in the authentication field.

```
https://app.xspeedcache.com/xspeed/mcp
```

### 4. Let Manus test it, then name it in a task

Manus checks that it can reach the server and read its list of tools. Then start a task that names xSpeed Hub, so Manus uses this server.

```
Use xSpeed Hub to list my sites and tell me which ones have page caching turned off.
```

Full setup: https://xspeedcache.com/agent/manus/

### Before you send a prompt that changes something

Reads change nothing on your sites, though contact_support emails xSpeed support. Writes run once your connection allows them, so your client's approval prompt and a read-only connection (the token's Read-only everywhere switch, or a Viewer sign-in) are the gates that matter. Manus's custom MCP documentation describes no per-tool approval setting for a custom server, and its scheduled tasks offer a skip confirmations option that lets Manus act without asking each time. xSpeed Hub has no confirmation step of its own, so a write runs as soon as Manus calls it and your connection allows writes. The Hub tells the agent to confirm the target site and to ask once before a write that touches every site, but that is an instruction. The firm stop is the token: with Read-only everywhere on, the Hub refuses every write tool. Keep it on for scheduled work, and leave skip confirmations off for any task that may write.

## Prompts

- Use xSpeed Hub to check browser cache headers on every site and switch them on where they are off. Ask me once first.
- With xSpeed Hub, build a table of the cache expiry and excluded URLs on all my sites. Change nothing.
- Ask xSpeed Hub for the minify settings on landing and tell me which options are still at their defaults.

## Example session

```
You: Use xSpeed Hub to check browser cache headers on every site and switch them on where they are off. Ask me once before you change anything.
  → list_sites [read-only]: 4 sites: shop, blog, docs, landing
  → get_settings(site: shop, module: browser-cache) [read-only]: enabled true, asset_ttl 604800
  → get_settings(site: blog, module: browser-cache) [read-only]: enabled false
  → get_settings(site: docs, module: browser-cache) [read-only]: enabled false
  → get_settings(site: landing, module: browser-cache) [read-only]: enabled true, asset_ttl 604800
Agent: blog and docs send no browser cache headers. Turning them on with the one week file lifetime shop uses touches 2 sites. Go ahead?
You: Yes, both.
  → update_settings(site: ["blog", "docs"], module: browser-cache, values: { enabled: true, asset_ttl: 604800 }) [changes site]: 2 stored: blog, docs
Agent: Both stored. All four sites now send browser cache headers with a one week file lifetime.
```

## How it works

1. **List the modules**: list_modules returns every Free and Pro module available on one site, with its settings schema and status. It tells the agent which module slugs exist, such as minify or gzip, and what each setting accepts.
2. **Read the current settings**: get_settings takes a module slug and returns its settings. Credential fields come back masked, so an agent cannot read a stored API token or password back in plain text.
3. **Change them**: update_settings takes the module and a values object of setting keys. The site checks the whole object first. If any key is unknown, any value is outside the schema, or a field is pinned by a constant in wp-config.php, it refuses the write, writes nothing and says which keys and why, sometimes with a "did you mean" hint.
4. **Turn page caching on or off**: Page caching has its own tool, toggle_cache, because it installs or removes the cache drop-in and the WP_CACHE constant. Asking update_settings to set cache_enabled does not work and is refused. If another caching plugin owns the drop-in, the site declines to enable xSpeed and returns blocked: true with the reason.
5. **Check the effect**: The result of a settings write is the stored settings. A module can add a warning when a setting is saved but has no effect on this server, for example Brotli on a server without the module for it, and the agent should pass that on. run_benchmark then times cached against uncached to see whether the change helped.
6. **Apply to many sites only after reading one**: update_settings and toggle_cache accept site: "all" or a list of handles. Each site validates against its own schema and answers in its own row, so a module missing on one site fails that row and the others still apply. Read one site first, then apply.

## Reference

| | |
| --- | --- |
| Discover | list_modules (read): Free and Pro modules, settings schema, status, per site |
| Read settings | get_settings (read): argument module; credential fields masked |
| Change settings | update_settings (write): arguments module and values; validated by the site |
| Bad input | The whole write is refused and nothing is written; the error names the keys and reasons |
| Page cache on or off | toggle_cache (write): argument enabled; cache_enabled in update_settings is refused |
| Blocked by another plugin | toggle_cache returns blocked: true with blocked_reason when another plugin owns the cache drop-in |
| Every site at once | update_settings and toggle_cache accept site: "all" or a list of handles, one result per site |
| Pro modules | A Pro module on a site without an active licence cannot be read or written; the site refuses |
| Credential fields | Refused by default over MCP; set them in the xSpeed dashboard, not through the agent |
| Read-only connection | The connection token with Read-only everywhere on, or a Viewer member's sign-in: update_settings and toggle_cache are refused; list_modules and get_settings still work. An OAuth sign-in gets the scopes the client asks for, read and write by default, clamped to the member's role |
| Confirmation | None on the Hub; the Hub tells the agent to briefly confirm intent for these two, and your client's prompt is the gate |

## Rules

- Read before you write. Ask for list_modules and get_settings first, so the agent changes real keys with valid values instead of guessing.
- update_settings and toggle_cache change how a live site behaves. They run as soon as your connection allows writes. The Hub tells the agent to briefly confirm intent first, which is guidance to the agent, so your client's approval prompt and a read-only connection (the connection token with Read-only everywhere on, or a Viewer sign-in) are the gates. The switch does not limit an OAuth sign-in.
- For site: "all", the Hub tells the agent to confirm once with "this will touch all N sites", then make one call. The result is per site, and some sites failing is a partial result to report, not a blanket success or failure.
- Do not ask an agent to set credentials such as a Cloudflare token or Redis password. The site refuses those writes by default, and they belong in the xSpeed dashboard.
- If a settings result says a value is saved but inactive on this server, relay that. Do not tell the user the feature is enabled.

## Good to know with Manus

Manus connects to a custom MCP server with a Bearer token, so it sends the Hub's connection token, and that token reaches every site in the workspace. For an audit that should only report, turn on Read-only everywhere on the Connect AI page, and the Hub refuses update_settings and toggle_cache whatever Manus decides. Scheduled tasks run unattended and can skip confirmations, so keep a recurring settings review to reads with that option off. Rotating the token cuts off Manus and every other client that sends it.

## More prompts for this job

They work in any client connected to xSpeed Hub.

- Use xSpeed Hub to list the modules on shop and tell me which ones are off.
- Ask xSpeed Hub for the current minify settings on blog.
- With xSpeed Hub, turn on HTML minification on blog, then benchmark the cache and tell me if it helped.
- Use xSpeed Hub to turn page caching off on staging while I debug, and tell me when it is off.
- Using xSpeed Hub, read the gzip settings on shop first, then enable the same options on every site.
- Use xSpeed Hub to set the page cache lifespan on docs to 30 days, and if the site refuses it, tell me why.

## Frequently asked questions

### Can Manus change settings on several sites in one step?

Yes. update_settings accepts a list of site handles or every site, and the Hub runs them one after another and returns a result per site. Ask Manus to confirm once before such a write, and read the per-site result, because some sites can succeed while another fails.

### How do I keep a Manus settings audit read-only?

Turn on Read-only everywhere for the connection token on the Hub's Connect AI page. Manus sends that token, so the Hub then refuses update_settings, toggle_cache and every other write tool, while list_modules and get_settings still work.

### How does an agent know which settings exist?

It calls list_modules for the site, which returns every available module with its settings schema and status, then get_settings for the one module it wants to change. The schema says which keys exist and what values each accepts.

### What happens if the agent sends a wrong setting key?

The site refuses the whole update and writes nothing. The error names the keys it rejected and why, such as an unknown key, a value outside the allowed range, or a field fixed by a constant in wp-config.php, and it can suggest the nearest valid key.

### How do I turn page caching on or off with an agent?

Use toggle_cache with enabled set to true or false. It installs or removes the cache drop-in and the WP_CACHE constant. Setting cache_enabled through update_settings does not work. If another caching plugin already owns the drop-in, the site will not enable xSpeed and says why.

### Can one prompt change settings on all of my sites?

Yes. update_settings and toggle_cache accept site: "all", and the Hub runs the sites one after another with a one-second pause and returns a result per site. Each site checks the values against its own schema, so a site that lacks the module fails its own row while the others apply.

### Can the agent change my Cloudflare or Redis credentials?

Not by default. Writing credential fields over MCP is off unless the site owner allows it, and the site refuses the write and names the fields. Set credentials in the xSpeed dashboard. Credential values also come back masked when an agent reads settings.

## Tune cache settings with other agents

[Claude Code](https://xspeedcache.com/agent/claude-code/cache-settings/) · [Claude](https://xspeedcache.com/agent/claude/cache-settings/) · [Claude Cowork](https://xspeedcache.com/agent/claude-cowork/cache-settings/) · [ChatGPT](https://xspeedcache.com/agent/chatgpt/cache-settings/) · [Codex](https://xspeedcache.com/agent/codex/cache-settings/) · [Cursor](https://xspeedcache.com/agent/cursor/cache-settings/) · [GitHub Copilot in VS Code](https://xspeedcache.com/agent/github-copilot/cache-settings/) · [Windsurf](https://xspeedcache.com/agent/windsurf/cache-settings/) · [Gemini CLI](https://xspeedcache.com/agent/gemini-cli/cache-settings/) · [Antigravity](https://xspeedcache.com/agent/antigravity/cache-settings/) · [Zed](https://xspeedcache.com/agent/zed/cache-settings/) · [Kiro](https://xspeedcache.com/agent/kiro/cache-settings/) · [OpenCode](https://xspeedcache.com/agent/opencode/cache-settings/) · [OpenClaw](https://xspeedcache.com/agent/openclaw/cache-settings/) · [Hermes Agent](https://xspeedcache.com/agent/hermes-agent/cache-settings/) · [Grok Build](https://xspeedcache.com/agent/grok-build/cache-settings/) · [ChatGPT dots](https://xspeedcache.com/agent/chatgpt-dots/cache-settings/) · [Grok](https://xspeedcache.com/agent/grok/cache-settings/) · [Grok Bot](https://xspeedcache.com/agent/grok-bot/cache-settings/) · [Muse](https://xspeedcache.com/agent/muse/cache-settings/) · [Kimi Code](https://xspeedcache.com/agent/kimi/cache-settings/) · [Paperclip](https://xspeedcache.com/agent/paperclip/cache-settings/) · [NanoClaw](https://xspeedcache.com/agent/nanoclaw/cache-settings/)

## More with Manus

- [Purge the WordPress cache with Manus](https://xspeedcache.com/agent/manus/purge-cache/)
- [Find out why WordPress pages are not cached with Manus](https://xspeedcache.com/agent/manus/troubleshoot-cache/)
- [Scan a website for speed problems with Manus](https://xspeedcache.com/agent/manus/speed-scan/)
- [Run and track PageSpeed tests with Manus](https://xspeedcache.com/agent/manus/pagespeed-tests/)
- [Raise a WordPress site's PageSpeed score with Manus](https://xspeedcache.com/agent/manus/optimize-site/)
- [Warm the WordPress cache with Manus](https://xspeedcache.com/agent/manus/preload-cache/)
- [Set up the Redis object cache with Manus](https://xspeedcache.com/agent/manus/object-cache/)
- [Manage Cloudflare caching with Manus](https://xspeedcache.com/agent/manus/cloudflare/)
- [Manage every WordPress site at once with Manus](https://xspeedcache.com/agent/manus/fleet/)

## Documentation

- How to enable Page Cache: https://xspeedcache.com/docs/page-cache/
- How to minify CSS and JavaScript: https://xspeedcache.com/docs/minify/
- How to add cache rules and bypasses: https://xspeedcache.com/docs/rules-and-bypass/
- Site MCP tool reference: https://xspeedcache.com/docs/mcp-tool-reference/
