WordPress MCP Server with Cline in VS Code

Jul 17, 2026
 — by 
Kris Kratz
 in 

I couldn’t find a clear explanation of this, and AI wasn’t very helpful on the topic either.

The goal was to get an MCP server functioning with VS Code’s Cline Extension on my development computer so I could leverage my AI agents to work directly with the WordPress API.

First of all, you need to create an application password, but that will only become available if your development environment is on SSL. Since I’m running my development environment in Docker, I used Caddy on my router, but you can also add Caddy to Docker to issue a localhost SSL certificate.

Once you have that running, you can go to WP-Admin Dashboard and navigate to Users > Profile and scroll down to the Application Password. Give it a name like, Cline MCP, and create it.

Next you need to install two plugins into WordPress. One plugin is the actual MCP Server and the other plugin will expose the WP API to the WP MCP Server. Maybe there’s a better solution out there, but this is what I got working, and I’m tired of wrestling with the issue to search more.

For the first plugin, install the official WordPress MCP Server. Currently, it’s not available in the WP Plugin Marketplace. Go to GitHub and download the latest release: https://github.com/WordPress/mcp-adapter. Install it manually and make sure to activate it.

For the second plugin, you need to expose the WP APIs to the MCP server. I’m using “Enable Abilities for MCP” you can check out the page here: https://wordpress.org/plugins/enable-abilities-for-mcp/. Since this one is on the marketplace, installation is easy and straightforward. Remember to activate it as well.

There aren’t any settings for either plugin that I can see. They just expose the MCP Server endpoint protected by the application password you created earlier. If you have other plugins with an MCP API it will be discovered by the WordPress MCP Server and exposed to your AI as well.

You’ll then be able to edit your cline_mcp_settings.json. Just go to Cline > MCP Servers (icon looks like a stack of servers) > Configure MCP Servers (button at the bottom). That will open the file in the editor. Modify the following JSON and add it to your file:


{
  "mcpServers": {
    "wordpress-wp-robot": {
      "disabled": true,
      "timeout": 60,
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "@automattic/mcp-wordpress-remote"
      ],
      "env": {
        "WP_API_URL": "https://<localhost or example.com>/wp-json/mcp/mcp-adapter-default-server",
        "WP_API_USERNAME": "<username>",
        "WP_API_PASSWORD": "xxxx xxxx xxxx xxxx xxxx xxxx",
        "OAUTH_ENABLED": "false",
      }
    }
  }
}

You need to change, <localhost or example.com>, to the appropriate location of your dev server. and you need to change the <username> and password.

Save the cline_mcp_settings.json and cline will add the server to the list in the GUI panel and connect to the server.

Now, here’s what I got stuck on for a couple of hours. Cline connects, reports a nasty error, and the indicator next to the switch stays green. Ignore the error! If the indicator is green, that is all that matters. The error on my system looks like this:

Nasty looking but harmless. All it is saying is that Cline is requesting specific abilities and the WP MCP Server is not returning a response. Seriously, if the WP MCP Server simply returned an empty array, Cline wouldn’t generate this error. That’s all.

Furthermore, you can verify

First, add your server’s address or localhost, username and password:

curl -i -X POST "https://<localhost or example.com>/wp-json/mcp/mcp-adapter-default-server" \
  -u "<username>:xxxx xxxx xxxx xxxx xxxx xxxx" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "initialize",
    "params": {
      "protocolVersion": "2024-11-05",
      "capabilities": {},
      "clientInfo": { "name": "curl-client", "version": "1.0.0" }
    }
  }'

Response will look like this, you need to copy the mcp-session-id:

Here’s the line you’re looking for: mcp-session-id: 7da30afb-fc84-4729-abc8-4b8b94ce32bc

Second command to see the communication is really working. Change the same info as above, and add the mcp-session-id from the previous command.

curl -X POST "https://<localhost or example.com>/wp-json/mcp/mcp-adapter-default-server" \
  -u "<username>:xxxx xxxx xxxx xxxx xxxx xxxx" \
  -H "Content-Type: application/json" \
  -H "Mcp-Session-Id: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/list",
    "params": {}
  }'

Response should look something like this:

Now, you can see it’s actually working. You can send other curl requests to dig in further if you need more information.

You might need to reestablish Cline’s connection to the MCP Server after running these commands. Just toggle the switch in next to the MCP Server in Cline.

I hope that helps.