claude-code - 💡(How to fix) Fix [BUG] MCP Desktop Extensions Fail on MSIX-Packaged Claude Desktop (Windows) [1 participants]

Official PRs (…)
ON THIS PAGE

Recommended Tools

×6

Utilities matched from this issue’s tags and category — try them while you read without losing context.

GitHub issue graph ai analysis

Paste a GitHub issue URL. We fetch that issue, discover linked issues from bodies/comments/timeline, collect linked pull requests, and produce a structured English report.

The report is written in English Markdown for sharing and archival.

Helpful · Quick feedback

Loading…
GitHub stats
anthropics/claude-code#46064Fetched 2026-04-11 06:29:55
View on GitHub
Comments
0
Participants
1
Timeline
3
Reactions
0
Participants
Timeline (top)
labeled ×2unlabeled ×1

Error Message

Error Message [Windows-MCP] [error] spawn uv ENOENT [Windows-MCP] [error] Server disconnected.

Error Messages/Logs

[Windows-MCP] [error] spawn uv ENOENT [Windows-MCP] [error] Server disconnected.

Root Cause

Environment Claude Desktop version: 1.1617.0.0 (MSIX package ID: Claude_pzs8sxrjxfjjc) OS: Windows (Enterprise, managed via Microsoft Intune) Extension: Windows-MCP (ant.dir.cursortouch.windows-mcp) Deployment: MSIX distributed via Intune to corporate devices Error Message Unable to connect to extension server. Please try disabling and re-enabling the extension. Relevant Log (mcp-server-Windows-MCP.log) [Windows-MCP] [info] Using MCP server command: uv with args and path 'uv' is not recognized as an internal or external command, operable program or batch file. [Windows-MCP] [error] spawn uv ENOENT at ChildProcess._handle.onexit (node:internal/child_process:294:12) [Windows-MCP] [error] Server disconnected. Root Cause Analysis The MSIX packaging format runs Claude Desktop in a virtualized sandbox via the Windows App Model runtime. This sandbox constructs a minimal process environment that includes only machine-level PATH entries (HKLM) and excludes user-level PATH entries (HKCU). uv (the Python package manager required by most MCP extensions) installs itself to %USERPROFILE%.local\bin and registers only in user-level PATH — making it invisible to Claude Desktop despite being correctly installed and accessible from any normal terminal session. Additionally, the MSIX package virtualizes %APPDATA%, causing the "Edit Config" button in Claude Desktop to open the wrong config file (%APPDATA%\Claude\claude_desktop_config.json which doesn't exist), instead of the correct virtualized path: %LOCALAPPDATA%\Packages\Claude_pzs8sxrjxfjjc\LocalCache\Roaming\Claude\claude_desktop_config.json Impact Affects all enterprise customers deploying Claude Desktop via Intune/MSIX Every MCP extension that relies on uv (Python) or npx/node (JavaScript) fails out of the box No workaround is available to end users without admin rights Current Workaround Copy runtimes to a machine-level PATH location visible to the sandbox: powershell Copy-Item "$env:USERPROFILE.local\bin\uv.exe" "C:\Windows\System32\uv.exe" -Force Copy-Item "$env:USERPROFILE.local\bin\uvx.exe" "C:\Windows\System32\uvx.exe" -Force This must be deployed via an Intune remediation script on every managed device — it is not scalable. Proposed Fix Add desktop6:EnvironmentVariables to the AppxManifest.xml to expose user PATH to the sandboxed process: xml desktop6:EnvironmentVariables <desktop6:EnvironmentVariable Name="PATH" Value="%USERPROFILE%.local\bin;[EXISTING_PATH]"/> </desktop6:EnvironmentVariables> Alternatively, Claude Desktop could resolve the runtime path at startup by scanning common install locations (%USERPROFILE%.local\bin, %APPDATA%\npm, etc.) and injecting them into the child process env before spawning MCP servers — similar to how VS Code handles this.

Fix Action

Fix / Workaround

Environment Claude Desktop version: 1.1617.0.0 (MSIX package ID: Claude_pzs8sxrjxfjjc) OS: Windows (Enterprise, managed via Microsoft Intune) Extension: Windows-MCP (ant.dir.cursortouch.windows-mcp) Deployment: MSIX distributed via Intune to corporate devices Error Message Unable to connect to extension server. Please try disabling and re-enabling the extension. Relevant Log (mcp-server-Windows-MCP.log) [Windows-MCP] [info] Using MCP server command: uv with args and path 'uv' is not recognized as an internal or external command, operable program or batch file. [Windows-MCP] [error] spawn uv ENOENT at ChildProcess._handle.onexit (node:internal/child_process:294:12) [Windows-MCP] [error] Server disconnected. Root Cause Analysis The MSIX packaging format runs Claude Desktop in a virtualized sandbox via the Windows App Model runtime. This sandbox constructs a minimal process environment that includes only machine-level PATH entries (HKLM) and excludes user-level PATH entries (HKCU). uv (the Python package manager required by most MCP extensions) installs itself to %USERPROFILE%.local\bin and registers only in user-level PATH — making it invisible to Claude Desktop despite being correctly installed and accessible from any normal terminal session. Additionally, the MSIX package virtualizes %APPDATA%, causing the "Edit Config" button in Claude Desktop to open the wrong config file (%APPDATA%\Claude\claude_desktop_config.json which doesn't exist), instead of the correct virtualized path: %LOCALAPPDATA%\Packages\Claude_pzs8sxrjxfjjc\LocalCache\Roaming\Claude\claude_desktop_config.json Impact Affects all enterprise customers deploying Claude Desktop via Intune/MSIX Every MCP extension that relies on uv (Python) or npx/node (JavaScript) fails out of the box No workaround is available to end users without admin rights Current Workaround Copy runtimes to a machine-level PATH location visible to the sandbox: powershell Copy-Item "$env:USERPROFILE.local\bin\uv.exe" "C:\Windows\System32\uv.exe" -Force Copy-Item "$env:USERPROFILE.local\bin\uvx.exe" "C:\Windows\System32\uvx.exe" -Force This must be deployed via an Intune remediation script on every managed device — it is not scalable. Proposed Fix Add desktop6:EnvironmentVariables to the AppxManifest.xml to expose user PATH to the sandboxed process: xml desktop6:EnvironmentVariables <desktop6:EnvironmentVariable Name="PATH" Value="%USERPROFILE%.local\bin;[EXISTING_PATH]"/> </desktop6:EnvironmentVariables> Alternatively, Claude Desktop could resolve the runtime path at startup by scanning common install locations (%USERPROFILE%.local\bin, %APPDATA%\npm, etc.) and injecting them into the child process env before spawning MCP servers — similar to how VS Code handles this.

Code Example

Relevant Log (mcp-server-Windows-MCP.log)

[Windows-MCP] [info] Using MCP server command: uv with args and path
'uv' is not recognized as an internal or external command, operable program or batch file.
[Windows-MCP] [error] spawn uv ENOENT
    at ChildProcess._handle.onexit (node:internal/child_process:294:12)
[Windows-MCP] [error] Server disconnected.
RAW_BUFFERClick to expand / collapse

Preflight Checklist

  • I have searched existing issues and this hasn't been reported yet
  • This is a single bug report (please file separate reports for different bugs)
  • I am using the latest version of Claude Code

What's Wrong?

"Windows-MCP" cant start when claude dekstop is installed using MSIX

What Should Happen?

Environment Claude Desktop version: 1.1617.0.0 (MSIX package ID: Claude_pzs8sxrjxfjjc) OS: Windows (Enterprise, managed via Microsoft Intune) Extension: Windows-MCP (ant.dir.cursortouch.windows-mcp) Deployment: MSIX distributed via Intune to corporate devices Error Message Unable to connect to extension server. Please try disabling and re-enabling the extension. Relevant Log (mcp-server-Windows-MCP.log) [Windows-MCP] [info] Using MCP server command: uv with args and path 'uv' is not recognized as an internal or external command, operable program or batch file. [Windows-MCP] [error] spawn uv ENOENT at ChildProcess._handle.onexit (node:internal/child_process:294:12) [Windows-MCP] [error] Server disconnected. Root Cause Analysis The MSIX packaging format runs Claude Desktop in a virtualized sandbox via the Windows App Model runtime. This sandbox constructs a minimal process environment that includes only machine-level PATH entries (HKLM) and excludes user-level PATH entries (HKCU). uv (the Python package manager required by most MCP extensions) installs itself to %USERPROFILE%.local\bin and registers only in user-level PATH — making it invisible to Claude Desktop despite being correctly installed and accessible from any normal terminal session. Additionally, the MSIX package virtualizes %APPDATA%, causing the "Edit Config" button in Claude Desktop to open the wrong config file (%APPDATA%\Claude\claude_desktop_config.json which doesn't exist), instead of the correct virtualized path: %LOCALAPPDATA%\Packages\Claude_pzs8sxrjxfjjc\LocalCache\Roaming\Claude\claude_desktop_config.json Impact Affects all enterprise customers deploying Claude Desktop via Intune/MSIX Every MCP extension that relies on uv (Python) or npx/node (JavaScript) fails out of the box No workaround is available to end users without admin rights Current Workaround Copy runtimes to a machine-level PATH location visible to the sandbox: powershell Copy-Item "$env:USERPROFILE.local\bin\uv.exe" "C:\Windows\System32\uv.exe" -Force Copy-Item "$env:USERPROFILE.local\bin\uvx.exe" "C:\Windows\System32\uvx.exe" -Force This must be deployed via an Intune remediation script on every managed device — it is not scalable. Proposed Fix Add desktop6:EnvironmentVariables to the AppxManifest.xml to expose user PATH to the sandboxed process: xml desktop6:EnvironmentVariables <desktop6:EnvironmentVariable Name="PATH" Value="%USERPROFILE%.local\bin;[EXISTING_PATH]"/> </desktop6:EnvironmentVariables> Alternatively, Claude Desktop could resolve the runtime path at startup by scanning common install locations (%USERPROFILE%.local\bin, %APPDATA%\npm, etc.) and injecting them into the child process env before spawning MCP servers — similar to how VS Code handles this.

Error Messages/Logs

Relevant Log (mcp-server-Windows-MCP.log)

[Windows-MCP] [info] Using MCP server command: uv with args and path
'uv' is not recognized as an internal or external command, operable program or batch file.
[Windows-MCP] [error] spawn uv ENOENT
    at ChildProcess._handle.onexit (node:internal/child_process:294:12)
[Windows-MCP] [error] Server disconnected.

Steps to Reproduce

on a device with claude desktop app installed using MSIX (we use intune) try to install and enable extension "Windows-MCP"

Claude Model

None

Is this a regression?

I don't know

Last Working Version

No response

Claude Code Version

1.1617.0.0

Platform

Other

Operating System

Windows

Terminal/Shell

Other

Additional Information

No response

extent analysis

TL;DR

The most likely fix is to modify the AppxManifest.xml to include user PATH environment variables, allowing the sandboxed Claude Desktop process to access the required uv executable.

Guidance

  • Add <desktop6:EnvironmentVariables> to the AppxManifest.xml to expose user PATH to the sandboxed process, specifically including the path to the uv executable.
  • Consider implementing an alternative solution where Claude Desktop resolves the runtime path at startup by scanning common install locations and injecting them into the child process environment.
  • Verify that the uv executable is correctly installed and accessible in the user's PATH.
  • Test the proposed fix by installing and enabling the Windows-MCP extension on a device with Claude Desktop installed using MSIX.

Example

<desktop6:EnvironmentVariables>
  <desktop6:EnvironmentVariable Name="PATH" Value="%USERPROFILE%\.local\bin;[EXISTING_PATH]"/>
</desktop6:EnvironmentVariables>

This example demonstrates how to add the user PATH environment variable to the AppxManifest.xml.

Notes

The proposed fix assumes that the uv executable is installed in the user's .local\bin directory. If this is not the case, the PATH variable may need to be modified accordingly.

Recommendation

Apply the workaround by modifying the AppxManifest.xml to include the user PATH environment variables, as this is a more straightforward and immediate solution. This will allow the sandboxed Claude Desktop process to access the required uv executable.

Vote matrix · Quick signals

Works
Did the solution work? Tap to confirm.
Easy Fix
Was it a quick fix?
Time Saver
Did it save you time?
Blocking
Was it severely blocking?
Common Issue
Are others likely hitting this too?
Flaky / Intermittent
Is it intermittent?
Verified / Reproducible
Can you reproduce it reliably?
Loading…

Still need to ship something?

×6

Another batch ranked right after the header list — different links, same matching logic.

Back to top recommendations

TRENDING