Skip to content

Releases: operator-kit/mcp2win

v0.2.1

09 Mar 13:32

Choose a tag to compare

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 (from npx -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 windowsVerbatimArguments as 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

09 Mar 11:30

Choose a tag to compare

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: y

Confirmation 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 / -y flag to skip prompts (for CI / non-interactive use)
  • --dry-run to 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: y

Self-update

mcp2win update

Background 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 all

Breaking changes

  • CLI mode default changed: now executes the converted command instead of printing it. Use --dry-run for the old behavior.
  • File mode default changed: now writes to file after confirmation instead of outputting to stdout. Use --dry-run for preview-only.
  • --write flag removed: replaced by the default write-after-confirm behavior. Use --yes / -y to skip the prompt.

v0.1.1

07 Mar 20:05

Choose a tag to compare

Add npm package README so the npmjs.com listing has proper documentation.

No code changes from v0.1.0.

v0.1.0 — Initial Release

07 Mar 19:58

Choose a tag to compare

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

  • --unwrap to reverse the transformation (remove cmd.exe /c wrapping)
  • --resolve to resolve commands to absolute paths via PATH/PATHEXT
  • --dry-run, --quiet, -o for scripting and CI use
  • Incremental .bak backups (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.