[BUG] Windows: MCP extension spawn fails with "spawn UNKNOWN" when command is 'uv' — binary exists but OS denies execution (Smart App Control)
Preflight Checklist
- [x] I have searched existing issues and this hasn't been reported yet (closest related: #68858, #38266 — both are about
uvbuild-time failures after successful spawn; this is a failure to spawn at all) - [x] This is a single bug report
- [x] I am using the latest version of Claude Code / Claude Desktop
What's Wrong?
The Windows-MCP extension (ant.dir.cursortouch.windows-mcp, installed via Claude Extensions) fails to start on Windows with:
MCP Windows-MCP: spawn UNKNOWN
Could not connect to MCP server Windows-MCP
Server config (from Claude Desktop's connector panel):
- Command:
uv - Args:
--directory C:\Users\<user>\AppData\Roaming\Claude\Claude Extensions\ant.dir.cursortouch.windows-mcp run windows-mcp - Error:
spawn UNKNOWN
This is distinct from #68858 / #38266: those describe uv successfully starting a build and then failing with os error 32 during temp-directory cleanup. Here, the process never gets that far — spawn UNKNOWN indicates the child process could not be created at all.
Diagnosis performed:
uv.exeis confirmed installed and on PATH (where uv→C:\Users\<user>\.local\bin\uv.exe).- Attempting to execute
uv.exedirectly (from a shell) returns "Permission denied" — the binary exists but the OS refuses to execute it. - This matches Microsoft's documented Smart App Control block behavior (blocking unsigned/unrecognized executables), consistent with the timing: the failure started after a Windows restart, with no changes to the extension or its config.
What Should Happen?
Either:
- Claude Desktop should surface a clearer error distinguishing "OS refused to spawn the process" (permission/policy block) from other spawn failures, so users aren't left guessing between antivirus, missing PATH entries, or a Claude-side bug, or
- If
uv/extension binaries used by first-party/community extensions are unsigned, consider documenting this as a known Smart App Control conflict so users can self-diagnose, since the currentspawn UNKNOWNmessage gives no actionable information.
Steps to Reproduce
- Install the
Windows-MCPextension (ant.dir.cursortouch.windows-mcp) in Claude Desktop on Windows with Smart App Control enabled. - Restart Windows.
- Open Claude Desktop — the connector panel shows
Windows-MCPasfailedwith errorspawn UNKNOWN. - Confirm
uvis installed and on PATH (where uvsucceeds). - Attempt to run
uv.exedirectly from a terminal — execution is denied ("Permission denied" / blocked by OS), even though the file is present.
Claude Model
N/A (connector-level failure, not model-specific)
Is this a regression?
Possibly — same setup worked without issue across several previous restarts; started failing after a subsequent Windows restart with no config changes.
Claude Code Version
Claude for Windows app (desktop), MCP Extensions panel
Platform
Windows
Additional Information
Related but distinct issues:
- #68858 —
uv-based MCP servers fail withos error 32during build cleanup (spawn succeeds, build fails) - #38266 — similar
uvvenv build race condition
This report is specifically about spawn-time failure (spawn UNKNOWN) before any uv build activity occurs, most likely caused by Windows Smart App Control denying execution of an unsigned uv.exe/extension binary, not a handle-inheritance or build-cleanup race.
This issue has 1 comment on GitHub. Read the full discussion on GitHub ↗