Architecture

Three pieces: a plugin on each WordPress site, an MCP server on your computer, and a desktop app that manages both. Here is what each one does and exactly what travels between them.

On this page

The path of a request

  1. You“Fix the meta description of post 482.”
  2. AI clientClaude Code, Claude Desktop or ChatGPT Desktop picks the tool wp_set_seo.
  3. MCP serverclaude-wp-mcp on your computer turns the call into one HTTPS request, signed with your token.
  4. PluginChecks HTTPS, token, scope, capability and rate limit, then runs the change.
  5. WordPressThe change is saved and written to the audit log.

Nothing sits in between: no Xaflo cloud, no relay, no account. The request goes from your computer to your site.

The WordPress plugin

Xaflo WP Connect runs on each site you want to manage. It adds a REST API under /wp-json/wpcb/v1 with 94 routes, and everything that keeps that API safe:

  • token authentication (signed with a secret in wp-config.php), scopes and WordPress capability checks;
  • an HTTPS requirement, per-token rate limits and a confirmation step for destructive operations;
  • an audit log of every call, backups, a SQL guard and a sandbox for file writes;
  • an admin area under Xaflo: Dashboard, Connect, Audit Log, Tokens, Settings, Maintenance and About.

The folder is still called wp-claude-bridge and the namespace wpcb/v1, from the project’s first name. The plugin is MIT-licensed.

The MCP server

claude-wp-mcp is a small Node.js program that speaks the Model Context Protocol to your AI client and HTTPS to your site. It registers 84 tools, all named wp_*; the Tools reference groups them by job, and the tools catalogue describes each one.

Your AI client starts one copy per site, over standard input and output, with the site and the token as two arguments or, better, as the environment variables WPCB_SITE and WPCB_TOKEN:

Command
claude-wp-mcp --site https://your-site.example --token YOUR_TOKEN

The package (1.3.0) ships inside the plugin, at wp-content/plugins/wp-claude-bridge/mcp/, and inside Xaflo Desktop, so you never fetch it from a third party.

Xaflo Desktop

Xaflo Desktop is an app for Windows & Linux that keeps your sites and their tokens in one place. Since 2.0.1 it carries the MCP server and its own Node, so nothing else needs installing. Version 2.0 (Windows) has five places in the sidebar:

  • Sites: add, test and switch sites; each site’s sheet has Set up Claude and ChatGPT, Instructions for the AI and Open wp-admin (signed in, with admin:login).
  • Remote: Plugins, Files, Deploy (one plugin .zip to several sites), Maintenance and Console (debug.log).
  • Library: prompts and tools in one searchable place.
  • Licence and Settings.

Whenever a site asks for confirmation, Desktop shows what will change and waits for your click. The Linux build is still 1.1.1, with the earlier layout.

The app updates itself. Some of its features use REST routes that have no MCP tool, such as the file explorer and maintenance mode; see the REST API reference.

What leaves your computer, and what doesn’t

  • Your token stays in your AI client’s configuration on your computer. It is sent only to your site, in the Authorization header, over HTTPS.
  • Your content travels between your site and your AI client, because the assistant has to read it to work on it. What your AI provider does with conversation content is governed by your agreement with them.
  • Xaflo receives nothing: telemetry sent to Xaflo is 0. The plugin makes no outbound requests of its own, apart from the update check against this site in the self-hosted build, and downloads you ask for (media from a URL, a plugin zip), which go through an SSRF guard.

Where things live

WhatWhere
Signing secretWPCB_JWT_SECRET in wp-config.php
Tokens and revocationsThe wpcb_tokens and wpcb_revoked tables, with your site’s table prefix
Audit logThe wpcb_audit table, kept 90 days by default
Backupswp-content/wpcb-backups/, one zip per backup
MCP server packagewp-content/plugins/wp-claude-bridge/mcp/
MCP configurationYour AI client, for example ~/.claude.json for Claude Code or claude_desktop_config.json for Claude Desktop