{"id":81434,"date":"2026-07-14T12:09:43","date_gmt":"2026-07-14T16:09:43","guid":{"rendered":"https:\/\/memberpress.com\/docs\/mcp-errors-troubleshooting\/"},"modified":"2026-07-14T12:09:43","modified_gmt":"2026-07-14T16:09:43","slug":"mcp-errors-troubleshooting","status":"publish","type":"ht_kb","link":"https:\/\/memberpress.com\/pt\/docs\/mcp-errors-troubleshooting\/","title":{"rendered":"Erros e solu\u00e7\u00e3o de problemas do MCP MemberPress"},"content":{"rendered":"<p>The MemberPress AI Foundation MCP server returns structured errors when a request fails authentication, exceeds a rate limit, lacks scope or capability, or arrives while destructive writes are paused. Each error carries a code an AI client or developer can match on.<\/p>\n\n\n\n<p>This reference catalogs the error codes the MCP server produces, shows what triggers each one, and explains how to resolve it. A troubleshooting section covers the failure modes that surface most often during initial setup.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"error-response-shape\"><a href=\"#error-response-shape\">Error Response Shape<\/a><\/h2>\n\n\n\n<p>The server returns errors at two layers, and they have different shapes. Matching on the correct field is essential for reliable error handling.<\/p>\n\n\n\n<p><strong>Transport-layer errors<\/strong> are rejected before JSON-RPC processing \u2014 authentication failures and unmounted routes. They use the WordPress REST error shape, with a string <code>c\u00f3digo<\/code> and an HTTP status under <code>data.status<\/code>:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>{\n  \"code\": \"auth_required\",\n  \"message\": \"Authorization header required.\",\n  \"data\": { \"status\": 401 }\n}<\/code><\/pre>\n\n\n\n<p><strong>Tool-layer errors<\/strong> occur after authentication, during tool dispatch \u2014 the safety layer and capability gates. They use the JSON-RPC 2.0 error shape, where <code>c\u00f3digo<\/code> is the generic JSON-RPC value <code>-32603<\/code> and the stable, matchable identifier is <strong><code>data.mp_error_code<\/code><\/strong>:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>{\n  \"code\": -32603,\n  \"message\": \"Destructive writes are paused by an administrator. Try again later or contact the site owner.\",\n  \"data\": { \"mp_error_code\": \"WRITES_PAUSED\" },\n  \"request_id\": \"req_011Cc7Bhv5NZnRMgQ9Bg2JBo\"\n}<\/code><\/pre>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p><strong>Match on <code>data.mp_error_code<\/code>, not <code>c\u00f3digo<\/code>.<\/strong> Every tool-layer error returns the same <code>-32603<\/code>; only <code>mp_error_code<\/code> distinguishes them. The <code>request_id<\/code> is unique per call \u2014 useful for support, never for matching.<\/p>\n<\/blockquote>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"error-categories-at-a-glance\"><a href=\"#error-categories-at-a-glance\">Error Categories at a Glance<\/a><\/h2>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Categoria<\/th><th>Identifier<\/th><th>Layer<\/th><\/tr><\/thead><tbody><tr><td>Autentica\u00e7\u00e3o<\/td><td><code>auth_required<\/code> and token errors<\/td><td>Transport (<code>data.status: 401<\/code>)<\/td><\/tr><tr><td>Route disabled or permalinks<\/td><td><code>rest_no_route<\/code><\/td><td>Transport (<code>data.status: 404<\/code>)<\/td><\/tr><tr><td>Scope and capability<\/td><td><code>SCOPE_INSUFFICIENT<\/code>, <code>CAPABILITY_INSUFFICIENT<\/code><\/td><td>Tool (<code>-32603<\/code> + <code>mp_error_code<\/code>)<\/td><\/tr><tr><td>Safety layer<\/td><td><code>WRITES_PAUSED<\/code>, <code>CONFIRMATION_INVALID<\/code><\/td><td>Tool (<code>-32603<\/code> + <code>mp_error_code<\/code>)<\/td><\/tr><tr><td>Rate limiting<\/td><td><code>RATE_LIMITED<\/code>, public, registration<\/td><td>Mixed \u2014 see Rate Limit Errors<\/td><\/tr><tr><td>Validation<\/td><td><code>validation_error<\/code><\/td><td>Tool (<code>-32603<\/code> + <code>mp_error_code<\/code>)<\/td><\/tr><tr><td>Resource and state<\/td><td><code>user_not_found<\/code>, <code>duplicate_username<\/code>, <code>already_refunded<\/code>, o <code>*_not_found<\/code> family<\/td><td>Tool (<code>-32603<\/code> + <code>mp_error_code<\/code>)<\/td><\/tr><tr><td>Credits<\/td><td><code>insufficient_credits<\/code>, <code>credits_unavailable<\/code><\/td><td>Not reachable through MCP tools \u2014 see below<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"authentication-errors\"><a href=\"#authentication-errors\">Erros de autentica\u00e7\u00e3o<\/a><\/h2>\n\n\n\n<p>The server validates credentials on every request. All main MCP routes require a Bearer token or Basic authentication.<\/p>\n\n\n\n<p>A request with <strong>no Authorization header<\/strong> is rejected at the transport layer:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>{\n  \"code\": \"auth_required\",\n  \"message\": \"Authorization header required.\",\n  \"data\": { \"status\": 401 }\n}<\/code><\/pre>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Gatilho<\/th><th>C\u00f3digo<\/th><th>Mensagem<\/th><\/tr><\/thead><tbody><tr><td>No credentials<\/td><td><code>auth_required<\/code><\/td><td>\u201cAuthorization header required.\u201d<\/td><\/tr><tr><td>Malformed header (not Bearer or Basic)<\/td><td><code>auth_required<\/code><\/td><td>\u201cBearer or Basic auth required.\u201d<\/td><\/tr><tr><td>Expired token<\/td><td><code>token_expired<\/code><\/td><td>\u201cToken has expired.\u201d<\/td><\/tr><tr><td>Revoked or nonexistent token<\/td><td><code>auth_required<\/code><\/td><td>\u201cInvalid or revoked token.\u201d<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p>An expired token returns a distinct code. A revoked token and a token that never existed are <strong>deliberately indistinguishable<\/strong> \u2014 the token lookup filters revoked rows out, so the response does not disclose whether a given token ever existed.<\/p>\n\n\n\n<p><code>401<\/code> responses on the MCP route carry a <code>WWW-Authenticate<\/code> header with the exact value <code>Bearer realm=\"mcp\", resource_metadata=\"<resource-metadata URL>\"<\/code>, and the header is exposed via CORS. The OAuth endpoints deliberately omit it.<\/p>\n\n\n\n<p><strong>Resolution:<\/strong> generate a new token from the wizard, or reconnect the client to run the OAuth flow again. Confirm the token was not revoked on the <strong>MCP Connected Clients<\/strong> guia.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"scope-and-capability-errors\"><a href=\"#scope-and-capability-errors\">Scope and Capability Errors<\/a><\/h2>\n\n\n\n<p>Two distinct gates reject a tool call after authentication succeeds. Both surface as tool-layer errors.<\/p>\n\n\n\n<p><strong>Scope gate.<\/strong> Every tool declares a required scope. The server matches it against the token's granted scopes before dispatch. A read-only connection calling <code>memberpress_create_member<\/code> fails this gate.<\/p>\n\n\n\n<p><strong>Capability gate.<\/strong> Every write tool also declares the WordPress capability it requires \u2014 for example <code>create_users<\/code>, <code>edit_users<\/code>, <code>delete_users<\/code>ou <code>manage_options<\/code>. The server enforces the capability of the token's owner before dispatch. A <code>full<\/code>-scope token owned by a user without <code>create_users<\/code> still cannot create members.<\/p>\n\n\n\n<p>The gates run in order \u2014 scope first \u2014 and return <strong>distinct codes<\/strong>:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Gate<\/th><th><code>mp_error_code<\/code><\/th><th>Mensagem<\/th><\/tr><\/thead><tbody><tr><td>Escopo<\/td><td><code>SCOPE_INSUFFICIENT<\/code><\/td><td><code>Required scope \"%s\" is not granted on this token.<\/code><\/td><\/tr><tr><td>Capacidade<\/td><td><code>CAPABILITY_INSUFFICIENT<\/code><\/td><td><code>Insufficient capability for this tool. The user must have \"%s\".<\/code><\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p>Both use the tool-layer envelope \u2014 <code>-32603<\/code> with the stable identifier in <code>data.mp_error_code<\/code>:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>{\n  \"code\": -32603,\n  \"message\": \"Insufficient capability for this tool. The user must have \\\"create_users\\\".\",\n  \"data\": { \"mp_error_code\": \"CAPABILITY_INSUFFICIENT\" },\n  \"request_id\": \"req_...\"\n}<\/code><\/pre>\n\n\n\n<p><strong>Resolution:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Scope failures:<\/strong> the connection needs a broader grant. Revoke it and issue a new connection with the required write scopes. The access ceiling must be at Full Access for new connections to receive write scopes;<\/li>\n\n\n\n<li><strong>Capability failures:<\/strong> the WordPress user behind the token lacks the required role capability. Connect as a user with the capability, or grant it to the user.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-ht-blocks-messages wp-block-hb-message wp-block-hb-message--withicon is-style-alert\"><strong>Importante:<\/strong> Application Password connections are always read-only. Every write tool fails the scope gate on an Application Password connection by design. Use an OAuth connection for writes.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"safety-layer-errors\"><a href=\"#safety-layer-errors\">Safety Layer Errors<\/a><\/h2>\n\n\n\n<p>The agent safety measures produce their own tool-layer errors. The <strong><a href=\"https:\/\/memberpress.com\/pt\/docs\/ai-foundation-safety-measures\/\" target=\"_blank\" rel=\"noopener\">Agent Safety Measures Reference<\/a><\/strong> explains the measures; this section catalogs their refusals.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"writespaused\"><a href=\"#writespaused\">WRITES_PAUSED<\/a><\/h3>\n\n\n\n<p>The kill switch pauses every destructive write. While active, the server refuses the destructive tools with <code>WRITES_PAUSED<\/code> \u2014 regardless of the connection's scopes and even when the call carries a valid confirmation token.<\/p>\n\n\n\n<p>The refusal fires at the <strong>first, non-committing call<\/strong>: a destructive tool's *preview* is blocked, not only its execution. The kill switch gates the entire destructive write path, so a paused state cannot even produce a confirmation token. Read tools continue to work.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>{\n  \"code\": -32603,\n  \"message\": \"Destructive writes are paused by an administrator. Try again later or contact the site owner.\",\n  \"data\": { \"mp_error_code\": \"WRITES_PAUSED\" },\n  \"request_id\": \"req_011Cc7Bhv5NZnRMgQ9Bg2JBo\"\n}<\/code><\/pre>\n\n\n\n<p><strong>Resolution:<\/strong> an administrator turns the kill switch off from the <strong>MCP Connected Clients<\/strong> tab. The pause is a deliberate administrative action; confirm why it was activated before resuming writes.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"confirmationinvalid\"><a href=\"#confirmationinvalid\">CONFIRMATION_INVALID<\/a><\/h3>\n\n\n\n<p>Destructive tools require a two-call flow: the first call returns a preview plus a single-use confirmation token; the second call passes the token in the <code>confirmar<\/code> par\u00e2metro. <strong>Three distinct causes return the same <code>CONFIRMATION_INVALID<\/code> erro<\/strong> \u2014 the message does not disambiguate which occurred:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Cause<\/th><th>Detail<\/th><\/tr><\/thead><tbody><tr><td>Token expired<\/td><td>The token is older than its 60-second window<\/td><\/tr><tr><td>Token already used<\/td><td>Tokens are single-use<\/td><\/tr><tr><td>Arguments changed<\/td><td>The token binds to the exact tool, arguments, and user<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<pre class=\"wp-block-code\"><code>{\n  \"code\": -32603,\n  \"message\": \"Confirmation token is invalid, expired, or arguments have changed. Call the tool without `confirm` to receive a fresh preview and token.\",\n  \"data\": { \"mp_error_code\": \"CONFIRMATION_INVALID\" },\n  \"request_id\": \"req_011Cc7AK3jF4SA4VLs3qsmBD\"\n}<\/code><\/pre>\n\n\n\n<p><strong>Resolution:<\/strong> call the tool again without <code>confirmar<\/code> to obtain a fresh preview and token, then confirm within 60 seconds using identical arguments. Because one code covers three causes, a troubleshooting client should re-run the preview rather than try to diagnose which protection fired.<\/p>\n\n\n\n<p>The collapse is deliberate. A bare pass\/fail response does not disclose whether a given token ever existed, and the recovery is identical in every case: re-run the preview.<\/p>\n\n\n\n<p>The response's <code>error.data<\/code> carries a <code>reason<\/code> field alongside the unchanged top-level code, with two values: <code>expired_or_used<\/code> (the token was not found \u2014 expired, already consumed, and never-issued deliberately stay collapsed) and <code>arguments_changed<\/code> (the token was valid, but the request drifted from what was previewed \u2014 re-run the preview and confirm the new token).<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"rate-limit-errors\"><a href=\"#rate-limit-errors\">Rate Limit Errors<\/a><\/h2>\n\n\n\n<p>Independent rate limits protect the server, and <strong>the response shape differs by endpoint<\/strong> \u2014 the authenticated MCP endpoint does not return <code>429<\/code> at all.<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Surface<\/th><th>Limite<\/th><th>Resposta<\/th><\/tr><\/thead><tbody><tr><td>Authenticated MCP endpoint<\/td><td>120 requests per minute per token (default; configurable 1\u20131000) \u2014 set on the MCP Settings tab, where rate limiting can also be disabled entirely<\/td><td>JSON-RPC error at HTTP <strong>200<\/strong> \u2014 code <code>-32029<\/code>, <code>mp_error_code: RATE_LIMITED<\/code><\/td><\/tr><tr><td>Public MCP endpoint<\/td><td>60 requests per minute per IP (fixed)<\/td><td>HTTP <strong>429<\/strong> com <code>Retry-After: 60<\/code><\/td><\/tr><tr><td>OAuth <code>\/registrar<\/code><\/td><td>60 registrations per hour per IP<\/td><td>HTTP <strong>429<\/strong> com <code>Retry-After: 3600<\/code><\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p>The authenticated endpoint's limit surfaces inside the JSON-RPC envelope, not as an HTTP error:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>{\"jsonrpc\":\"2.0\",\"id\":1,\"error\":{\"code\":-32029,\"message\":\"Rate limit exceeded.\",\"data\":{\"mp_error_code\":\"RATE_LIMITED\"}}}<\/code><\/pre>\n\n\n\n<p>The public endpoint returns a plain JSON-RPC error body with its <code>429<\/code>:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>{\"jsonrpc\":\"2.0\",\"error\":{\"code\":-32000,\"message\":\"Rate limit exceeded. Please try again in a minute.\"}}<\/code><\/pre>\n\n\n\n<p>The registration endpoint returns an OAuth-style body with its <code>429<\/code>:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>{\"error\":\"too_many_requests\",\"error_description\":\"Too many client registrations from this IP. Please try again in an hour.\"}<\/code><\/pre>\n\n\n\n<p class=\"wp-block-ht-blocks-messages wp-block-hb-message wp-block-hb-message--withicon is-style-info\"><strong>Observa\u00e7\u00e3o:<\/strong> No endpoint sends <code>X-RateLimit-Limit<\/code> ou <code>X-RateLimit-Remaining<\/code> headers. The only rate-limit headers are the <code>Retry-After<\/code> values shown above.<\/p>\n\n\n\n<p><strong>Resolution:<\/strong> wait for the window to reset. For the authenticated endpoint, match on <code>mp_error_code: RATE_LIMITED<\/code> \u2014 a <code>200<\/code> status does not mean success \u2014 and back off at least one minute. Respect <code>Retry-After<\/code> where sent. For sustained legitimate volume, batch requests or reduce polling frequency.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"validation-errors\"><a href=\"#validation-errors\">Validation Errors<\/a><\/h2>\n\n\n\n<p>Validation failures are tool-layer errors: <strong><code>-32603<\/code><\/strong> com <strong><code>mp_error_code: validation_error<\/code><\/strong>. O <strong><code>mensagem<\/code><\/strong> itself explains the problem \u2014 it names the rejected value and, where a vocabulary applies, lists the accepted values. For example, creating a webhook with an unknown event returns:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Unknown events: member-added. Known events: transaction-completed, ...<\/code><\/pre>\n\n\n\n<p>Write tools validate argument vocabularies against their schemas, and legacy values are rejected with the accepted enumeration. Coupon tools are the documented example: <code>discount_mode<\/code> accepts <code>standard<\/code> ou <code>first-payment<\/code>e <code>tipo de desconto<\/code> accepts <code>percent<\/code> ou <code>dollar<\/code>. The legacy values <code>primeiro<\/code>, <code>todos<\/code>e <code>flat<\/code> are rejected.<\/p>\n\n\n\n<p><strong>Resolution:<\/strong> fix the input as the message describes \u2014 or read the tool's <code>inputSchema<\/code> em <code>tools\/list<\/code> \u2014 then resend with canonical values. Do not retry the same arguments.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"resource-and-state-errors\"><a href=\"#resource-and-state-errors\">Resource and State Errors<\/a><\/h2>\n\n\n\n<p>Beyond validation, tools return caller-facing codes when a request is well-formed but cannot apply to the site's current state. These follow the same tool-layer envelope (<strong><code>-32603<\/code><\/strong> + <strong><code>mp_error_code<\/code><\/strong>), and their messages state the reason directly:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>C\u00f3digo<\/th><th>Gatilho<\/th><\/tr><\/thead><tbody><tr><td><code>user_not_found<\/code><\/td><td>The referenced member or user does not exist<\/td><\/tr><tr><td><code>*_not_found<\/code> family<\/td><td>The referenced resource (transaction, subscription, webhook, and so on) does not exist<\/td><\/tr><tr><td><code>duplicate_username<\/code><\/td><td>Member creation with a username already in use<\/td><\/tr><tr><td><code>already_refunded<\/code><\/td><td>A refund attempted on a transaction already refunded<\/td><\/tr><tr><td><code>memberpress_not_active<\/code><\/td><td>The MemberPress plugin is not active<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p><strong>Resolution:<\/strong> these are state conditions, not transient failures \u2014 verify the referenced resource (or the site state) and correct the request. Retrying unchanged cannot succeed.<\/p>\n\n\n\n<p>Genuinely internal failures \u2014 <strong><code>store_failed<\/code><\/strong>, <strong><code>delete_failed<\/code><\/strong>, <strong><code>db_error<\/code><\/strong> \u2014 remain generic by design, so storage-layer detail does not leak to clients. A client receiving one of these can only retry later or report the failure to the site administrator.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"credit-errors-not-reachable-through-mcp\"><a href=\"#credit-errors-not-reachable-through-mcp\">Credit Errors \u2014 Not Reachable Through MCP<\/a><\/h2>\n\n\n\n<p>Preview calls route failures through the same allow-list as live execution and carry the same <code>mp_error_code<\/code> \u2014 a tool cannot leak in its preview an internal error that live execution would mask.<\/p>\n\n\n\n<p>The server's error allow-list includes two credit-related codes: <code>insufficient_credits<\/code> e <code>credits_unavailable<\/code>. No MCP tool consumes AI Credits, and the MCP server calls no credit method. The codes exist so downstream services can pass credit errors through the JSON-RPC response; no MCP tool call path produces them.<\/p>\n\n\n\n<p>A client working through the MCP tools never encounters these codes. Credit balances affect Mastermind-powered generation features (for example, Course Copilot), not MCP tool calls.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"troubleshooting-setup-failures\"><a href=\"#troubleshooting-setup-failures\">Troubleshooting Setup Failures<\/a><\/h2>\n\n\n\n<p>Failure modes that surface during initial connection, in the order users typically hit them:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>The authenticated MCP endpoint returns <code>404<\/code>:<\/strong> permalinks are set to Plain. The REST API requires Post name or richer permalinks;<\/li>\n\n\n\n<li><strong>The public MCP endpoint returns <code>404<\/code> (<code>rest_no_route<\/code>):<\/strong> the public catalog is disabled. When off, the route is not mounted, so any request returns <code>rest_no_route<\/code> \u2014 the endpoint's existence is not revealed. Enable the catalog on the <strong>MCP Settings<\/strong> guia;<\/li>\n\n\n\n<li><strong>The endpoint returns <code>401<\/code> (<code>auth_required<\/code>) in a browser:<\/strong> expected behavior. The <code>401<\/code> confirms the endpoint is live; the browser carries no Authorization header;<\/li>\n\n\n\n<li><strong>Claude Desktop shows the connector but no tools:<\/strong> the OAuth approval did not complete, or the connection was revoked. Open the connector and reconnect;<\/li>\n\n\n\n<li><strong><code>step=start_error<\/code> during Claude Desktop connection:<\/strong> OAuth registration is rate-limited to 60 attempts per hour per IP. Wait for the window to reset and retry;<\/li>\n\n\n\n<li><strong>A third-party client cannot register via OAuth (<code>invalid_redirect_uri<\/code>):<\/strong> the dynamic registration endpoint accepts only allowlisted redirect URIs (the known AI clients). A client whose redirect URI is not on the allowlist is rejected at <code>\/registrar<\/code>;<\/li>\n\n\n\n<li><strong>An expected tool is missing from <code>tools\/list<\/code>:<\/strong> the tool belongs to an inactive add-on. Add-on tools register only while their add-on is active. Calling an unregistered tool returns the standard JSON-RPC unknown-method error;<\/li>\n\n\n\n<li><strong>Write checkboxes missing from the wizard:<\/strong> the access ceiling is set to Read Only. The wizard hides write scopes and displays a notice. Raise the ceiling on the <strong>MCP Settings<\/strong> guia;<\/li>\n\n\n\n<li><strong>A destructive tool returns a preview instead of executing:<\/strong> expected behavior. Destructive tools require the two-call confirmation flow. Pass the returned token in the <code>confirmar<\/code> parameter within 60 seconds.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"error-handling-guidance\"><a href=\"#error-handling-guidance\">Error Handling Guidance<\/a><\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Match on <code>data.mp_error_code<\/code><\/strong> for tool-layer errors, and on <code>c\u00f3digo<\/code> mais <code>data.status<\/code> for transport-layer errors. Never match on the bare <code>-32603<\/code>;<\/li>\n\n\n\n<li><strong><code>auth_required<\/code> \/ <code>401<\/code>:<\/strong> re-authenticate. Do not retry with the same credentials; repeated failures trigger the brute-force lockout;<\/li>\n\n\n\n<li><strong><code>SCOPE_INSUFFICIENT<\/code> \/ <code>CAPABILITY_INSUFFICIENT<\/code>:<\/strong> do not retry. The connection needs a broader scope grant, or the user behind the token needs the missing WordPress capability \u2014 a retry cannot succeed;<\/li>\n\n\n\n<li><strong><code>WRITES_PAUSED<\/code>:<\/strong> do not retry automatically. An administrator paused destructive writes deliberately; surface the state to the user;<\/li>\n\n\n\n<li><strong><code>validation_error<\/code>:<\/strong> fix the input as the message describes, then resend. Do not retry the same arguments \u2014 the same input produces the same rejection;<\/li>\n\n\n\n<li><strong><code>CONFIRMATION_INVALID<\/code>:<\/strong> restart the two-call flow from the preview call. One code covers three causes, so re-run the preview rather than diagnosing which fired. Never cache confirmation tokens;<\/li>\n\n\n\n<li><strong>Rate limits:<\/strong> back off. The authenticated endpoint signals <code>RATE_LIMITED<\/code> inside an HTTP <code>200<\/code>; the public and registration endpoints return <code>429<\/code> com <code>Retry-After<\/code>. Respect <code>Retry-After<\/code> where sent; otherwise wait at least one minute.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"related-documentation\"><a href=\"#related-documentation\">Related Documentation<\/a><\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong><a href=\"https:\/\/memberpress.com\/pt\/docs\/ai-foundation-overview\/\" target=\"_blank\" rel=\"noopener\">Vis\u00e3o geral e guia de configura\u00e7\u00e3o do MemberPress AI Foundation<\/a><\/strong> \u2014 installation, prerequisites, and post-install checks;<\/li>\n\n\n\n<li><strong><a href=\"https:\/\/memberpress.com\/pt\/docs\/connecting-ai-clients\/\" target=\"_blank\" rel=\"noopener\">Connecting AI Clients to MemberPress \u2013 Developer Reference<\/a><\/strong> \u2014 authentication methods and per-client configuration;<\/li>\n\n\n\n<li><strong><a href=\"https:\/\/memberpress.com\/pt\/docs\/mcp-tools-reference\/\" target=\"_blank\" rel=\"noopener\">Refer\u00eancia \u00e0s ferramentas MCP do MemberPress AI Foundation<\/a><\/strong> \u2014 per-tool scopes, capabilities, and schemas;<\/li>\n\n\n\n<li><strong><a href=\"https:\/\/memberpress.com\/pt\/docs\/ai-foundation-safety-measures\/\" target=\"_blank\" rel=\"noopener\">Medidas de seguran\u00e7a para agentes da MemberPress AI Foundation<\/a><\/strong> \u2014 the four measures behind the safety-layer errors.<\/li>\n<\/ul>","protected":false},"excerpt":{"rendered":"<p>The MemberPress AI Foundation MCP server returns structured errors when a request fails authentication, exceeds a rate limit, lacks scope or capability, or arrives while destructive writes are paused. Each error carries a code an AI client or developer can match on. This reference catalogs the error codes the MCP server produces, shows what triggers [\u2026]<\/p>\n","protected":false},"author":62252,"comment_status":"open","ping_status":"closed","template":"","format":"standard","meta":{"_acf_changed":false,"om_disable_all_campaigns":false,"_strive_editorial_status":"not-started","_strive_copy_of":0,"inline_featured_image":false,"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"_genesis_hide_title":false,"_genesis_hide_breadcrumbs":false,"_genesis_hide_singular_image":false,"_genesis_hide_footer_widgets":false,"_genesis_custom_body_class":"","_genesis_custom_post_class":"","_genesis_layout":"","_FSMCFIC_featured_image_caption":"","_FSMCFIC_featured_image_nocaption":"","_FSMCFIC_featured_image_hide":"","_strive_checklists":"\"\"","_strive_active_checklist":"62291e2bb2422","footnotes":""},"ht-kb-category":[1581],"ht-kb-tag":[],"class_list":{"0":"post-81434","1":"ht_kb","2":"type-ht_kb","3":"status-publish","4":"format-standard","6":"ht_kb_category-mcp","7":"entry"},"acf":[],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO Pro 4.9.6.2 - aioseo.com -->\n\t<meta name=\"description\" content=\"The MemberPress AI Foundation MCP server returns structured errors when a request fails authentication, exceeds a rate limit, lacks scope or capability, or arrives while destructive writes are paused. Each error carries a code an AI client or developer can match on. This reference catalogs the error codes the MCP server produces, shows what triggers\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Nikola M\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/memberpress.com\/pt\/docs\/mcp-errors-troubleshooting\/\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO Pro (AIOSEO) 4.9.6.2\" \/>\n\t\t<meta property=\"og:locale\" content=\"pt_BR\" \/>\n\t\t<meta property=\"og:site_name\" content=\"MemberPress\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"MemberPress MCP Errors and Troubleshooting | MemberPress\" \/>\n\t\t<meta property=\"og:description\" content=\"The MemberPress AI Foundation MCP server returns structured errors when a request fails authentication, exceeds a rate limit, lacks scope or capability, or arrives while destructive writes are paused. Each error carries a code an AI client or developer can match on. This reference catalogs the error codes the MCP server produces, shows what triggers\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/memberpress.com\/pt\/docs\/mcp-errors-troubleshooting\/\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/memberpress.com\/wp-content\/uploads\/2022\/10\/mp-icon-RGB_Icon-01.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/memberpress.com\/wp-content\/uploads\/2022\/10\/mp-icon-RGB_Icon-01.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"1650\" \/>\n\t\t<meta property=\"og:image:height\" content=\"1275\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2026-07-14T16:09:43+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2026-07-14T16:09:43+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/memberpress\/\" \/>\n\t\t<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n\t\t<meta name=\"twitter:site\" content=\"@memberpress\" \/>\n\t\t<meta name=\"twitter:title\" content=\"MemberPress MCP Errors and Troubleshooting | MemberPress\" \/>\n\t\t<meta name=\"twitter:description\" content=\"The MemberPress AI Foundation MCP server returns structured errors when a request fails authentication, exceeds a rate limit, lacks scope or capability, or arrives while destructive writes are paused. Each error carries a code an AI client or developer can match on. This reference catalogs the error codes the MCP server produces, shows what triggers\" \/>\n\t\t<meta name=\"twitter:image\" content=\"https:\/\/memberpress.com\/wp-content\/uploads\/2022\/10\/mp-icon-RGB_Icon-01.jpg\" \/>\n\t\t<script type=\"application\/ld+json\" class=\"aioseo-schema\">\n\t\t\t{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/memberpress.com\\\/pt\\\/docs\\\/mcp-errors-troubleshooting\\\/#article\",\"name\":\"MemberPress MCP Errors and Troubleshooting | MemberPress\",\"headline\":\"MemberPress MCP Errors and Troubleshooting\",\"author\":{\"@id\":\"https:\\\/\\\/memberpress.com\\\/pt\\\/blog\\\/author\\\/nikolacaseproof-com\\\/#author\"},\"publisher\":{\"@id\":\"https:\\\/\\\/memberpress.com\\\/pt\\\/#organization\"},\"image\":{\"@type\":\"ImageObject\",\"url\":\"https:\\\/\\\/memberpress.com\\\/wp-content\\\/uploads\\\/2022\\\/10\\\/mp-icon-RGB_Icon-01.jpg\",\"@id\":\"https:\\\/\\\/memberpress.com\\\/pt\\\/#articleImage\",\"width\":1650,\"height\":1275,\"caption\":\"memberpress logo icon\"},\"datePublished\":\"2026-07-14T12:09:43-04:00\",\"dateModified\":\"2026-07-14T12:09:43-04:00\",\"inLanguage\":\"pt-BR\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/memberpress.com\\\/pt\\\/docs\\\/mcp-errors-troubleshooting\\\/#webpage\"},\"isPartOf\":{\"@id\":\"https:\\\/\\\/memberpress.com\\\/pt\\\/docs\\\/mcp-errors-troubleshooting\\\/#webpage\"},\"articleSection\":\"MCP\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/memberpress.com\\\/pt\\\/docs\\\/mcp-errors-troubleshooting\\\/#breadcrumblist\",\"itemListElement\":[{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/memberpress.com\\\/pt#listItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/memberpress.com\\\/pt\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/memberpress.com\\\/pt\\\/doc-categories\\\/developer-docs\\\/#listItem\",\"name\":\"Developer Documentation\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/memberpress.com\\\/pt\\\/doc-categories\\\/developer-docs\\\/#listItem\",\"position\":2,\"name\":\"Developer Documentation\",\"item\":\"https:\\\/\\\/memberpress.com\\\/pt\\\/doc-categories\\\/developer-docs\\\/\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/memberpress.com\\\/pt\\\/doc-categories\\\/mcp\\\/#listItem\",\"name\":\"MCP\"},\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/memberpress.com\\\/pt#listItem\",\"name\":\"Home\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/memberpress.com\\\/pt\\\/doc-categories\\\/mcp\\\/#listItem\",\"position\":3,\"name\":\"MCP\",\"item\":\"https:\\\/\\\/memberpress.com\\\/pt\\\/doc-categories\\\/mcp\\\/\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/memberpress.com\\\/pt\\\/docs\\\/mcp-errors-troubleshooting\\\/#listItem\",\"name\":\"MemberPress MCP Errors and Troubleshooting\"},\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/memberpress.com\\\/pt\\\/doc-categories\\\/developer-docs\\\/#listItem\",\"name\":\"Developer Documentation\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/memberpress.com\\\/pt\\\/docs\\\/mcp-errors-troubleshooting\\\/#listItem\",\"position\":4,\"name\":\"MemberPress MCP Errors and Troubleshooting\",\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/memberpress.com\\\/pt\\\/doc-categories\\\/mcp\\\/#listItem\",\"name\":\"MCP\"}}]},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/memberpress.com\\\/pt\\\/#organization\",\"name\":\"MemberPress\",\"description\":\"The All-In-One WordPress Membership Plugin\",\"url\":\"https:\\\/\\\/memberpress.com\\\/pt\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https:\\\/\\\/memberpress.com\\\/wp-content\\\/uploads\\\/2022\\\/10\\\/mp-icon-RGB_Icon-01.jpg\",\"@id\":\"https:\\\/\\\/memberpress.com\\\/pt\\\/docs\\\/mcp-errors-troubleshooting\\\/#organizationLogo\",\"width\":1650,\"height\":1275,\"caption\":\"memberpress logo icon\"},\"image\":{\"@id\":\"https:\\\/\\\/memberpress.com\\\/pt\\\/docs\\\/mcp-errors-troubleshooting\\\/#organizationLogo\"},\"sameAs\":[\"https:\\\/\\\/www.instagram.com\\\/memberpress\\\/\",\"https:\\\/\\\/www.pinterest.com\\\/memberpressplugin\\\/\",\"https:\\\/\\\/www.youtube.com\\\/c\\\/MemberPressPlugin\",\"https:\\\/\\\/www.linkedin.com\\\/company\\\/memberpress\\\/\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/memberpress.com\\\/pt\\\/blog\\\/author\\\/nikolacaseproof-com\\\/#author\",\"url\":\"https:\\\/\\\/memberpress.com\\\/pt\\\/blog\\\/author\\\/nikolacaseproof-com\\\/\",\"name\":\"Nikola M\",\"image\":{\"@type\":\"ImageObject\",\"url\":\"https:\\\/\\\/memberpress.com\\\/wp-content\\\/litespeed\\\/avatar\\\/1edf820c48f9c430f380efe81887b154.jpg?ver=1783608757\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/memberpress.com\\\/pt\\\/docs\\\/mcp-errors-troubleshooting\\\/#webpage\",\"url\":\"https:\\\/\\\/memberpress.com\\\/pt\\\/docs\\\/mcp-errors-troubleshooting\\\/\",\"name\":\"MemberPress MCP Errors and Troubleshooting | MemberPress\",\"description\":\"The MemberPress AI Foundation MCP server returns structured errors when a request fails authentication, exceeds a rate limit, lacks scope or capability, or arrives while destructive writes are paused. Each error carries a code an AI client or developer can match on. This reference catalogs the error codes the MCP server produces, shows what triggers\",\"inLanguage\":\"pt-BR\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/memberpress.com\\\/pt\\\/#website\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/memberpress.com\\\/pt\\\/docs\\\/mcp-errors-troubleshooting\\\/#breadcrumblist\"},\"author\":{\"@id\":\"https:\\\/\\\/memberpress.com\\\/pt\\\/blog\\\/author\\\/nikolacaseproof-com\\\/#author\"},\"creator\":{\"@id\":\"https:\\\/\\\/memberpress.com\\\/pt\\\/blog\\\/author\\\/nikolacaseproof-com\\\/#author\"},\"datePublished\":\"2026-07-14T12:09:43-04:00\",\"dateModified\":\"2026-07-14T12:09:43-04:00\"},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/memberpress.com\\\/pt\\\/#website\",\"url\":\"https:\\\/\\\/memberpress.com\\\/pt\\\/\",\"name\":\"MemberPress\",\"description\":\"The All-In-One WordPress Membership Plugin\",\"inLanguage\":\"pt-BR\",\"publisher\":{\"@id\":\"https:\\\/\\\/memberpress.com\\\/pt\\\/#organization\"}}]}\n\t\t<\/script>\n\t\t<!-- All in One SEO Pro -->\r\n\t\t<title>MemberPress MCP Errors and Troubleshooting | MemberPress<\/title>\n\n","aioseo_head_json":{"title":"MemberPress MCP Errors and Troubleshooting | MemberPress","description":"The MemberPress AI Foundation MCP server returns structured errors when a request fails authentication, exceeds a rate limit, lacks scope or capability, or arrives while destructive writes are paused. Each error carries a code an AI client or developer can match on. This reference catalogs the error codes the MCP server produces, shows what triggers","canonical_url":"https:\/\/memberpress.com\/pt\/docs\/mcp-errors-troubleshooting\/","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/memberpress.com\/pt\/docs\/mcp-errors-troubleshooting\/#article","name":"MemberPress MCP Errors and Troubleshooting | MemberPress","headline":"MemberPress MCP Errors and Troubleshooting","author":{"@id":"https:\/\/memberpress.com\/pt\/blog\/author\/nikolacaseproof-com\/#author"},"publisher":{"@id":"https:\/\/memberpress.com\/pt\/#organization"},"image":{"@type":"ImageObject","url":"https:\/\/memberpress.com\/wp-content\/uploads\/2022\/10\/mp-icon-RGB_Icon-01.jpg","@id":"https:\/\/memberpress.com\/pt\/#articleImage","width":1650,"height":1275,"caption":"memberpress logo icon"},"datePublished":"2026-07-14T12:09:43-04:00","dateModified":"2026-07-14T12:09:43-04:00","inLanguage":"pt-BR","mainEntityOfPage":{"@id":"https:\/\/memberpress.com\/pt\/docs\/mcp-errors-troubleshooting\/#webpage"},"isPartOf":{"@id":"https:\/\/memberpress.com\/pt\/docs\/mcp-errors-troubleshooting\/#webpage"},"articleSection":"MCP"},{"@type":"BreadcrumbList","@id":"https:\/\/memberpress.com\/pt\/docs\/mcp-errors-troubleshooting\/#breadcrumblist","itemListElement":[{"@type":"ListItem","@id":"https:\/\/memberpress.com\/pt#listItem","position":1,"name":"Home","item":"https:\/\/memberpress.com\/pt","nextItem":{"@type":"ListItem","@id":"https:\/\/memberpress.com\/pt\/doc-categories\/developer-docs\/#listItem","name":"Developer Documentation"}},{"@type":"ListItem","@id":"https:\/\/memberpress.com\/pt\/doc-categories\/developer-docs\/#listItem","position":2,"name":"Developer Documentation","item":"https:\/\/memberpress.com\/pt\/doc-categories\/developer-docs\/","nextItem":{"@type":"ListItem","@id":"https:\/\/memberpress.com\/pt\/doc-categories\/mcp\/#listItem","name":"MCP"},"previousItem":{"@type":"ListItem","@id":"https:\/\/memberpress.com\/pt#listItem","name":"Home"}},{"@type":"ListItem","@id":"https:\/\/memberpress.com\/pt\/doc-categories\/mcp\/#listItem","position":3,"name":"MCP","item":"https:\/\/memberpress.com\/pt\/doc-categories\/mcp\/","nextItem":{"@type":"ListItem","@id":"https:\/\/memberpress.com\/pt\/docs\/mcp-errors-troubleshooting\/#listItem","name":"MemberPress MCP Errors and Troubleshooting"},"previousItem":{"@type":"ListItem","@id":"https:\/\/memberpress.com\/pt\/doc-categories\/developer-docs\/#listItem","name":"Developer Documentation"}},{"@type":"ListItem","@id":"https:\/\/memberpress.com\/pt\/docs\/mcp-errors-troubleshooting\/#listItem","position":4,"name":"MemberPress MCP Errors and Troubleshooting","previousItem":{"@type":"ListItem","@id":"https:\/\/memberpress.com\/pt\/doc-categories\/mcp\/#listItem","name":"MCP"}}]},{"@type":"Organization","@id":"https:\/\/memberpress.com\/pt\/#organization","name":"MemberPress","description":"The All-In-One WordPress Membership Plugin","url":"https:\/\/memberpress.com\/pt\/","logo":{"@type":"ImageObject","url":"https:\/\/memberpress.com\/wp-content\/uploads\/2022\/10\/mp-icon-RGB_Icon-01.jpg","@id":"https:\/\/memberpress.com\/pt\/docs\/mcp-errors-troubleshooting\/#organizationLogo","width":1650,"height":1275,"caption":"memberpress logo icon"},"image":{"@id":"https:\/\/memberpress.com\/pt\/docs\/mcp-errors-troubleshooting\/#organizationLogo"},"sameAs":["https:\/\/www.instagram.com\/memberpress\/","https:\/\/www.pinterest.com\/memberpressplugin\/","https:\/\/www.youtube.com\/c\/MemberPressPlugin","https:\/\/www.linkedin.com\/company\/memberpress\/"]},{"@type":"Person","@id":"https:\/\/memberpress.com\/pt\/blog\/author\/nikolacaseproof-com\/#author","url":"https:\/\/memberpress.com\/pt\/blog\/author\/nikolacaseproof-com\/","name":"Nikola M","image":{"@type":"ImageObject","url":"https:\/\/memberpress.com\/wp-content\/litespeed\/avatar\/1edf820c48f9c430f380efe81887b154.jpg?ver=1783608757"}},{"@type":"WebPage","@id":"https:\/\/memberpress.com\/pt\/docs\/mcp-errors-troubleshooting\/#webpage","url":"https:\/\/memberpress.com\/pt\/docs\/mcp-errors-troubleshooting\/","name":"MemberPress MCP Errors and Troubleshooting | MemberPress","description":"The MemberPress AI Foundation MCP server returns structured errors when a request fails authentication, exceeds a rate limit, lacks scope or capability, or arrives while destructive writes are paused. Each error carries a code an AI client or developer can match on. This reference catalogs the error codes the MCP server produces, shows what triggers","inLanguage":"pt-BR","isPartOf":{"@id":"https:\/\/memberpress.com\/pt\/#website"},"breadcrumb":{"@id":"https:\/\/memberpress.com\/pt\/docs\/mcp-errors-troubleshooting\/#breadcrumblist"},"author":{"@id":"https:\/\/memberpress.com\/pt\/blog\/author\/nikolacaseproof-com\/#author"},"creator":{"@id":"https:\/\/memberpress.com\/pt\/blog\/author\/nikolacaseproof-com\/#author"},"datePublished":"2026-07-14T12:09:43-04:00","dateModified":"2026-07-14T12:09:43-04:00"},{"@type":"WebSite","@id":"https:\/\/memberpress.com\/pt\/#website","url":"https:\/\/memberpress.com\/pt\/","name":"MemberPress","description":"The All-In-One WordPress Membership Plugin","inLanguage":"pt-BR","publisher":{"@id":"https:\/\/memberpress.com\/pt\/#organization"}}]},"og:locale":"pt_BR","og:site_name":"MemberPress","og:type":"article","og:title":"MemberPress MCP Errors and Troubleshooting | MemberPress","og:description":"The MemberPress AI Foundation MCP server returns structured errors when a request fails authentication, exceeds a rate limit, lacks scope or capability, or arrives while destructive writes are paused. Each error carries a code an AI client or developer can match on. This reference catalogs the error codes the MCP server produces, shows what triggers","og:url":"https:\/\/memberpress.com\/pt\/docs\/mcp-errors-troubleshooting\/","og:image":"https:\/\/memberpress.com\/wp-content\/uploads\/2022\/10\/mp-icon-RGB_Icon-01.jpg","og:image:secure_url":"https:\/\/memberpress.com\/wp-content\/uploads\/2022\/10\/mp-icon-RGB_Icon-01.jpg","og:image:width":1650,"og:image:height":1275,"article:published_time":"2026-07-14T16:09:43+00:00","article:modified_time":"2026-07-14T16:09:43+00:00","article:publisher":"https:\/\/www.facebook.com\/memberpress\/","twitter:card":"summary_large_image","twitter:site":"@memberpress","twitter:title":"MemberPress MCP Errors and Troubleshooting | MemberPress","twitter:description":"The MemberPress AI Foundation MCP server returns structured errors when a request fails authentication, exceeds a rate limit, lacks scope or capability, or arrives while destructive writes are paused. Each error carries a code an AI client or developer can match on. This reference catalogs the error codes the MCP server produces, shows what triggers","twitter:image":"https:\/\/memberpress.com\/wp-content\/uploads\/2022\/10\/mp-icon-RGB_Icon-01.jpg"},"aioseo_meta_data":{"post_id":"81434","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":"default","schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":"2026-07-14 16:56:46","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"open_ai":null,"ai":null,"created":"2026-07-14 16:09:43","updated":"2026-07-14 16:56:46"},"aioseo_breadcrumb":"<div class=\"aioseo-breadcrumbs\"><span class=\"aioseo-breadcrumb\">\n\t<a href=\"https:\/\/memberpress.com\/pt\" title=\"Home\">Home<\/a>\n<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t<a href=\"https:\/\/memberpress.com\/pt\/doc-categories\/developer-docs\/\" title=\"Developer Documentation\">Developer Documentation<\/a>\n<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t<a href=\"https:\/\/memberpress.com\/pt\/doc-categories\/mcp\/\" title=\"MCP\">MCP<\/a>\n<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\tMemberPress MCP Errors and Troubleshooting\n<\/span><\/div>","aioseo_breadcrumb_json":[{"label":"Home","link":"https:\/\/memberpress.com\/pt"},{"label":"Developer Documentation","link":"https:\/\/memberpress.com\/pt\/doc-categories\/developer-docs\/"},{"label":"MCP","link":"https:\/\/memberpress.com\/pt\/doc-categories\/mcp\/"},{"label":"MemberPress MCP Errors and Troubleshooting","link":"https:\/\/memberpress.com\/pt\/docs\/mcp-errors-troubleshooting\/"}],"_links":{"self":[{"href":"https:\/\/memberpress.com\/pt\/wp-json\/wp\/v2\/ht-kb\/81434","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/memberpress.com\/pt\/wp-json\/wp\/v2\/ht-kb"}],"about":[{"href":"https:\/\/memberpress.com\/pt\/wp-json\/wp\/v2\/types\/ht_kb"}],"author":[{"embeddable":true,"href":"https:\/\/memberpress.com\/pt\/wp-json\/wp\/v2\/users\/62252"}],"replies":[{"embeddable":true,"href":"https:\/\/memberpress.com\/pt\/wp-json\/wp\/v2\/comments?post=81434"}],"version-history":[{"count":0,"href":"https:\/\/memberpress.com\/pt\/wp-json\/wp\/v2\/ht-kb\/81434\/revisions"}],"wp:attachment":[{"href":"https:\/\/memberpress.com\/pt\/wp-json\/wp\/v2\/media?parent=81434"}],"wp:term":[{"taxonomy":"ht_kb_category","embeddable":true,"href":"https:\/\/memberpress.com\/pt\/wp-json\/wp\/v2\/ht-kb-category?post=81434"},{"taxonomy":"ht_kb_tag","embeddable":true,"href":"https:\/\/memberpress.com\/pt\/wp-json\/wp\/v2\/ht-kb-tag?post=81434"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}