使用说明

项目简介

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 连接等。

安装步骤

  1. 构建项目: 首先,确保你已经安装了 Node.js 和 npm。在仓库根目录下,打开命令行工具并执行以下命令:

    npm install
    npm run build

    这将安装项目依赖并编译 TypeScript 代码到 'dist' 目录。

  2. 复制文件到 Windows 机器: 将构建后的 'dist' 目录以及 'config.json', 'install-service.ps1', 'uninstall-service.ps1' 等文件复制到你的 Windows 机器上的目标目录。

  3. 安装为服务 (管理员权限): 以管理员身份运行 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 连接信息。

基本使用方法

  1. 启动服务器: 如果安装为服务,服务器会在系统启动时自动运行。否则,你需要在命令行中手动运行 'node dist/index.js' (或根据你的构建输出调整命令)。

  2. 配置 MCP 客户端: 在你的 MCP 客户端中,配置连接到 Super Windows CLI MCP Server。你需要提供服务器的启动命令和参数(如上述 服务器配置 部分所示)。

  3. 通过 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 请求。

信息

分类

桌面与硬件