How to Connect Other MCP Clients to WordPress
Easy MCP AI works with any MCP-compatible client. This page collects the connection settings for clients that don't have a dedicated guide: Windsurf, Cline, Roo Code, Zed, LibreChat, Pydantic AI, and generic stdio-based clients.
For the most popular clients, see the dedicated guides: ChatGPT, OpenAI Codex CLI, Claude.ai, Claude Code, Claude Desktop, GitHub Copilot, Google Antigravity, Cursor, OpenCode, and Manus.
In this article
Prerequisites
- A WordPress site served over HTTPS with Easy MCP AI installed and activated (see the installation guide).
- Pretty permalinks enabled (Settings > Permalinks set to anything other than "Plain").
- For token-based clients, an API token from Easy MCP AI > API Token & OAuth.
Your site's MCP endpoint URL is always your domain followed by /wp-json/easy-mcp-ai/v1/mcp:
https://yoursite.com/wp-json/easy-mcp-ai/v1/mcpIn every snippet below, replace the URL with your own endpoint and YOUR_API_TOKEN with your token.
Generic Settings for Any MCP Client
OAuth 2.1 (Recommended Where Supported)
For clients that support OAuth 2.1, point the client at the MCP endpoint URL. The client auto-discovers OAuth, prompts you to log in to WordPress, and manages tokens automatically. No manual token is needed.
| Setting | Value |
|---|---|
| Transport | Streamable HTTP |
| MCP Endpoint URL | https://yoursite.com/wp-json/easy-mcp-ai/v1/mcp |
| Auth method | OAuth 2.1 (auto-discovered) |
Bearer Token (Authorization Header)
For clients without OAuth support, generate a token and pass it as a header.
| Setting | Value |
|---|---|
| Transport | Streamable HTTP |
| Endpoint URL | https://yoursite.com/wp-json/easy-mcp-ai/v1/mcp |
| Authentication | Authorization: Bearer YOUR_API_TOKEN |
| Content-Type | application/json |
Token in URL (Last Resort)
For clients that cannot set headers, append the token to the endpoint:
https://yoursite.com/wp-json/easy-mcp-ai/v1/mcp/YOUR_API_TOKENURL-based tokens appear in server access logs, WordPress debug logs, and browser history. Use the Authorization header method whenever possible.
Windsurf
Add to ~/.codeium/windsurf/mcp_config.json:
{
"mcpServers": {
"wordpress": {
"serverUrl": "https://yoursite.com/wp-json/easy-mcp-ai/v1/mcp",
"headers": {
"Authorization": "Bearer YOUR_API_TOKEN"
}
}
}
}Windsurf also supports OAuth 2.1, so you can omit the headers and complete the login flow instead.
Cline (VS Code)
Add to cline_mcp_settings.json:
{
"mcpServers": {
"wordpress": {
"autoApprove": [],
"disabled": false,
"transportType": "streamableHttp",
"url": "https://yoursite.com/wp-json/easy-mcp-ai/v1/mcp",
"headers": {
"Authorization": "Bearer YOUR_API_TOKEN"
}
}
}
}Roo Code (VS Code)
Roo Code uses the same format as Cline. Add the snippet above to the Roo Code MCP settings file (roo_cline_mcp_settings.json).
Zed Editor
Add to ~/.config/zed/settings.json:
{
"context_servers": {
"wordpress": {
"settings": {},
"url": "https://yoursite.com/wp-json/easy-mcp-ai/v1/mcp",
"headers": {
"Authorization": "Bearer YOUR_API_TOKEN"
}
}
}
}LibreChat
Add to librechat.yaml:
mcpServers:
wordpress:
type: http
url: https://yoursite.com/wp-json/easy-mcp-ai/v1/mcp
headers:
Authorization: "Bearer YOUR_API_TOKEN"Pydantic AI (Python)
Use the streamable HTTP server class in your Python application:
from pydantic_ai import Agent
from pydantic_ai.mcp import MCPServerStreamableHTTP
wordpress_mcp = MCPServerStreamableHTTP(
url="https://yoursite.com/wp-json/easy-mcp-ai/v1/mcp",
headers={"Authorization": "Bearer YOUR_API_TOKEN"},
)
agent = Agent("openai:gpt-4o", toolsets=[wordpress_mcp])Any stdio-Based Client
For MCP clients that only speak stdio, use the mcp-remote bridge:
{
"command": "npx",
"args": [
"-y",
"mcp-remote",
"https://yoursite.com/wp-json/easy-mcp-ai/v1/mcp",
"--header",
"Authorization:Bearer YOUR_API_TOKEN",
"--transport",
"http-only"
]
}Replace the outer object key with the server name your client expects. The mcp-remote bridge requires Node.js on your computer; your WordPress server needs nothing extra.
Control What Connected Clients Can Access
Every connection acts as a WordPress user, so roles apply as usual. Tokens can be limited to specific tools, and site-wide guardrails let you disable sensitive tools globally, set rate limits, force AI-created posts to stay drafts, and audit every call. See Creating and Managing API Tokens for details.
Security
If you identify a potential security vulnerability in this plugin, please disclose it responsibly. Follow the protocols on the Themeisle Security Page.
