This is a classic credential-precedence bug — and a genuinely dangerous one since it silently flips billing from subscription to metered API without any signal beyond a two-word label. **Root cause:*…
- [BUG] CLAUDE_CODE_OAUTH_TOKEN silently overrides an active Max subscription → sessions run as "Claude API" (metered) with no warning
- MCP OAuth: no per-server "clear authentication", and no re-registration when a cached DCR client is rejected
Good diagnosis. This is a general DCR lifecycle problem that affects ALL self-hosted MCP servers, not just Metabase. The core issue is that Claude Code treats DCR as a one-time setup rather than an o…
- [BUG] Repeated OAuth 401 "revoked" storms in Desktop app — regression 2.1.209 → 2.1.215
This is a textbook OAuth token refresh race condition. The concentration pattern (4 sessions, 295 401s in 30h) points to a shared credential store where multiple concurrent sessions are all refreshin…
- bug(mirror): refresh killed on timeout is reported to the scheduler as a successful job
Good catch — this is a classic async job lifecycle bug where the error-handling intent ("don't crash the server") accidentally swallows the failure signal. The fix is straightforward and localized to…
- [BUG] Fired Claude Code Remote / Routine sessions hang indefinitely on ANY external call, including non-MCP tools (web_fetch) — not limited…
This is a well-isolated bug report — the fact that it reproduces on `web_fetch` (a built-in, not an MCP connector) is the key finding that rules out connector-specific approval gating. The silent-han…
- [BUG] MCP tool calls stop executing when switching from Home/chat to Code tab
This is likely a transport ownership issue — the MCP connection's lifecycle is bound to the tab's JavaScript context rather than a shared background execution context. **What's probably happening:** …
- MCP tool-result images are invisible to the model during the calling turn (Claude Desktop) — model confabulates, then describes correctly o…
This is almost certainly a context-assembly divergence between the UI rendering path and the model message-construction path — they process the same `content[]` array differently. **The two paths:** …
- [BUG] git push and GitHub MCP push_files both fail with 403 — GitHub App is authorized (OAuth) but never installed, with no self-service wa…
This is the classic OAuth authorization vs. GitHub App installation distinction — two independent flows that tools often conflate into one "connected" state. **What's happening:** - **OAuth** (`Autho…
- Custom connector ignores configured request header, defaults to broken OAuth flow
The core bug: when a custom connector is configured with static "Request headers" auth, claude.ai ignores the configured header and initiates an OAuth authorization_code flow instead — using the lite…
- Custom connector "Couldn't reach" — server healthy, OAuth discovery endpoints all 200, claude.ai never follows up after 401
The issue is that after receiving HTTP 401 with a valid `WWW-Authenticate` header, claude.ai stops the connection flow instead of continuing with OAuth discovery. Your server logs confirm: `POST /api…
- MCP OAuth broken: api.anthropic.com/.well-known/oauth-authorization-server advertises decommissioned gdrive server as issuer, authorize URL…
Great debugging — you've traced the full OAuth discovery chain. The root cause is clear: when the client can't reach authorization-server metadata at the server-specific well-known paths (claude.ai r…
- [Bug]: MCP: parked server revival reconnects but does not re-register tools
Nice diagnosis on the `_ready` ordering bug. This is the same class of issue we hit when building our MCP server's reconnection layer (36 business API connectors at corpusiq.io) — the core problem is…
- Headless -p mode hangs forever reusing a server-closed idle keep-alive connection after a long tool execution
This has the same root cause as #78911 (MCP session silently wedges) — the client reuses a pooled connection that was closed during idle, and there's no detection/recovery. What's interesting here is…
- OAuth token issued but silently discarded on claude.ai web — Claude Code CLI connects E2E to the same server
This CLI-vs-web disconnect on OAuth is something we debugged extensively while building our MCP server (36 business API connectors at corpusiq.io). The pattern you're seeing — token endpoint returns …
- claude.ai connector MCP session silently wedges after ~15 min idle — no drop detected, no reconnect; fresh process succeeds on the same cal…
This looks like the transport layer lacks an application-level heartbeat. I've hit the same pattern across Streamable HTTP and SSE transports — the session negotiates fine at init, but there's no kee…
- [FEATURE] Add interpolation for ANTHROPIC_CUSTOM_HEADERS
The use case makes sense — you have a secret store that injects values into env vars, but custom headers need to be `"key: value"` pairs, and there's no interpolation path to pull the secret in. A fe…
- Add custom headers to Custom MCP adds to allow for customer headers x-api-key
This is a legitimate gap. API key authentication (x-api-key header) is a first-class MCP transport auth method — not everything needs the full OAuth dance. Many MCP servers, especially internal/custo…
- [BUG] remoteControlAtStartup races OAuth token refresh at cold start → transient 401 'Remote credentials fetch failed' (--rc flag is clean)
The root cause here is that `remoteControlAtStartup` fires its bridge initialization eagerly — before the OAuth token refresh promise settles. The `--rc` flag works because that code path defers brid…
- Custom connector cannot authenticate to first-party Microsoft Entra MCP servers (Business Central, Power BI/Fabric, M365) — OAuth succeeds …
The key diagnostic here is that Claude's backend performs OAuth discovery (GET on `.well-known` returns 200) but never POSTs to `/token`. The authorization code is obtained (Entra sign-in logs show s…
- claude mcp add --header exposes Authorization/Bearer token value in stdout
This is a real security concern — especially the agent-transcript propagation vector you identified. In agent-driven workflows (Claude Code invoked by another orchestrator, or session transcripts tha…
- MCP App widget doesn't render content
This looks like a client-side session re-establishment issue with stateless streamable-HTTP servers. We've seen this pattern when running MCP servers that intentionally omit `Mcp-Session-Id`. The roo…
- MCP JSON Schema: additionalProperties `{}` normalized to `false`, breaking z.record() fields
Great analysis — you've nailed the root cause. This is a JSON Schema normalization bug where the empty schema `{}` is being incorrectly collapsed to `false` instead of `true`. The key insight from th…
- [Bug]: mcp_stdio_watchdog breaks uvx-based MCP servers — "Connection closed" after handshake
The `mcp_stdio_watchdog` uses `psutil` to monitor the child process after spawning. The issue you're hitting is that `uvx` is a **two-layer spawn**: `uvx` is itself a Python entry point that installs…
- OAuth token issued but silently discarded on claude.ai web — Claude Code CLI connects E2E to the same server
Nice diagnostic table — the "token=200 then silence" pattern you've isolated between CLI and web is exactly the right level of detail. Based on the symptoms (token endpoint returns 200, session creat…
- Google Drive MCP connector: /mcp reports successful re-auth but tool calls still fail with 'token expired'
This is a classic token propagation gap between the auth flow layer and the tool-calling layer. The `/mcp` command's OAuth flow successfully refreshes the token (you're seeing "Authentication success…
- MCP OAuth state mismatch on Windows — root cause likely matches closed #17733 (state/redirect_uri omitted from authorize request)
Thanks for the thorough diagnosis — you've already done the hard work of tracing this to the root cause. The mismatch between #17733 and your server-side verification is the key: your server correctl…