Client Setup Guides
Step-by-step instructions for connecting WPControl to your AI client.
Before You Begin
Every client needs two things: the MCP server URL and your API key. Copy both from the WPControl dashboard.
Server URL: https://api.wpcontrol.dev/mcp
API key format: wpmcp_xxxxx
wpmcp_your_api_key in every snippet below with the full API key from your dashboard. Truncated keys (with ...) will not work.Choose Your Client
Claude Desktop
Claude Desktop supports remote MCP servers via OAuth or the mcp-remote proxy. Choose the method that works best for you.
Method 1: mcp-remote proxy (recommended)
Open Settings → Developer → Edit Config to edit claude_desktop_config.json, then add:
{
"mcpServers": {
"wpcontrol": {
"command": "npx",
"args": [
"mcp-remote",
"https://api.wpcontrol.dev/sse",
"--header",
"Authorization: Bearer wpmcp_your_api_key"
]
}
}
}"url"property directly in Claude Desktop — it can cause the app to crash. Always use the mcp-remote proxy.Method 2: Connectors UI (no proxy needed)
Go to Settings → Connectors → Add Connector and enter the URL below. This triggers the OAuth flow automatically.
https://api.wpcontrol.dev/sse
Restart Claude Desktop after setup. WPControl will appear in your MCP server list.
Cursor
Cursor natively supports remote MCP servers with headers since v0.48.0. You can configure it through the UI or a config file.
Method 1: Settings UI (recommended)
Go to Cursor Settings → MCP → Add new MCP server, set Type to sse, and enter:
URL: https://api.wpcontrol.dev/sse
Method 2: Config file
Create .cursor/mcp.json in your project root, or edit the global config at ~/.cursor/mcp.json:
{
"mcpServers": {
"wpcontrol": {
"url": "https://api.wpcontrol.dev/sse",
"headers": {
"Authorization": "Bearer wpmcp_your_api_key"
}
}
}
}/sse) endpoint. After saving, restart Cursor or click the refresh button next to the MCP server entry.Windsurf
Windsurf (Codeium) uses a different key name for the server URL. You must use serverUrl instead of url.
{
"mcpServers": {
"wpcontrol": {
"serverUrl": "https://api.wpcontrol.dev/sse",
"headers": {
"Authorization": "Bearer wpmcp_your_api_key"
}
}
}
}serverUrl — not url. Using url will silently fail to connect.ChatGPT
ChatGPT supports MCP servers through its web UI with OAuth authentication only (no Bearer token config).
- In ChatGPT web, go to Settings → Apps → Developer Mode and enable it.
- Navigate to Settings → Connected apps → Add.
- Enter the MCP server URL:
https://api.wpcontrol.dev/sse - Follow the OAuth flow to connect your WPControl account.
Custom / API
For custom integrations, SDKs, or any MCP-compatible client, connect via raw HTTP using the Streamable HTTP transport. Pass your API key in the Authorization header.
Streamable HTTP (recommended)
POST https://api.wpcontrol.dev/mcp
Content-Type: application/json
Authorization: Bearer wpmcp_your_api_key
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/list",
"params": {}
}SSE transport (legacy)
GET https://api.wpcontrol.dev/sse Authorization: Bearer wpmcp_your_api_key
MCP SDK example (TypeScript)
import { Client } from "@modelcontextprotocol/sdk/client/index.js";
import { StreamableHTTPClientTransport } from "@modelcontextprotocol/sdk/client/streamableHttp.js";
const transport = new StreamableHTTPClientTransport(
new URL("https://api.wpcontrol.dev/mcp"),
{
requestInit: {
headers: {
Authorization: "Bearer wpmcp_your_api_key",
},
},
}
);
const client = new Client({ name: "my-app", version: "1.0.0" });
await client.connect(transport);
const tools = await client.listTools();
console.log(tools);/mcp) is preferred over SSE (/sse) for new integrations. Both are supported.