使用说明
项目简介
Super Windows CLI MCP Server 是一个基于 Model Context Protocol (MCP) 构建的后端服务,它允许LLM客户端通过标准化的JSON-RPC协议,在Windows操作系统上执行命令行操作和管理SSH连接。本仓库是 'win-cli-mcp-server' 的增强版本,旨在提供更强大的系统访问能力和网络控制。
主要功能点
- Windows 命令行访问: 支持在 PowerShell, CMD, Git Bash 等多种 Windows 命令行环境中执行命令,无命令或参数限制。
- 文件系统访问: 提供完整的文件系统访问权限,允许LLM客户端操作本地文件。
- SYSTEM 权限服务: 可以安装为 SYSTEM 权限服务,实现更高级别的系统访问能力。
- SSH 远程管理: 支持通过 SSH 协议连接和管理远程主机,执行远程命令。
- 命令历史记录: 记录执行过的命令及其输出,方便追溯和审计。
- 网络安全控制: 提供网络级别的访问控制,如 IP 限制和 VPN 集成,增强安全性。
- 灵活配置: 通过 'config.json' 文件进行详细配置,包括安全策略、允许的命令、工作目录限制、SSH 连接等。
安装步骤
-
构建项目: 首先,确保你已经安装了 Node.js 和 npm。在仓库根目录下,打开命令行工具并执行以下命令:
npm install npm run build这将安装项目依赖并编译 TypeScript 代码到 'dist' 目录。
-
复制文件到 Windows 机器: 将构建后的 'dist' 目录以及 'config.json', 'install-service.ps1', 'uninstall-service.ps1' 等文件复制到你的 Windows 机器上的目标目录。
-
安装为服务 (管理员权限): 以管理员身份运行 PowerShell 终端,导航到复制文件的目录,并执行安装脚本:
.\install-service.ps1这将把 Super Windows CLI MCP Server 安装为 Windows 服务,并设置为开机自启动。
服务器配置
MCP 客户端需要配置连接到 MCP 服务器的必要信息。对于 Super Windows CLI MCP Server,客户端需要配置以下信息以建立连接。服务器的详细行为可以通过 'config.json' 文件进行配置,该文件应与 'index.js' (或构建后的 'index.cjs' 或 'index.js',取决于你的构建设置) 位于同一目录下。
以下是一个 MCP 客户端 启动命令 (command) 和 参数 (args) 的配置示例 (JSON 格式):
{ "serverName": "windows-cli-server", "command": "node", "args": ["dist/index.js"] }
参数注释:
- '"serverName"': 服务器名称,应与 'src/index.ts' 中 'Server' 构造函数的 'name' 字段一致,默认为 '"windows-cli-server"'。
- '"command"': 启动服务器进程的命令,这里使用 'node' (假设 node.js 可执行文件在系统 PATH 环境变量中)。
- '"args"': 启动命令的参数数组,'"dist/index.js"' 指向编译后的服务器入口文件路径。如果你的构建输出目录或入口文件名不同,请相应修改。
config.json 配置文件 (服务器端):
服务器的行为由 'config.json' 文件配置。你可以根据需要修改以下配置项 (以下为默认配置的简化示例,完整配置请参考仓库中的 'src/utils/config.ts' 和 'DEFAULT_CONFIG' 变量):
{ "security": { "maxCommandLength": 2000, "blockedCommands": ["rm", "del", "shutdown"], "blockedArguments": ["--exec", "-e", "/c"], "allowedPaths": ["C:\\Users\\YourUser", "D:\\Projects"], "restrictWorkingDirectory": true, "logCommands": true, "maxHistorySize": 1000, "commandTimeout": 30, "enableInjectionProtection": true }, "shells": { "powershell": { "enabled": true, "command": "powershell.exe", "args": ["-NoProfile", "-NonInteractive", "-Command"] }, "cmd": { "enabled": true, "command": "cmd.exe", "args": ["/c"] }, "gitbash": { "enabled": true, "command": "C:\\Program Files\\Git\\bin\\bash.exe", "args": ["-c"] } }, "ssh": { "enabled": false, "connections": { "remoteHost": { "host": "your_remote_host", "port": 22, "username": "your_username", "password": "your_password" } } } }
关键配置项说明:
- '"security"': 定义安全相关的配置,例如最大命令长度、黑名单命令和参数、允许的工作目录、是否记录命令历史等。
- '"shells"': 配置支持的命令行 shell 环境,可以启用或禁用 PowerShell, CMD, Git Bash,并设置其执行命令。
- '"ssh"': 配置 SSH 功能,可以启用 SSH 支持并配置 SSH 连接信息。
基本使用方法
-
启动服务器: 如果安装为服务,服务器会在系统启动时自动运行。否则,你需要在命令行中手动运行 'node dist/index.js' (或根据你的构建输出调整命令)。
-
配置 MCP 客户端: 在你的 MCP 客户端中,配置连接到 Super Windows CLI MCP Server。你需要提供服务器的启动命令和参数(如上述 服务器配置 部分所示)。
-
通过 MCP 客户端发送请求: 使用 MCP 客户端提供的界面或 API,可以发送 JSON-RPC 请求到 Super Windows CLI MCP Server,以执行以下操作:
- 执行命令: 调用 'execute_command' 工具,指定要执行的 shell 类型 (powershell, cmd, gitbash) 和命令。
- 获取命令历史: 调用 'get_command_history' 工具,获取最近执行的命令历史记录。
- SSH 操作: 如果启用了 SSH 功能,可以调用 'ssh_execute' 工具在远程主机上执行命令,或使用 'ssh_disconnect' 断开 SSH 连接。
请参考 Model Context Protocol (MCP) 文档 和你的 MCP 客户端的使用说明,了解如何构建和发送 MCP 请求。
信息
分类
桌面与硬件