[BUG] desktop-commander plugin fails to start on Windows — npm error Invalid Version: (empty version spec)
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?
<html>
<body>
<!--StartFragment--><p dir="ltr"><strong>Filed against:</strong> Claude plugin distribution / <code>desktop-commander</code> plugin manifest
(not the upstream <code>@wonderwhy-er/desktop-commander</code> package, which runs correctly
standalone — see "Evidence" below).</p>
<h2 dir="ltr">Summary</h2>
<p dir="ltr">The <code>desktop-commander</code> plugin's MCP server never starts. <code>npm</code> exits during launch
with <code>Invalid Version:</code> and an empty version value, before the server process runs.
The client then reports <code>CONNECTION_CLOSED</code>. Reproduces on every session start and
survives a plugin reinstall.</p>
<h2 dir="ltr">Environment</h2>
<div dir="ltr">
|
-- | --
OS | Windows 11 Pro 10.0.26200
Node | v24.19.0
npm | v11.17.0
Package | @wonderwhy-er/desktop-commander
Client | Claude desktop app, packaged (MSIX) install, Cowork mode
Global install | present and functional at %APPDATA%\npm\desktop-commander.cmd
</div>
<h2 dir="ltr">Observed error</h2>
<p dir="ltr">From the client's MCP log (<code>mcp-logs-plugin-desktop-commander-desktop-commander/*.jsonl</code>):</p>
<div role="group" aria-label="Code" tabindex="0" style=""><div><div></div></div><div><pre style="color: rgb(20, 24, 31); background: transparent; font-family: var(--font-mono);"><code style="color: rgb(20, 24, 31); background: transparent; font-family: var(--font-mono); white-space: pre-wrap;">{"debug":"Starting connection with timeout of 30000ms"}
{"error":"Server stderr: npm error Invalid Version: \nnpm error A complete log of this run can be found in: ...\\npm-cache\\_logs\\...-debug-0.log\n"}
{"debug":"Connection failed after 6526ms (CONNECTION_CLOSED): Connection closed"}
{"error":"Connection failed (CONNECTION_CLOSED): Connection closed"}</code></pre></div></div>
<p dir="ltr" style="">Note the empty value after <code>Invalid Version:</code> — npm received a package specifier
with no version (e.g. a trailing <code>@</code> with nothing following it).</p>
<p dir="ltr" style="">Identical failure captured in three separate sessions, ~6s each:</p>
<ul dir="ltr" style="">
<li><code>2026-09-09T15-19-27</code></li>
<li><code>2026-09-09T15-20-16</code></li>
<li><code>2026-09-09T15-24-04</code></li>
</ul>
<h2 dir="ltr" style="">Reproduction</h2>
<ol dir="ltr" style="">
<li>Windows 11, Node 24.19.0, npm 11.17.0, packaged Claude desktop app.</li>
<li>Install the <code>desktop-commander</code> plugin.</li>
<li>Start a session.</li>
<li>Server fails to connect; log shows the error above. No tools are exposed.</li>
</ol>
<h2 dir="ltr" style="">Evidence this is not a local environment problem</h2>
<ul dir="ltr" style="">
<li><code>npx @wonderwhy-er/desktop-commander</code> run manually <strong>works</strong> — it blocks on stdin
awaiting JSON-RPC, which is correct stdio-server behavior.</li>
<li>Node and npm are on PATH and current.</li>
<li>The package is installed globally and its shims exist and run.</li>
<li>No proxy; registry reachable (other plugins' servers install and start fine from
the same npm cache in the same session — e.g. <code>@modelcontextprotocol/server-pdf</code>
logs <code>exit 0</code>).</li>
<li>Uninstalling and reinstalling the plugin does not change the result.</li>
</ul>
<h2 dir="ltr" style="">Suspected cause</h2>
<p dir="ltr" style="">The plugin manifest's server definition passes an empty or malformed version
specifier. The client invokes servers as:</p>
<div role="group" aria-label="Code" tabindex="0" style=""><div><div></div></div><div><pre style="color: rgb(20, 24, 31); background: transparent; font-family: var(--font-mono);"><code style="color: rgb(20, 24, 31); background: transparent; font-family: var(--font-mono); white-space: pre-wrap;">npm exec --yes -- <package> <args></code></pre></div></div>
<p dir="ltr" style="">so a spec like <code>@wonderwhy-er/desktop-commander@</code> (trailing <code>@</code>, no version) would
produce exactly this npm error before the server is reached.</p>
<h2 dir="ltr" style="">Suggested fix</h2>
<p dir="ltr" style="">Either pin an explicit version, or omit the <code>@</code> entirely:</p>
<div role="group" aria-label="Code" tabindex="0" style=""><div><div></div></div><div><pre style="color: rgb(20, 24, 31); background: transparent; font-family: var(--font-mono);"><code style="color: rgb(20, 24, 31); background: transparent; font-family: var(--font-mono); white-space: pre-wrap;">@wonderwhy-er/desktop-commander@latest
@wonderwhy-er/desktop-commander</code></pre></div></div>
<h2 dir="ltr" style="">Workaround attempted</h2>
<p dir="ltr" style="">Repointing the server at the working global install
(<code>command: %APPDATA%\npm\desktop-commander.cmd</code>, <code>args: []</code>) would bypass npm
version resolution, but the plugin's manifest file could not be located on disk —
it appears to live in a generated per-session directory, so a hand edit would not
persist in any case.</p>
<h2 dir="ltr" style="">Impact</h2>
<p dir="ltr" style="">The plugin is entirely unusable on this configuration. Its skills load and are
offered to the model, but every tool they depend on is absent, so the skills
trigger and then cannot execute.</p><!--EndFragment-->
</body>
</html>
What Should Happen?
I expect new 'desktop-commander' plugin for Windows distro, that will work.
Error Messages/Logs
Steps to Reproduce
Windows 11, Node 24.19.0, npm 11.17.0, packaged Claude desktop app.
Install the desktop-commander plugin.
Start a session.
Server fails to connect; log shows the error above. No tools are exposed.
Claude Model
Opus
Is this a regression?
I don't know
Last Working Version
_No response_
Claude Code Version
Claude 1.49585.0.0
Platform
Anthropic API
Operating System
Windows
Terminal/Shell
Windows Terminal
Additional Information
_No response_