超级 Windows CLI MCP 服务器
Windows CLI MCP 服务器的增强分支,通过命令行界面 (MCP) 提供对 Windows 环境的不受限制的系统访问。
基于: SimonB97 的win-cli-mcp-server 。
⚠️ 严重安全警告 ⚠️
该服务器设计为在 Windows 上以SYSTEM 级权限运行。这使其能够完全且不受限制地访问整个操作系统,包括所有文件、进程和配置设置。
除非您完全理解授予系统级访问权限的含义,否则请勿安装或运行此服务器。
仅在您可以完全控制网络访问的高度受信任的环境中使用此服务器。
**网络安全至关重要:**由于应用程序级限制在设计上很少,因此严重依赖防火墙、网络分段和严格的访问控制列表 (ACL) 来保护运行此服务器的机器。
**仔细检查配置:**密切关注
config.json中的allowedPaths、blockedCommands和其他安全设置。错误的配置很容易暴露您的系统。
请负责任地使用本软件,并自行承担风险。维护人员对因使用本软件而导致的误用或安全漏洞不承担任何责任。
Related MCP server: Super Windows CLI MCP Server
特征
完全访问 Windows shell 环境(PowerShell、CMD、Git Bash - 可配置)。
不受限制的命令执行(可通过
config.json配置)。完整文件系统访问(可通过
config.json配置)。通过 NSSM 安装 SYSTEM 级服务以实现持久性和自动恢复。
NSSM 提供的自动服务恢复功能。
网络绑定控制(有意但主要在网络/防火墙级别进行管理)。
禁用 PowerShell 遥测以增强隐私。
进程重用以提高性能(对于 shell)。
延长长时间运行操作的超时时间(可配置)。
先决条件
开始之前,请确保已安装以下软件:
Node.js: 18.0.0 或更高版本。从nodejs.org下载。(包含 npm)。
**NSSM(Non-Sucking Service Manager):**可靠服务安装所需。请从nssm.cc下载最新版本。
安装(使用 NSSM - 推荐)
此方法将服务器安装为持久 Windows 服务,以 SYSTEM 权限运行并自动启动。
克隆或下载:
克隆此存储库:
git clone <repository-url>或者下载源代码
.zip文件并将其解压到合适的位置(例如,C:\Servers\SuperWinCLIServer)。避免使用用户配置文件文件夹。
放置 NSSM:
从nssm.cc下载 NSSM。
解压 zip 文件。
将
nssm.exe文件从相应的体系结构文件夹(win32或win64)复制到该项目的根目录(与install-service.ps1相同的文件夹)。
安装依赖项并构建:
在项目的根目录中打开一个终端(PowerShell 或 CMD)。
运行:
npm install此命令安装必要的 Node.js 包并自动运行
npm run build将 TypeScript 代码编译到dist文件夹中。
配置
**复制:**在项目根目录中复制
config.sample.json并将其命名为config.json。编辑:设置:
security.allowedPaths:**关键!**请将示例路径更改为服务器需要访问的实际目录。为了安全起见,请尽可能具体。如果不确定,请从项目目录本身开始(例如,"C:\\Servers\\SuperWinCLIServer"- 记住使用双反斜杠\\)。该服务以 SYSTEM 权限运行,因此路径必须对该帐户有效。security.blockedCommands/blockedArguments:查看默认列表。根据您的安全策略添加或删除命令/参数。shells:启用/禁用shell(PowerShell、CMD、Git Bash)并验证command路径(尤其是Git Bash)。ssh:如果您打算使用 SSH 执行功能,请进行配置(默认情况下禁用)。
保存
config.json文件。
运行安装脚本:
以管理员身份打开 PowerShell 。
导航到项目的根目录(
cd C:\Servers\SuperWinCLIServer)。执行安装脚本:
.\install-service.ps1该脚本使用 NSSM 安装并配置
MCPServer服务以LocalSystem身份运行node.exe dist/index.js,并自动启动。
验证服务状态:
在同一个管理 PowerShell 窗口中,运行:
Get-Service MCPServer状态应为
Running。如果为Stopped,请检查 NSSM 日志或 Windows 事件查看器(应用程序和系统日志)中是否存在错误。
配置( config.json )详细信息
security:maxCommandLength:命令字符串中允许的最大字符数。blockedCommands:要阻止的命令名称数组(不带扩展名)(不区分大小写)。blockedArguments:要阻止的精确参数数组(不区分大小写)。allowedPaths:**关键设置。**绝对路径数组。如果restrictWorkingDirectory为 true,则只有工作目录以这些路径之一开头的命令才能执行。路径在规范化后不区分大小写。请使用双反斜杠(例如,"C:\\Tools\\Scripts")。restrictWorkingDirectory:布尔值。如果为 true,则强制对工作目录进行allowedPaths检查。强烈建议保留true。logCommands:布尔值。如果为 true,则执行的命令及其输出(截断)将存储在内存中(最多为maxHistorySize)。maxHistorySize:内存历史记录中保留的最大命令数。commandTimeout:正在运行的命令自动终止前的秒数。enableInjectionProtection:布尔值。如果为 true,则尝试阻止命令中的 shell 操作符(&、|、;等,每个 shell 都有定义)。
shells:配置可用的本地shell(powershell,cmd,gitbash)。enabled:布尔值。允许使用此 shell。command:shell 可执行文件的路径。args:在用户命令之前传递给 shell 的默认参数数组。blockedOperators:用于阻止此特定 shell 的命令的字符串/字符数组(如果enableInjectionProtection为 true 则使用)。
ssh:通过 SSH 配置远程命令执行。enabled:布尔值。启用ssh_execute和ssh_disconnect工具。connections:包含命名连接配置(主机、端口、用户名、密码/privateKeyPath)的对象。
配置合并:该部分的默认配置。它不会合并
security或shells中的单个字段。sshssh的合并更精细。如果您自定义了这些部分,请确保config.json包含它们的所有必要字段。
服务管理(NSSM)
通过install-service.ps1安装后,您可以使用标准 Windows 工具或项目目录中的管理 PowerShell/CMD中的 NSSM 命令来管理该服务:
启动:
Start-Service MCPServer或.\nssm.exe start MCPServer停止:
Stop-Service MCPServer或.\nssm.exe stop MCPServer重启:
Restart-Service MCPServer或.\nssm.exe restart MCPServer状态:
Get-Service MCPServer或.\nssm.exe status MCPServer编辑配置(高级):
.\nssm.exe edit MCPServer(打开 NSSM GUI 编辑器)查看配置:
.\nssm.exe dump MCPServer
卸载(NSSM)
以管理员身份打开 PowerShell 。
导航到项目的根目录。
执行卸载脚本:
.\uninstall-service.ps1这使用 NSSM 来停止并删除
MCPServer服务。
替代执行(手动/调试)
您可以直接运行服务器,而无需将其安装为用于测试或调试目的的服务:
确保您已运行
npm install。确保
config.json存在并且已配置。在项目根目录中打开一个普通终端(PowerShell/CMD)。
运行:
npm run start服务器将在前台运行。按
Ctrl + C停止它。
执照
该项目根据 MIT 许可证获得许可 - 有关详细信息,请参阅LICENSE文件。