Finally, MCP servers & commands 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 this by wrapping commands with cmd.exe /c so your MCP servers actually start. Works with Claude Code/Desktop, VS Code, Cursor, Zed, Amazon
Add this skill
npx mdskills install operator-kit/mcp2winWell-documented Windows compatibility tool with clear setup, multiple usage modes, and helpful examples
1# mcp2win23Finally, MCP servers & commands that just work on Windows.45Every 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 this by wrapping commands with `cmd.exe /c` so your MCP servers actually start.67Works with **Claude Code/Desktop**, **VS Code**, **Cursor**, **Zed**, **Amazon Q**, and **Gemini CLI**89Copy any install command, prefix with `mcp2win`, confirm — done. Or convert online at [mcp2win.sh](https://mcp2win.sh).1011## Quick start1213No install needed — just run with `npx`:1415```bash16# Copy an MCP server's install command, prefix with mcp2win — confirm and it runs17npx @operatorkit/mcp2win claude mcp add github-server -- npx -y @modelcontextprotocol/server-github18# Shows the converted command, asks to confirm, then runs it1920# Fix a config file (confirms before writing, creates .bak backup)21npx @operatorkit/mcp2win claude_desktop_config.json2223# Convert inline JSON (outputs to stdout, no confirmation needed)24npx @operatorkit/mcp2win '{"command":"npx","args":["-y","@pkg"]}'25```2627## Install2829If you use it often, install globally:3031```bash32npm i -g @operatorkit/mcp2win3334# or with go35go install github.com/operator-kit/mcp2win/cmd/mcp2win@latest3637# or download a binary from https://github.com/operator-kit/mcp2win/releases38```3940## Usage4142### CLI command translation4344Paste any provider's `mcp add` command — `mcp2win` converts it and **runs it after confirmation**:4546```bash47# Claude — converts to add-json, confirms, runs48mcp2win claude mcp add github-server -- npx -y @modelcontextprotocol/server-github49# Execute? [y]es / [n]o / [a]lways: y5051# VS Code52mcp2win code --add-mcp '{"name":"my-server","command":"npx","args":["-y","@pkg"]}'5354# Amazon Q55mcp2win qchat mcp add -- npx -y @pkg5657# Gemini58mcp2win gemini mcp add fetch-server -- npx -y @pkg5960# Skip confirmation (non-interactive / CI)61mcp2win -y claude mcp add github-server -- npx -y @modelcontextprotocol/server-github6263# Preview only, don't run64mcp2win --dry-run claude mcp add github-server -- npx -y @modelcontextprotocol/server-github65```6667Answering **always** saves your preference — no more prompts for future CLI commands.6869### File transformation7071```bash72# Preview + confirm write (creates .bak backup)73mcp2win claude_desktop_config.json74# Write changes to claude_desktop_config.json? [y]es / [n]o / [a]lways: y7576# Skip confirmation77mcp2win -y claude_desktop_config.json7879# Write without backup80mcp2win -y --no-backup claude_desktop_config.json8182# Write to a different file83mcp2win -y -o windows_config.json claude_desktop_config.json8485# Preview only86mcp2win --dry-run claude_desktop_config.json87```8889### JSON conversion9091Transform inline JSON or pipe from stdin (outputs to stdout, no confirmation):9293```bash94# Inline95mcp2win '{"command":"npx","args":["-y","@modelcontextprotocol/server-github"]}'9697# Stdin98cat claude_desktop_config.json | mcp2win99100# Full config101mcp2win '{"mcpServers":{"s1":{"command":"npx","args":["-y","@pkg"]}}}'102```103104### Updating105106mcp2win checks for updates in the background and notifies you when a new version is available. To update:107108```bash109mcp2win update110```111112Disable background checks with `MCP2WIN_NO_UPDATE_CHECK=1`.113114### Preferences115116When you answer **always** at a prompt, the preference is saved. You can also manage preferences directly:117118```bash119mcp2win config get # show all preferences120mcp2win config set always_exec_cli true # skip CLI confirmation121mcp2win config set always_write_file true # skip file confirmation122mcp2win config reset # reset all preferences123mcp2win config path # show config file location124```125126## Flags127128| Flag | Description |129|---|---|130| `--yes`, `-y` | Skip confirmation prompt (non-interactive mode) |131| `--dry-run` | Preview only, no action |132| `--quiet` | Suppress preview output |133| `--no-backup` | Skip `.bak` backup when writing files |134| `-o <path>` | Write output to a different file |135| `--unwrap` | Reverse: remove `cmd.exe /c` wrapping |136| `--resolve` | Resolve commands to absolute paths via `PATH`/`PATHEXT` |137| `--no-color` | Disable colored output |138139## What it does140141- Wraps `.cmd` shim commands (`npx`, `uvx`, `pnpx`, `bunx`, `yarn`, `tsx`, etc.) with `cmd.exe /c`142- Skips native executables (`node`, `python`, `deno`, `bun`)143- Skips HTTP/SSE transport servers144- Skips already-wrapped commands (idempotent)145- Handles Zed's nested command format146- Preserves all extra fields (`env`, `disabled`, etc.)147- Supports Claude, VS Code, Cursor, Zed, Amazon Q, and Gemini configs148149## License150151MIT152
Full transparency — inspect the skill content before installing.