# Zed + xSpeed: Manage WordPress Caching

> Zed is a code editor with a built-in Agent Panel, and with xSpeed Hub added as a context server the agent can read cache status, purge, change settings and run speed tests on your WordPress sites. You add one entry to settings.json, sign in once, and ask in the panel.

Page: https://xspeedcache.com/agent/zed/
Last updated: October 2026

- One url entry under context_servers; no command to run or package to install
- Zed confirms every tool action by default, including MCP reads, until you say otherwise per tool
- Every site you connected to the Hub is reachable from the same panel thread

## How do I connect Zed to xSpeed?

### 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. Add xSpeed Hub as a remote server

Open Settings, then AI, then MCP Servers, click Add Server and choose Add Remote Server. Or run zed: open settings file and add the entry yourself. Zed calls MCP servers context servers, so the key is context_servers.

File: `settings.json`

```jsonc
{
  "context_servers": {
    "xspeedhub": {
      "url": "https://app.xspeedcache.com/xspeed/mcp"
    }
  }
}
```

### 3. Sign in

Because the entry has no Authorization header, Zed prompts you to authenticate against the server with the standard MCP OAuth flow. Approve access on the xSpeed Hub page that opens. There is no token to paste. Back in Settings, AI, MCP Servers, a green dot beside xspeedhub with the tooltip Server is active means it is connected.

```
Settings → AI → MCP Servers
```

### 4. Or use a connection token (alternative)

If you prefer a header, copy the connection token from Connect AI in the Hub (only the workspace owner sees it) and add it under headers. With an Authorization header set, Zed does not start the OAuth prompt.

File: `settings.json`

```jsonc
{
  "context_servers": {
    "xspeedhub": {
      "url": "https://app.xspeedcache.com/xspeed/mcp",
      "headers": { "Authorization": "Bearer <your connection token>" }
    }
  }
}
```

**Authentication:** OAuth sign-in or connection token. Leave the Authorization header out and Zed prompts you to sign in through the standard MCP OAuth flow; you approve access in the browser and paste nothing. If you prefer a header, add the connection token from the Hub's Connect AI page under headers.

**Check it worked:** ask "Use xSpeed Hub to list my sites and tell me which of them have Cloudflare connected."

## Does Zed ask before it changes my site?

The Zed agent confirms before it runs any tool action. The default setting, agent.tool_permissions.default, is confirm, and that covers MCP tool calls, reads included. A per-tool entry such as mcp:xspeedhub:get_cache_status with a default of allow lets that one tool run without a prompt, and the Always for tool button in the prompt writes the same entry. Setting the global default to allow auto-approves every tool, writes included, and then a write reaches the Hub as soon as your connection allows writes. xSpeed Hub has no confirmation step of its own.

xSpeed Hub has no confirmation step of its own. Read tools change nothing on your sites, with one exception to know about: contact_support sends an email to xSpeed support, and a read-only connection can still call it. A write tool (a purge, a settings change, a cache toggle, or a speed test that spends the shared allowance) runs as soon as your connection allows writes. Three things stand between a prompt and a change: your connection's scope, because a read-only connection refuses every write tool (the connection token has a Read-only everywhere switch, and a Viewer member only ever gets read access); your AI client's own tool-approval prompt; and the Hub's instructions to the agent, which tell it to confirm the target site and to ask once before a write that touches every site.

## Example session

```
You: Use xSpeed Hub to turn on the object cache for shop, but only if Redis is reachable from the server.
  → get_object_cache_status(site: shop) [read-only]: object cache off
  → test_object_cache(site: shop) [read-only]: Redis reachable, round trip 1 ms
Agent: Redis answers from the shop server, and the object cache is off. Turn it on for shop?
You: Yes, turn it on.
  → toggle_object_cache(site: shop, enabled: true) [changes site]: object cache on for shop
Agent: The object cache is on for shop. I can run a cached versus uncached timing next if you want a before and after.
```

## What is Zed?

Zed is a code editor with an Agent Panel where you chat with an AI agent that can read and edit your project and call tools. Zed calls the MCP servers it connects to context servers.

MCP, the Model Context Protocol, is how Zed reaches services outside your machine. Adding xSpeed Hub as a remote context server gives the agent the Hub's caching tools: status, purge, settings, preloader, object cache, Cloudflare and speed tests, for every site in your workspace.

## Why use Zed with xSpeed?

- **Confirm by default**: Zed starts in confirm for every tool action, MCP reads included, so you see each call before it runs unless you have allowed that tool.
- **Per-tool permission keys**: Each xSpeed tool has a key in the form mcp:xspeedhub:tool, so you can allow the reads you use all day and leave every write on a prompt.
- **The whole fleet from one panel**: The Hub fronts every site you connected. Ask about one site by name, or ask a question that spans all of them and read the per-site result.

## Good to know

- Reads prompt too. Zed confirms every call by default, so expect a prompt for each of the 16 read tools until you add per-tool allow entries.
- Zed documents per-tool entries for MCP tools but no wildcard, so list each read tool you want to allow. The Always for tool button adds them one at a time.
- Tool approval through agent.tool_permissions.default needs Zed v0.224.0 or later. Older versions use the agent.always_allow_tool_actions setting instead.
- These settings apply to the native Zed agent. External agents and terminal threads follow their own configuration, so check the approval layer of the one you use.

## Prompts to try

- With xSpeed Hub, list my sites and show page cache status for each one.
- Use xSpeed Hub to purge the blog cache, start the preloader and tell me how many URLs it queued.
- Use xSpeed Hub to run a mobile PageSpeed test on shop and compare it with the stored score history.
- Ask xSpeed Hub to preview a safe optimize_site pass on docs. Do not apply it.
- Using xSpeed Hub, check whether Cloudflare is connected on landing before you purge anything there.

## What can Zed do with xSpeed?

- [Purge the WordPress cache with Zed](https://xspeedcache.com/agent/zed/purge-cache/): Clear stale pages after a deploy, an edit or a plugin update, on one site or all of them.
- [Find out why WordPress pages are not cached with Zed](https://xspeedcache.com/agent/zed/troubleshoot-cache/): Work out why a site misses the cache, serves slow pages or shows a low hit ratio, using read-only checks first.
- [Scan a website for speed problems with Zed](https://xspeedcache.com/agent/zed/speed-scan/): Get a graded speed report with the fix for every failing check and a link you can share, for your own site or any public URL.
- [Run and track PageSpeed tests with Zed](https://xspeedcache.com/agent/zed/pagespeed-tests/): Read the PageSpeed scores a site already has, run a new test when something changed, and tell a Lighthouse score from a cache benchmark.
- [Raise a WordPress site's PageSpeed score with Zed](https://xspeedcache.com/agent/zed/optimize-site/): Preview and apply xSpeed's recommended settings to a site, check the pages still work, and be told plainly what caching cannot fix.
- [Tune WordPress cache settings with Zed](https://xspeedcache.com/agent/zed/cache-settings/): See which modules a site has, read their current settings, change them, and turn page caching on or off.
- [Warm the WordPress cache with Zed](https://xspeedcache.com/agent/zed/preload-cache/): Fill the page cache before visitors arrive, for example right after a purge or a deploy.
- [Set up the Redis object cache with Zed](https://xspeedcache.com/agent/zed/object-cache/): Connect a site to Redis or Memcached so database results survive between requests.
- [Manage Cloudflare caching with Zed](https://xspeedcache.com/agent/zed/cloudflare/): Check the Cloudflare connection, clear the edge cache and switch development mode on or off for a site.
- [Manage every WordPress site at once with Zed](https://xspeedcache.com/agent/zed/fleet/): Run one action across all of your sites, or a chosen few, and read the result site by site.

## Which way should I connect?

| Surface | Endpoint | Reaches | Auth | Tools |
| --- | --- | --- | --- | --- |
| [xSpeed Hub MCP](https://xspeedcache.com/docs/hub-mcp/) | `https://app.xspeedcache.com/xspeed/mcp` | Every site in your workspace, one connection | OAuth sign-in in the browser, or a connection token in an Authorization header | 29 tools (16 read, 13 write), seven of them can act on every site at once |
| [xSpeed Cache Site MCP](https://xspeedcache.com/docs/mcp-server/) | `https://your-site.com/xspeed/mcp` | One WordPress site | OAuth sign-in by a site admin, or the site's own token in an Authorization header | The full per-site tool set plus run_command for the WP-CLI surface |
| [xSpeed Scan MCP](https://xspeedcache.com/docs/scan-mcp/) | `https://xspeedcache.com/scan/mcp` | Any public URL, read-only | None. No account. | 5 tools: run_speed_scan, get_speed_scan and three product-info tools |
| [WP-CLI](https://xspeedcache.com/docs/wp-cli-commands/) | `wp xspeed …` | The site whose server the agent has a shell on | Your server login | Every xSpeed command: cache, purge, preloader, objcache, cf, score, settings and more |

## Frequently asked questions

### How do I add xSpeed Hub to Zed?

Open Settings, then AI, then MCP Servers, click Add Server and choose Add Remote Server with the URL https://app.xspeedcache.com/xspeed/mcp. Or add an xspeedhub entry with that url under context_servers in settings.json. Zed then prompts you to sign in with OAuth.

### Do I need an API key?

No. With no Authorization header in the entry, Zed runs the standard MCP OAuth flow and keeps the credentials it receives. If you prefer a header, the workspace owner can copy the connection token from the Hub's Connect AI page and you add it under headers.

### Will Zed change my site without asking?

By default Zed confirms before it runs any tool action, MCP reads included. The Hub has no confirmation step of its own, so if you set a tool to allow, or set the global default to allow, that tool runs without a prompt. Allow reads, keep writes on confirm. For read-only access, send the connection token with Read-only everywhere on, or sign in as a Viewer member.

### Why does Zed ask before every read?

The default value of agent.tool_permissions.default is confirm, which prompts before any tool action, MCP calls included. Add a per-tool entry such as mcp:xspeedhub:get_cache_status with a default of allow for the reads you trust.

### Which tools does Zed get from xSpeed Hub?

The 29 tools of the xSpeed Hub MCP server. Sixteen only read. Thirteen change a site or spend the shared speed-test allowance. In permission settings their keys take the form mcp:xspeedhub: followed by the tool name.

### Can I use Zed with one site and no Hub?

Yes. The xSpeed Cache plugin has its own MCP server at your-site.com/xspeed/mcp, and you add it as another context server. The Hub is the better fit once you have more than one site.

### How do I disconnect it?

Delete the xspeedhub entry from context_servers in settings.json, or remove it from Settings, AI, MCP Servers. Rotating or disconnecting the connection token in the Hub revokes only clients that send that token, so it does not end an OAuth sign-in; that is removed in Zed.

## Also works with

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

## Sources

- Zed: Model Context Protocol: https://zed.dev/docs/ai/mcp
- Zed: Tool permissions: https://zed.dev/docs/ai/tool-permissions
