Releases: operator-kit/mcp2win
v0.2.1
Bug fix
Fix `--` consumed by npm shim on Windows — When installed via npm i -g, the -- separator was consumed by the npm shim chain (sh/cmd wrapper), causing CLI mode to break. Now uses a two-layer fix:
- Strict flag extraction: mcp2win flags are only consumed before the provider command, preventing sub-command flags like
-y(fromnpx -y) from being stolen - Heuristic separator inference: providers detect where the command starts by scanning for known command names (npx, uvx, node, python, etc.), so
--is no longer strictly required for common commands - npm wrapper: added
windowsVerbatimArgumentsas defense against Node.js arg escaping on Windows
Before (broken)
mcp2win claude mcp add srv -s user -- npx -y @pkg
Error: expected '--' separator
After (works)
mcp2win claude mcp add srv -s user -- npx -y @pkg # works (-- preserved or not)
mcp2win claude mcp add srv -s user npx -y @pkg # also works (heuristic)
v0.2.0
What's new in v0.2.0
Execute commands directly
CLI mode now converts and runs provider commands in one step. No more copy-pasting — just prefix any MCP server's install command with mcp2win:
mcp2win claude mcp add github-server -- npx -y @modelcontextprotocol/server-github
# Execute? [y]es / [n]o / [a]lways: yConfirmation prompts
All destructive actions (executing commands, writing config files) now prompt for confirmation with [y]es / [n]o / [a]lways. Answer always to save your preference and skip future prompts.
--yes/-yflag to skip prompts (for CI / non-interactive use)--dry-runto preview without acting
Config file transformation
File mode now writes changes directly (with .bak backup) after confirmation — no more --write flag needed:
mcp2win claude_desktop_config.json
# Write changes to claude_desktop_config.json? [y]es / [n]o / [a]lways: ySelf-update
mcp2win updateBackground update checks notify you when a new version is available. Disable with MCP2WIN_NO_UPDATE_CHECK=1.
Preferences
mcp2win config get # show preferences
mcp2win config set always_exec_cli true # skip CLI confirmation
mcp2win config set always_write_file true # skip file confirmation
mcp2win config reset # reset allBreaking changes
- CLI mode default changed: now executes the converted command instead of printing it. Use
--dry-runfor the old behavior. - File mode default changed: now writes to file after confirmation instead of outputting to stdout. Use
--dry-runfor preview-only. --writeflag removed: replaced by the default write-after-confirm behavior. Use--yes/-yto skip the prompt.
v0.1.1
Add npm package README so the npmjs.com listing has proper documentation.
No code changes from v0.1.0.
v0.1.0 — Initial Release
mcp2win v0.1.0
Finally, MCP servers that just work on Windows.
Every MCP server README assumes macOS or Linux. You copy the config, paste it in, and nothing happens — because npx, uvx, and friends are .cmd batch shims on Windows, not real executables. mcp2win fixes your configs so your MCP servers actually start.
What it does
Wraps shim commands (npx, pnpx, bunx, uvx, yarn, tsx, ts-node, prettier, eslint, tsc, vite, turbo, next, nuxt, playwright) with cmd.exe /c so Windows can execute them. Automatically skips native executables (node, python, deno, bun), HTTP/SSE transports, and already-wrapped commands.
Three ways to use it
Transform config files — point it at your Claude Desktop, Cursor, VS Code, or Zed config:
mcp2win claude_desktop_config.json # preview changes
mcp2win --write claude_desktop_config.json # apply (creates .bak backup)
Translate CLI commands — paste any provider's mcp add command and get the Windows version:
mcp2win claude mcp add github-server -- npx -y @modelcontextprotocol/server-github
mcp2win code --add-mcp '{"name":"my-server","command":"npx","args":["-y","@pkg"]}'
mcp2win qchat mcp add -- npx -y @pkg
Convert JSON directly — inline or piped from stdin:
mcp2win '{"command":"npx","args":["-y","@modelcontextprotocol/server-github"]}'
cat config.json | mcp2win
Supported clients
Claude Code, Claude Desktop, VS Code, Cursor, Zed, Amazon Q, Gemini CLI
Additional features
--unwrapto reverse the transformation (removecmd.exe /cwrapping)--resolveto resolve commands to absolute paths via PATH/PATHEXT--dry-run,--quiet,-ofor scripting and CI use- Incremental
.bakbackups (never overwrites existing backups) - Handles Zed's nested command object format
- Preserves all extra fields (
env,disabled, etc.) - Idempotent — safe to run multiple times
Install
npm i -g @operatorkit/mcp2win
Or download a binary below for your platform.