Skip to content
support

When MCP is not working

Causes ordered by how often they turn out to be the real one, the edge-block diagnostic, and what to capture before escalating.

Work down this table. It is ordered roughly by how often each cause turns out to be the real one.

What the user reportsLikely causeFix
”Not a valid MCP server” or “the integration rejected the credentials”, and OAuth appeared to succeedAn edge bot-blocking rule is returning 403 to the AI vendor’s backend before the request reaches the platform. Browser sign-in works because it uses a normal user agent; the connector then calls with a bot user agent and is blockedEdge configuration, not code. Run the diagnostic below and escalate with the result
Redirected to a pending-approval pageThe AI client is not on the vendor allowlist and is awaiting reviewModero approves it. Send us the client’s name
Lists come back empty for everythingYour firm’s MCP / API module is off, or the user has no membershipsCheck the partner module first. See Turning MCP on
”Token is missing required scope: mcp:write”The client was authorized read-only, or it carries a force read-only flagRe-authorize, or ask us to clear the flag
”This MCP client is restricted to read-only access”A force read-only flag on the clientAsk us to clear it
<entity> is not available at your access level”An organization-tier user reaching for partner-plane CRM dataRole change, not a plan change
crm is not enabled on your partner’s plan”Your firm’s CRM module is offModule change
”MCP client is not approved” mid-sessionThe client was denied or revoked while connectedRe-approve, or the user re-authorizes a fresh client
Writes rejected with an unknown-field errorA field-name typo, or a protected or derived columnAsk the assistant to run fields_describe on that entity. See Changing data safely
A bandwidth edit “did not stick”Direct bandwidth writes are refused precisely because the carrier sync reverts themUse the change-order flow
Repeated re-login roughly hourlyA historical token-refresh bug, fixed, or a client that predates the fixRemove and re-add the connector
Duplicate rows for one connector in the admin consoleEach registration mints a new client IDExpected. The console collapses them and actions fan out across the group

The edge-block diagnostic#

This one is invisible from inside the platform, because the blocked request never reaches the application or its logs. It has to be diagnosed from outside.

curl -s -o /dev/null -w '%{http_code}\n' \
  -H 'User-Agent: Claude-User/1.0' \
  https://app.mymodero.com/api/mcp/mcp

Then the same request with a normal user agent:

curl -s -o /dev/null -w '%{http_code}\n' https://app.mymodero.com/api/mcp/mcp

401 from both is healthy: the request reached the application and it correctly demanded authentication. 403 from the first and 401 from the second is a confirmed edge block, and the fix is a rule exempting /api/mcp, /api/auth, and /.well-known from bot blocking.

Run the same pair against a branded host if the user connected through one.

What is visible in logs#

Every MCP request is logged with an action name: mcp.list, mcp.search, mcp.create, mcp.report, and the OAuth handshake steps mcp.oauth.authorize_failed, mcp.oauth.consent_failed, and mcp.oauth.token_failed.

A failure with no log line at all points to the edge block above rather than the application. That absence is itself the diagnostic.

Before escalating#

Capture these. Items 1, 4, and 6 resolve the large majority of reports on their own.

  1. The exact error text, and where it appeared: the AI client’s UI, the browser, or the consent screen.
  2. The client and version: Claude web, Claude Desktop, Claude Code, ChatGPT, Gemini, or other.
  3. The host they connected to.
  4. Their role and organization, and the advisory firm above it.
  5. Whether the AI client shows as approved.
  6. The result of the two curl commands above.
  7. A rough timestamp, so logs can be searched on the mcp. action prefix.

Send it through Reporting a bug.

Related guides

  • Turning MCP on The four things that must all be true before an assistant returns any data, in the order to check them.
  • Connecting an assistant The server address, the setup steps for Claude, Claude Code, ChatGPT and Gemini, and what to expect from the consent screen.
  • Reporting a bug What to include so we can reproduce it on the first try.

Last reviewed September 3, 2026.

Something wrong or missing? Tell us or contact support.