[BUG] Windows MSIX: plugin stdio MCP servers fail — ${CLAUDE_PLUGIN_ROOT} resolves to un-virtualized %APPDATA% path, plugin files live under LocalCache

Status Open
Maintainer reply None cached
Activity 0 comments · opened Sep 30, 2026

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)
  • [x] I am using the latest version of Claude Code

What's Wrong?

On Windows (MSIX-packaged Claude desktop), every plugin that ships a local stdio MCP server fails to start. The desktop installs the plugin files into the MSIX-virtualized AppData, but launches the server with ${CLAUDE_PLUGIN_ROOT} expanded to the real, un-virtualized %APPDATA% path. The server process (python.exe, outside the package) can't see the virtualized location, so it gets "No such file or directory".

All 7 stdio-MCP plugins from our private marketplace fail identically and stop after 3/3 retries. Skill-only plugins and plugins using remote (http) MCP servers load fine.

What Should Happen?

${CLAUDE_PLUGIN_ROOT} should resolve to a path the spawned server process can actually read — the real on-disk location of the installed plugin files — so plugin stdio MCP servers start on MSIX installs the same as on macOS.

Error Messages/Logs

Connection closed (stderr: python.exe: can't open file '%APPDATA%\Claude\local-agent-mode-sessions\<id-1>\<id-2>\rpm\<plugin_id>\run_server.py': [Errno 2] No such file or directory)

Path passed to python.exe (does NOT exist — no "rpm" folder):
%APPDATA%\Claude\local-agent-mode-sessions\<id-1>\<id-2>\rpm\<plugin_id>\

Where the plugin files actually are (all files present, written at install time):
%LOCALAPPDATA%\Packages\Claude_pzs8sxrjxfjjc\LocalCache\Roaming\Claude\local-agent-mode-sessions\<id-1>\<id-2>\rpm\<plugin_id>\

Steps to Reproduce

  1. Install Claude desktop on Windows via the standard installer (MSIX package, family Claude_pzs8sxrjxfjjc).
  2. Enable a plugin whose .mcp.json defines a stdio server, e.g.

{"mcpServers":{"x":{"command":"python","args":["${CLAUDE_PLUGIN_ROOT}/run_server.py"]}}}

  1. Restart Claude and start a Cowork task.
  2. The server never appears. Device info shows state "retrying" 3/3 with the error above.
  3. In File Explorer, %APPDATA%\Claude\local-agent-mode-sessions\<id-1>\<id-2>\rpm does not exist; the same path under %LOCALAPPDATA%\Packages\Claude_pzs8sxrjxfjjc\LocalCache\Roaming\ contains the plugin files.

Claude Model

Other

Is this a regression?

I don't know

Last Working Version

_No response_

Claude Code Version

N/A — Claude desktop app 2.16120.0 (Cowork mode)

Platform

Anthropic API

Operating System

Windows

Terminal/Shell

Other

Additional Information

Windows x64, [paste winver result]. Claude desktop 2.16120.0, Electron 44.4.3.
Related MSIX-virtualization issues: #25579 (closed/locked — config/userData path), #58421 (Cowork cites non-existent AppData\Roaming paths), #26073 ("Edit Config" opens wrong file). None covers plugin MCP servers.
The plugin interpreter resolves fine (python.exe starts); only the script path is wrong. The failure occurs before any plugin code runs.
Likely fix: resolve CLAUDE_PLUGIN_ROOT to the real on-disk path (e.g. via the package's LocalCache path), or install plugin files outside the virtualized AppData.

View original on GitHub ↗