Skip to content

Claude Desktop

import { Aside } from ‘@astrojs/starlight/components’;

  • Claude Desktop installed (Mac or Windows)
  • MCPWP plugin active on your WordPress site
  • An API key (generate one here)

There are two ways to connect Claude Desktop today. Pick the config-file method if you can — it keeps your key out of the URL entirely.

Option A — Config file (header-based, more secure)

Section titled “Option A — Config file (header-based, more secure)”

Open your Claude Desktop config file:

  • Mac: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows: %APPDATA%\Claude\claude_desktop_config.json

Add the MCPWP server:

{
"mcpServers": {
"my-wordpress-site": {
"url": "https://YOUR-SITE.com/wp-json/mcpwp/v1/mcp",
"headers": {
"X-API-Key": "mcpwp_YOUR_KEY_HERE"
}
}
}
}

Restart Claude Desktop. The connection is established on startup. Because the key travels in a header, it never appears in the URL, in Claude’s connector settings screen, or in any logs that capture request URLs.

Option B — “Add custom connector” (URL-only)

Section titled “Option B — “Add custom connector” (URL-only)”

Claude Desktop’s and claude.ai’s built-in Settings → Connectors → Add custom connector dialog only accepts a URL — there’s no field for a custom header. To authenticate this way, put the key in the URL as a query parameter:

https://YOUR-SITE.com/wp-json/mcpwp/v1/mcp?api_key=mcpwp_YOUR_KEY_HERE

Paste that full URL into the connector dialog and save.

Add one entry per site:

{
"mcpServers": {
"client-a": {
"url": "https://client-a.com/wp-json/mcpwp/v1/mcp",
"headers": { "X-API-Key": "mcpwp_KEY_A" }
},
"client-b": {
"url": "https://client-b.com/wp-json/mcpwp/v1/mcp",
"headers": { "X-API-Key": "mcpwp_KEY_B" }
}
}
}
Run wp_introspect, then wp_onboard to get an overview of my site, then list all pages.