Developers

Build on the wptaskify MCP server

Two hosted MCP endpoints give any MCP client real tools for WordPress, WooCommerce, Shopify, Pinterest and Google. Sign-in is standard OAuth, every tool ships with a JSON schema, and risky actions wait for a human.

Hosted MCP server, nothing to installOAuth 2.1 with PKCE389 tools with JSON schemasApproval step for risky actions
Claude Code
claude mcp add --transport http wptaskify https://wptaskify.com/mcp
Any MCP client config
{
  "mcpServers": {
    "wptaskify": {
      "url": "https://wptaskify.com/mcp"
    }
  }
}

Endpoints

URLUse it for
https://wptaskify.com/mcpWordPress sites, Elementor, Pinterest, Google Search Console and Analytics
https://wptaskify.com/mcp/storeWooCommerce and Shopify stores

Both speak MCP over Streamable HTTP (JSON-RPC 2.0). One wptaskify account works on both; add each as its own connector if your client needs store tools too.

Authentication

Access is OAuth 2.1: authorization code with PKCE (S256), public clients, and dynamic client registration. Most MCP clients do all of this for you the first time they connect.

  • Discovery: https://wptaskify.com/.well-known/oauth-authorization-server and https://wptaskify.com/.well-known/oauth-protected-resource
  • Registration: POST https://wptaskify.com/register; authorize at /authorize; tokens from /token
  • A request without a token gets 401 with a WWW-Authenticate: Bearer resource_metadata=... header
  • Tokens belong to one wptaskify account. Changing the password or signing out everywhere revokes them.
There are no static API keys. For a client that cannot do OAuth itself, run it through the mcp-remote bridge shown below; it handles the sign-in in your browser.

Connect a client

Claude Code
claude mcp add --transport http wptaskify https://wptaskify.com/mcp
Cursor (~/.cursor/mcp.json)
{
  "mcpServers": {
    "wptaskify": {
      "url": "https://wptaskify.com/mcp"
    }
  }
}
VS Code (.vscode/mcp.json)
{
  "servers": {
    "wptaskify": {
      "type": "http",
      "url": "https://wptaskify.com/mcp"
    }
  }
}
Clients that only run local (stdio) servers
{
  "mcpServers": {
    "wptaskify": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-remote",
        "https://wptaskify.com/mcp"
      ]
    }
  }
}

Claude.ai and ChatGPT connect from their own settings: see the Claude and ChatGPT docs.

Raw protocol

If you are writing your own client, these are the three calls that matter. Responses may arrive as JSON or as a text/event-stream, so send both in Accept.

1. initialize
curl -i -X POST https://wptaskify.com/mcp \
  -H "Authorization: Bearer $ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -H "Accept: application/json, text/event-stream" \
  -d '{"jsonrpc":"2.0","id":1,"method":"initialize",
       "params":{"protocolVersion":"2025-06-18","capabilities":{},
                 "clientInfo":{"name":"my-app","version":"1.0"}}}'
2. tools/list
# reuse the Mcp-Session-Id header from the initialize response
curl -X POST https://wptaskify.com/mcp \
  -H "Authorization: Bearer $ACCESS_TOKEN" -H "Mcp-Session-Id: $SESSION" \
  -H "Content-Type: application/json" -H "Accept: application/json, text/event-stream" \
  -d '{"jsonrpc":"2.0","id":2,"method":"tools/list"}'
3. tools/call
curl -X POST https://wptaskify.com/mcp \
  -H "Authorization: Bearer $ACCESS_TOKEN" -H "Mcp-Session-Id: $SESSION" \
  -H "Content-Type: application/json" -H "Accept: application/json, text/event-stream" \
  -d '{"jsonrpc":"2.0","id":3,"method":"tools/call",
       "params":{"name":"list_my_sites","arguments":{}}}'

Tool results come back as MCP content; most tools return one text item holding JSON.

Sites and accounts

One account can hold many sites, stores and Pinterest accounts. Call list_my_sites to see them, then either use_site to switch for the session or pass site on a single call. Pinterest tools take pinterest_account (a username) the same way.

Approvals

Deletes, refunds, cancellations, theme switches and other risky actions do not run straight away. The tool returns this instead:

Tool result
{
  "needs_approval": true,
  "approval_id": "a1b2c3",
  "action": "Permanently delete post 42",
  "next": "Ask the user to approve, call resolve_approval with this approval_id, then call the same tool again with the same arguments."
}

Once the person approves (in chat, or in Approvals in the dashboard), call resolve_approval and repeat the original call with the same arguments. See security for the full list.

Plans, limits and errors

Your plan decides which tools run and how many AI actions you get each month; see what each plan includes. A tool your plan does not include returns an error that says so. Errors come back as JSON with an error field and, where useful, a hint. Pinterest publishing is paced: at most 10 pins a day per account, 120 minutes apart.

Resources

Your AI is ready to work.

Connect WPTaskify and turn conversations into real actions.

Start Free