Claude Code can send a custom header with an HTTP MCP server, so it connects straight to https://your-site.com/wp-json/wp-visibility/mcp with Basic authentication. One command registers the site.
Before you start
- An Application Password for the WordPress user the assistant will act as.
- The Assistant connection module on in WP Visibility → Settings → Modules. If writes should wait for you, turn Autopilot on too and leave Assistant changes in its Autopilot section on Hold for my review, the default.
1. Encode the credential
Basic authentication wants username:application-password in base64 (RFC 7617, checked September 27, 2026). On macOS or Linux:
printf '%s' 'seo-agent:xxxx xxxx xxxx xxxx xxxx xxxx' | base64
On Windows PowerShell:
[Convert]::ToBase64String([Text.Encoding]::UTF8.GetBytes('seo-agent:xxxx xxxx xxxx xxxx xxxx xxxx'))
The spaces WordPress shows in the password may stay or go; both forms are accepted, because WordPress strips non-alphanumeric characters before it checks an Application Password (checked September 27, 2026).
2. Add the server
claude mcp add --transport http wpvisibility https://your-site.com/wp-json/wp-visibility/mcp \
--header "Authorization: Basic c2VvLWFnZW50Onh4eHgg..." \
--scope user
In PowerShell, type each multi-line command on this page as one line, without the trailing backslashes.
--scope user makes the site available in every project on this computer. The default, local, limits it to the current project. Avoid --scope project for this server: that scope writes the configuration, header included, to .mcp.json at the project root, a file meant for version control, where a credential does not belong.
Name the server after the site when you connect more than one; Claude Code names each tool mcp__<server>__<tool>, so the server name tells the sites apart (hooks reference, checked September 27, 2026).
3. Check it
Inside a session, /mcp shows each server’s status and tool count; wpvisibility should show as connected. Ask for a read first. The read tool takes a post ID, so use the ID of a real post in place of 42:
Using wpvisibility, what are the SEO title and description of post 42?
Then one change:
Propose a better description for it.
With Hold for my review selected, the tool result carries a proposal ID and the site is unchanged until you approve it in WP Visibility → Review queue.
Manage it
claude mcp list
claude mcp get wpvisibility
claude mcp remove wpvisibility --scope user
To rotate the credential, revoke the old Application Password in WordPress, create a new one, and run claude mcp remove then claude mcp add again with the new header.
The bridge, if you prefer it
Claude Code also runs stdio servers. The values wp visibility mcp-config prints for Claude Desktop work here as a command with environment variables, with one change: that command prints your home URL as WP_API_URL, and the proxy reads a bare domain as an older, different endpoint (proxy README, checked September 27, 2026). Use https://your-site.com/wp-json/wp-visibility/mcp instead:
claude mcp add --transport stdio wpvisibility \
--env WP_API_URL=https://your-site.com/wp-json/wp-visibility/mcp \
--env WP_API_USERNAME=seo-agent \
--env "WP_API_PASSWORD=xxxx xxxx xxxx xxxx xxxx xxxx" \
-- npx -y @automattic/mcp-wordpress-remote@latest
It needs Node.js 22 or newer, per the proxy’s requirements (checked September 27, 2026). The direct HTTP route above is simpler: the bridge reaches the same endpoint through an extra Node.js process.
Command syntax checked September 27, 2026 against the Claude Code MCP documentation.