Skip to content
WP Visibility

Connect an assistant

Connect Cursor, Copilot or Any Other MCP Client

Two routes cover every client: a URL plus an Authorization header when the client can send one, or the local bridge when it can only run a command. Here is how to tell which yours is.

Updated September 21, 2026

Docs

Look at how your client adds an MCP server. If its configuration accepts a server URL and custom headers, connect directly. If it accepts a command to run, use the bridge. Both end at the same endpoint with the same credential, so the plugin does not care which you choose.

Route 1: URL plus header

Endpoint: https://your-site.com/wp-json/wp-visibility/mcp Header: Authorization: Basic followed by the base64 of username:application-password

The endpoint answers JSON-RPC over HTTP POST, one message per request, with no sessions and no server-sent events. A client that insists on an SSE stream cannot use it directly; use the bridge.

In the common JSON shape clients use for HTTP servers, the entry looks like this. Check your client’s documentation for its exact field names.

{
  "mcpServers": {
    "wpvisibility": {
      "url": "https://your-site.com/wp-json/wp-visibility/mcp",
      "headers": {
        "Authorization": "Basic c2VvLWFnZW50Onh4eHgg..."
      }
    }
  }
}

Route 2: the bridge

@automattic/mcp-wordpress-remote is a small program that runs on your computer, holds the credential, and relays between the client and the site. It needs Node.js 22 or newer. The plugin prints the block:

wp visibility mcp-config --user=seo-agent
{
  "mcpServers": {
    "your-site-com": {
      "command": "npx",
      "args": ["-y", "@automattic/mcp-wordpress-remote@latest"],
      "env": {
        "WP_API_URL": "https://your-site.com/wp-json/wp-visibility/mcp",
        "WP_API_USERNAME": "seo-agent",
        "WP_API_PASSWORD": "<application password>"
      }
    }
  }
}

WP_API_URL must be the full endpoint address. The bridge treats a bare site address as an older WordPress MCP plugin and looks for a route this plugin does not provide.

Which clients take which route

  • Claude Code: route 1, one command.
  • Claude Desktop: route 2, one config block.
  • Cursor, VS Code with Copilot, Windsurf, Zed and similar editors: most accept both a URL with headers and a command. Prefer route 1 where headers are supported.
  • ChatGPT: neither, today. Why.
  • A client that only offers OAuth: not supported by the plugin’s endpoint.

Before the first request

The Assistant connection module must be on (WP Visibility → Settings → Modules). Turn on Autopilot and keep Assistant changes on Hold for my review so writes wait in the queue. Then ask for a read, then for one change, and confirm the proposal appears in WP Visibility → Review queue before you ask for anything in bulk.

Several sites

Each site gets its own entry and its own Application Password. One user per site keeps the activity log honest about which client did what, and lets you revoke one site’s access without touching the others.