Win Cli Server
БесплатноНе проверенHardened MCP server providing controlled access to PowerShell, CMD, Git Bash, and SSH from MCP clients like Claude Desktop.
Описание
Hardened MCP server providing controlled access to PowerShell, CMD, Git Bash, and SSH from MCP clients like Claude Desktop.
README
Hardened MCP server for Windows CLI and SSH interactions. Provides controlled access to PowerShell, CMD, Git Bash, and remote systems via SSH from MCP clients like Claude Desktop.
Fork Lineage
This is a maintained, hardened fork:
SimonB97/win-cli-mcp-server (original, development stalled) -> delorenj/super-win-cli-mcp-server (super-win-cli variant) -> this repo (bug fixes, hardening, dependency updates)
The original project is no longer actively maintained. This fork fixes critical bugs, updates dependencies, and is used in production daily.
What This Fork Fixes
Critical
- GUI window popups -- Added
windowsHide: truetochild_process.spawn(). Shell windows no longer flash on screen during MCP execution. - SSH event listener leak -- Reconnection cycles accumulated duplicate handlers on the ssh2
Clientinstance, causing memory leaks. Fixed by creating a freshClienton each reconnect and using.once()for connection-scoped events. - SSH stderr silently dropped -- When stdout had content, stderr was discarded (
output || errorOutput). Now both streams are combined. - Silent config fallback on BOM -- UTF-8 BOM in
config.jsoncausedJSON.parse()to throw, silently falling back to restrictive defaults. BOM is now stripped before parsing.
High
- Dead dependency removed --
@modelcontextprotocol/server-memory-dynamicpointed tofile:../servers/src/memory(author's local dev path). Removed. - SSH agent auth support -- Config validation required
passwordorprivateKeyPath. If neither was specified, the entire config load failed. Now optional -- ssh2 falls back to ssh-agent automatically. - SIGTERM handler -- Only SIGINT triggered cleanup. When the parent process sends SIGTERM (common when Claude Desktop restarts), SSH connections now close gracefully.
- MCP SDK updated -- Jumped from v1.0.1 to v1.29.0 (28 versions of bug fixes, security patches, protocol improvements). Zero breaking changes.
- npm audit clean -- All known vulnerabilities resolved.
Cleanup
- Dead code removed --
resolveCommandPath,isPathAllowed,validateWorkingDirectory,normalizeWindowsPath(exported but never imported). Unused imports (exec,promisify) also removed. @types/ssh2moved to devDependencies -- Type packages don't belong in production deps.- Output size cap -- Shell output is now capped at 1MB to prevent OOM on commands that dump large outputs. Truncated output includes a notice.
Installation
Add to your claude_desktop_config.json:
{
"mcpServers": {
"win-cli": {
"command": "node",
"args": [
"C:/path/to/win-cli-mcp-server/dist/index.js",
"--config",
"C:/path/to/win-cli-mcp-server/config.json"
]
}
}
}
Or clone and set up:
git clone https://github.com/mhprol/win-cli-mcp-server.git
cd win-cli-mcp-server
npm install
npm run build
Configuration
Copy config.example.json to config.json and customize:
{
"security": {
"maxCommandLength": 50000,
"blockedCommands": [],
"blockedArguments": [],
"allowedPaths": [],
"restrictWorkingDirectory": false,
"logCommands": true,
"maxHistorySize": 2000,
"commandTimeout": 600,
"enableInjectionProtection": false
},
"shells": {
"powershell": {
"enabled": true,
"command": "C:\\Program Files\\PowerShell\\7\\pwsh.exe",
"args": ["-NoProfile", "-NoLogo", "-NonInteractive", "-Command"],
"blockedOperators": []
},
"cmd": {
"enabled": true,
"command": "cmd.exe",
"args": ["/c"],
"blockedOperators": []
},
"gitbash": {
"enabled": true,
"command": "C:\\Program Files\\Git\\bin\\bash.exe",
"args": ["--norc", "-c"],
"blockedOperators": []
}
},
"ssh": {
"enabled": true,
"defaultTimeout": 30,
"maxConcurrentSessions": 5,
"keepaliveInterval": 10000,
"keepaliveCountMax": 3,
"readyTimeout": 20000,
"connections": {
"my-server": {
"host": "192.168.1.100",
"port": 22,
"username": "user",
"privateKeyPath": "C:\\Users\\you\\.ssh\\id_ed25519"
}
}
}
}
SSH authentication priority: explicit key > password > ssh-agent (automatic).
Config notes:
- File must be valid JSON without BOM (UTF-8, no BOM). Most editors default to this.
config.jsonis gitignored to protect credentials. Useconfig.example.jsonas template.- Shell
commandpaths should point to the actual executable (e.g.,pwsh.exefor PS7, notpowershell.exefor PS5.1).
Tools
| Tool | Description |
|---|---|
execute_command |
Run a command in PowerShell, CMD, or Git Bash |
get_command_history |
Retrieve history of executed commands |
ssh_execute |
Execute a command on a configured remote host |
ssh_disconnect |
Close an SSH connection |
Security
This server provides direct access to your system's command line and remote systems via SSH. The default configuration is intentionally open for trusted single-user environments. For shared or exposed setups:
- Enable
restrictWorkingDirectoryand setallowedPaths - Populate
blockedCommandsandblockedArguments - Enable
enableInjectionProtection - Set
blockedOperatorsper shell - Use key-based SSH auth, never store passwords in config
Credits
- Simon Benedict -- Original
win-cli-mcp-serverauthor - delorenj --
super-win-clifork with extended config - Hardening, bug fixes, and maintenance by Matt Prol
License
MIT -- see LICENSE.
Установка Win Cli Server
У этого сервера нет опубликованного пакета — он собирается из исходников. Открой репозиторий и следуй инструкции в README.
▸ github.com/mhprol/win-cli-mcp-serverFAQ
Win Cli Server MCP бесплатный?
Да, Win Cli Server MCP бесплатный — установка в пару кликов через Unyly без оплаты.
Нужен ли API-ключ для Win Cli Server?
Нет, Win Cli Server работает без API-ключей и переменных окружения.
Win Cli Server — hosted или self-hosted?
Self-hosted: сервер запускается локально на твоей машине командой из раздела установки.
Как установить Win Cli Server в Claude Desktop, Claude Code или Cursor?
Открой Win Cli Server на unyly.org, выбери вкладку своего клиента (Claude Desktop, Claude Code, Cursor) и нажми Install — конфиг сгенерируется автоматически, без правки JSON.
Похожие MCP
GitHub
PRs, issues, code search, CI status
автор: GitHubFilesystem
Secure file operations with configurable access controls.
Memory
Knowledge graph-based persistent memory system.
Template MCP Server
A CLI tool to create a new Model Context Protocol server project with TypeScript support, dual transport options, and an extensible structure
автор: mcpdotdirectCompare Win Cli Server with
Не уверен что выбрать?
Найди свой стек за 60 секунд
Автор?
Embed-бейдж для README
Похожее
Все в категории development
