关于 Super Windows CLI MCP Server
Super Windows CLI MCP Server 面向需要通过 MCP 操作 Windows Shell 和文件系统的用户,支持配置 PowerShell、CMD 和 Git Bash。它可按 SYSTEM 权限运行,存在显著安全风险。
主要功能
- 01访问 PowerShell、CMD 和 Git Bash
- 02配置命令执行
- 03配置文件系统访问
- 04可选 SSH 命令执行
- 05通过 NSSM 安装并恢复服务
适用场景
- 01在 Windows 机器上运行 Shell 命令
- 02通过配置的路径访问文件
- 03在配置的 SSH 主机上执行命令
MCP 相关
它向 MCP 客户端提供 Windows Shell、文件系统及可选的 SSH 命令执行能力。配置可限制命令和允许的路径;README 警告它可能以 SYSTEM 权限运行。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
Super Windows CLI MCP Server
Windows CLI MCP Server 的增强分支,通过命令行界面(MCP)为 Windows 环境提供不受限制的系统访问权限。
基于: SimonB97 的 win-cli-mcp-server。
⚠️ 重大安全警告 ⚠️
此服务旨在以 Windows SYSTEM 级权限运行。这将赋予它对整个操作系统的完全且不受限制的访问权限,包括所有文件、进程和配置设置。
- 除非你完全了解授予 SYSTEM 级访问权限的影响,否则不要安装或运行此服务。
- 仅在你能完全控制网络访问的高度可信环境中使用此服务。
- 网络安全至关重要: 由于应用层限制在设计上很少,因此应主要依靠防火墙、网络分段和严格的访问控制列表(ACL)来保护运行此服务的计算机。
- 仔细检查配置: 密切关注
config.json中的allowedPaths、blockedCommands和其他安全设置。配置错误很容易暴露你的系统。
请负责任地使用此软件,并自行承担风险。维护者不对因使用此软件而造成的滥用或安全漏洞承担任何责任。
功能
- 完全访问 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 文件。
- 将相应架构文件夹(
win32或win64)中的nssm.exe文件复制到此项目的根目录(与install-service.ps1相同的文件夹)。
-
安装依赖项并构建:
- 在项目的根目录中打开终端(PowerShell 或 CMD)。
- 运行:
npm install - 此命令会安装必要的 Node.js 软件包,并自动运行
npm run build,将 TypeScript 代码编译到dist文件夹中。
-
配置
config.json:- 复制: 复制
config.sample.json,并在项目根目录中将副本命名为config.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 事件查看器(应用程序和系统日志)中的错误。
- 在同一个管理员 PowerShell 窗口中,运行:
配置(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)的对象。
- 配置合并: 加载
config.json时,如果文件中包含security或shells部分,该部分会整体替换对应部分的默认配置。它不会合并security或shells中的单个字段。ssh部分则会以更细粒度的方式合并。如果要自定义这些部分,请确保config.json包含所有必需字段。
服务管理(NSSM)
通过 install-service.ps1 安装后,你可以在项目目录中使用标准 Windows 工具或 NSSM 命令来管理服务。请在管理员权限的 PowerShell/CMD 中执行:
- 启动:
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 图形界面编辑器) - 查看配置:
.\nssm.exe dump MCPServer
卸载(NSSM)
- 以管理员身份打开 PowerShell。
- 导航到项目根目录。
- 执行卸载脚本:
.\uninstall-service.ps1 - 此脚本使用 NSSM 停止并移除
MCPServer服务。
替代运行方式(手动/调试)
你可以不将服务安装为系统服务,直接运行服务器以进行测试或调试:
- 确保已运行
npm install。 - 确保
config.json存在且已完成配置。 - 在项目根目录中打开普通终端(PowerShell/CMD)。
- 运行:
npm run start - 服务器将在前台运行。按
Ctrl + C停止。
许可证
本项目基于 MIT License 授权,详情请参阅 LICENSE 文件。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。