Connection
Unable to connect to MainWP Dashboard
Unable to connect to MainWP Dashboard
SSL certificate problem
SSL certificate problem
UNABLE_TO_VERIFY_LEAF_SIGNATURE or similar. For production, fix the certificate: install the full chain, match the domain, check expiration. For local development with self-signed certificates only, set "skipSslVerify": true.dashboardUrl uses HTTP which transmits credentials in plain text
dashboardUrl uses HTTP which transmits credentials in plain text
"allowHttp": true.ECONNREFUSED or ETIMEDOUT
ECONNREFUSED or ETIMEDOUT
Authentication
403 Forbidden
403 Forbidden
Bearer token not working
Bearer token not working
MAINWP_TOKEN bearer authentication fails against the WordPress Abilities API, which authenticates through native WordPress. Configure MAINWP_USER and MAINWP_APP_PASSWORD with an Application Password instead.Tool errors
Tool not found
Tool not found
list_sites_v1, not list-sites-v1). If the name is right, the tool may be hidden by your allowedTools/blockedTools configuration, or the ability may not exist on your Dashboard version.SAFE_MODE_BLOCKED
SAFE_MODE_BLOCKED
"safeMode": false.Confirmation required
Confirmation required
"requireUserConfirmation": false.Confirmation flow
PREVIEW_REQUIRED
PREVIEW_REQUIRED
CONFIRMATION_REQUIRED with preview: null
CONFIRMATION_REQUIRED with preview: null
PREVIEW_EXPIRED
PREVIEW_EXPIRED
CONFLICTING_PARAMETERS
CONFLICTING_PARAMETERS
user_confirmed: true and dry_run: true together. They mean opposite things (execute vs. preview only); it should send one or the other.CONFIRMATION_UNSUPPORTED: Destructive operation cannot be confirmed
CONFIRMATION_UNSUPPORTED: Destructive operation cannot be confirmed
confirm parameter, so the confirmation flow cannot run and the server refuses to execute. The built-in deletion tools all declare confirm and never hit this. If a third-party ability triggers it, fix its annotations on the Dashboard side, or manage it explicitly with allowedTools/blockedTools.Resource limits
RESOURCE_EXHAUSTED: Session data limit exceeded
RESOURCE_EXHAUSTED: Session data limit exceeded
maxSessionData. Restart the MCP server to reset the counter, raise the limit, or use narrower queries and pagination.Response too large
Response too large
maxResponseSize. Raise the limit or reduce the response with filters (status filters, lower per_page).Rate limit exceeded
Rate limit exceeded
rateLimit. Setting it to 0 disables limiting and is not recommended in production.Configuration
Configuration file not found
Configuration file not found
./settings.json (its working directory), then ~/.config/mainwp-mcp/settings.json. Confirm the file is where the server runs from and is valid JSON: cat settings.json | jq .Environment variables not working
Environment variables not working
export MAINWP_URL="https://..."), names are case-sensitive, and values should not carry nested quotes. Remember that per-tool env blocks in your AI tool’s config override settings.json values.Your AI tool doesn't show the MainWP tools
Your AI tool doesn't show the MainWP tools
~/.claude.json; for VS Code, you need version 1.101+, an open workspace (not a lone file), and Agent Mode enabled. Config locations for every client are on Connect Your AI Client.Debugging
For hands-on debugging, run the server directly and watch stderr:npm run inspect opens the MCP Inspector, a web interface for listing tools, executing them with custom arguments, and viewing raw request/response data.
Still stuck? Open an issue on GitHub with the stderr output and your configuration (with credentials removed).