settings.json file. Environment variables take precedence, so you can keep a base file and override specific values at runtime.
Environment variables
* Required as a pair. This is the authentication method.
Configuration file
Createsettings.json in one of these locations, checked in order:
./settings.json(the server’s working directory)~/.config/mainwp-mcp/settings.json
settings.schema.json for IDE autocompletion.
Field mapping
If both credential methods are present, the username plus Application Password pair takes precedence over
apiToken.
Multiple Dashboards
Give each Dashboard its own folder containing its ownsettings.json, then point each MCP server entry at the right folder with cwd in your AI client’s configuration:
./settings.json is checked first, each server instance picks up the credentials from its own working directory.
Behavior settings
safeModeblocks every destructive operation at the server. Explained on Safety & Permissions.requireUserConfirmationcontrols the two-step preview/confirm flow for destructive operations (default on). Also on Safety & Permissions.allowedTools/blockedToolsfilter the tool catalog. See Restrict Available Tools.schemaVerbositytrades tool-description detail for context tokens. See Optimize Token Usage.abilityNamespacescontrols which plugins’ abilities are exposed. See Use Abilities from Other Plugins.responseFormatswitches tool response JSON betweencompact(default) andpretty.
Resource limits
These guard against runaway operations and oversized responses.Retry logic
Transient errors (HTTP 5xx, HTTP 429, network resets) are retried with exponential backoff and jitter. Only read-only operations are retried, which preserves idempotency; writes fail immediately. Permanent errors (4xx other than 429, authentication failures) are never retried. Total time across retries never exceedsrequestTimeout, and retries bypass the rate limiter to avoid deadlocks.
Disable for automation or testing with retryEnabled: false.
SSL
The server verifies certificates and refuses plain HTTP by default.skipSslVerify and allowHttp exist for local development against self-signed or HTTP-only environments.
