MCP servers issues on WSL
Issues the maintainers labelled both platform:wsl and area:mcp.
56 issues · 7 open · 49 resolved (88%) · first seen Feb 25, 2026
Is this getting better or worse?
This class of problem is converging. 9 new reports in the last 90 days vs 23 in the 90 before — -61%. The open backlog peaked at 17 in 2026-03 and sits at 7 today.
Derived by counting each matching issue from its creation date until it closed. First-party
computation over the anthropics/claude-code tracker — the trend is not published
anywhere upstream.
Which builds report this
45 of these reports name the Claude Code build they were running, spanning 31 releases. Heaviest reporters:
- Claude Code v2.1.81
- Claude Code v2.1.119
- Claude Code v2.1.246
- Claude Code v2.1.232
- Claude Code v2.1.101
- Claude Code v2.1.83
- Claude Code v2.1.71
- Claude Code v2.1.296
Report volume, not a defect count: an issue can mention a build without that build having caused the failure. Versions come from the version string in the bug-report template, matched against real published tags.
Do these get fixed?
Median time to close is 29 days across 49 closures. Of the 49 closures with a recorded reason, 27% were closed as completed and 36 as not-planned or duplicate. The most recent completed fix landed in 2026-06.
Workarounds reported by the community
21 of these issues post a workaround someone says worked. The highest-engagement ones:
- Remote MCP OAuth: prompt=consent hardcoded on every authorize request breaks Entra tenants with user-consent disabled
- …use Claude Code's remote MCP transport without one of these workarounds: 1. Change the tenant's consent policy — flip to "Allow user consent for apps". Works but requires a Global Admin to weaken the tenant-wide policy f…
Found in the description of #49722 · resolved - [BUG] /mcp menu freezes and becomes unresponsive when using --resume in WSL2
- Preflight Checklist - [x] I have searched [existing issues]( and this hasn't been reported yet - [x] This is a single bug report (please file separate reports for different bugs) -
Found in the description of #53035 · resolved - [BUG] CIMD redirect_uri validation fails against MCP servers that support DCR (v2.1.81)
- …sed, it should handle dynamic localhost ports per RFC 8252. Workaround Downgrade to Claude Code 2.1.80: claude update --version 2.1.80 What Should Happen? See description above. Error Messages/Logs Steps to Reproduce See…
Found in the description of #38296 · resolved - [BUG] Enterprise managed-mcp.json silently blocks all claude.ai cloud MCP connectors
- …, the enterprise guard should not skip the cloud MCP fetch: Workaround: A hook that fetches cloud servers from the API and merges them into : Related issues: 21874, 32955, 24825
Found in the description of #40559 · resolved - [BUG] Child/nested claude processes orphan on /exit in WSL systemd environments, triggering cross-process GUI freezes via vmmem CPU spikes
- …fies 1 and 2 since each orphaned keeps its MCP fleet alive. Workaround currently deployed (user-space, 3 layers) Because there is no built-in solution, the following workaround was deployed: Layer A — shell to reap child…
Found in the description of #51516 · resolved
Excerpts are quoted from the linked issue so you can judge relevance before opening it. Threads that only ask for a workaround, or report that there is none, are excluded. These are community suggestions, not official guidance from Anthropic — read the full thread before applying one.
Matching issues 1–56
Ranked by community engagement (reactions weighted over comments).
- Remote MCP OAuth: prompt=consent hardcoded on every authorize request breaks Entra tenants with user-consent disabled
- MCP server configuration stored in ~/.claude.json is undocumented and confusing
- [BUG] /mcp menu freezes and becomes unresponsive when using --resume in WSL2
- Claude-in-Chrome MCP tools steal window focus on every tool call
- [BUG] CIMD redirect_uri validation fails against MCP servers that support DCR (v2.1.81)
- [BUG] System prompt consumes ~9.3M tokens on every session after installing Claude Desktop on Windows (WSL setup)
- [BUG] Enterprise managed-mcp.json silently blocks all claude.ai cloud MCP connectors
- MCP OAuth callback uses random port, breaks in WSL2 environments
- [BUG] MCP HTTP OAuth: refresh token never used; multi-session sharing broken
- [BUG] Child/nested claude processes orphan on /exit in WSL systemd environments, triggering cross-process GUI freezes via vmmem CPU spikes
- headersHelper does not expand ${CLAUDE_PLUGIN_ROOT} or set it as env var
- [BUG] Tool Search (ENABLE_TOOL_SEARCH) does not defer HTTP/Streamable HTTP MCP tools — 120K tokens loaded upfront on every session
- HTTP MCP OAuth: valid token silently corrupted by status check (wrong redirectUri, empty accessToken)
- linear-server MCP tool calls intermittently fail with user-rejection error during long sessions (hang / block / disconnect — root cause unknown)
- [BUG] Official Meta Ads MCP (mcp.facebook.com/ads) fails OAuth with "redirect_uris are not registered for this client"
- Telegram plugin: inbound messages not delivered to conversation (outbound works)
- [BUG]
- [BUG] VS Code extension hangs on WSL2 — PendingMigrationError (navigator global) prevents MCP server from starting
- [BUG] VS Code extension spawns duplicate MCP servers (still present in v2.1.71)
- [BUG] MCP tool call: null inside an object argument has no effect on the server
- PostToolUse hooks never fire for MCP tool calls — matcher verified correct, native tools fine (v2.1.198; is this intended?)
- Tool calls intermittently emitted as plain text (stray `court` + legacy `<invoke>` XML) instead of executing — hangs the session
- [BUG] v2.1.147 regression: HTTP MCP servers without optional GET listening stream - 404 misinterpreted as session expiry, transport torn down
- [BUG] /mcp` modal freezes TUI hard on WSL2 — only reproducible without `--debug
- [BUG] v2.1.105 breaks all stdio MCP servers - stdin pipe closed immediately on spawn
- [BUG] claude-code MCP tool calls execute but results never return to claude.ai chat
- Desktop WSL sessions get no `ccd_session` host MCP: `mark_chapter` is unavailable, so chapter dividers and the floating table of contents never appear
- [BUG] /mcp TUI arrow key navigation is inaccessible with NVDA screen reader on Windows + WSL2
- Plugin install pipeline strips top-level dotfiles (.mcp.json, .npmrc), breaking channel plugins
- [BUG] Claude Code cannot interact with VSCode (no IDE tools available - can't openDiff, getDiagnostics...)
- [BUG] Empty `projects[path].mcpServers: {}` shadows user-scope servers — should be passthrough, explicit deny required to override
- [BUG] Permission relay not working with --dangerously-load-development-channels server: channels
- [BUG] MCP channel notifications not delivered to session (Discord/Telegram plugins)
- [BUG] MCP tool call results not surfaced when server runs via Docker/Sail on Linux
- [BUG] Desktop-launched sessions: claude.ai connector push (replaceRemoteMcpServers) is never applied to an in-flight turn — first turn of every fresh session has no connector tools
- Claude Desktop cowork VM startup permanently breaks WSL2 interop (vsock accept4 failed 110)
- [BUG] MCP tools unavailable in agent-team exec subagents — mcp__*__* returns "No such tool available" despite servers being connected at session level
- [BUG] Discord plugin MCP notifications not received on Windows/WSL (works on native Linux)
- Telegram channel MCP notifications not delivered to Claude Code session
- [Bug] MCP tools not available in spawned sub-agents via Agent tool
- Telegram plugin: inbound channel notifications not surfaced (v2.1.81)
- [DISCUSSION] Power User Patterns: Hooks, Memory Lifecycle, and Compaction Quality
- [BUG] Regression: MCP tool search fails in 2.1.70 (working in 2.1.69)
- [BUG] Github MCP Authenticating not shows confirm page in browser
- [BUG] Allow disabling managed integrations (connectors) per product (Claude Code vs Cowork)
- MCP server tools not indexed by tool discovery despite server showing "Connected"
- Session hangs indefinitely mid-turn: ide MCP tool calls (auto getDiagnostics on Write) have no timeout, while connect does
- [Bug] Since ~v2.1.228, stdio MCP first connection attempt is SIGTERMed at ~3 s and silently retried - orphans Windows-side servers under WSL and breaks single-instance servers (CONNECTION_CLOSED)
- [BUG] claude_code.pull_request.count matches MCP tool names, not pull requests — misses tools that put the verb in an argument (follow-up to #45776)
- [BUG] Plugin update fails silently when MCP server holds open file handles; stale binary continues serving requests
- MCP elicitation controls visible but not interactable in terminal (tmux/WSL)
- M365 MCP OAuth flow broken: duplicate 'prompt' parameter causes AADSTS900971
- [BUG] Subagent frontmatter `disallowedTools` silently ignores MCP glob patterns (`mcp__<server>__*`) while `tools` honors them
- Headless `claude -p` returns 400 when a connector tool has a top-level anyOf/oneOf/allOf in input_schema
- [BUG] Removing whitespace from an MCP server's `url`, as the config warning suggests, loses its OAuth sign-in (token key is a hash of the raw URL)
- --dangerously-load-development-channels is not propagated to the session process on daemon fork-resume (channel notifications silently dropped)