使用说明

项目简介

'mcp-wsl-exec' 是一个基于 Model Context Protocol (MCP) 构建的服务器,旨在为大型语言模型 (LLM) 客户端提供在 Windows Subsystem for Linux (WSL) 环境中执行命令的能力。它强调安全性,内置了多项安全特性,例如危险命令检测、命令确认机制和输入清理,以防止潜在的安全风险。

主要功能点

  • 安全命令执行: 在 WSL 环境中执行命令,并进行安全检查和验证。
  • 危险命令检测: 能够识别潜在的危险命令,并在执行前请求用户确认。
  • 命令确认系统: 对于危险命令,提供命令确认机制,防止误操作。
  • 输入清理: 对命令输入进行清理,防止 shell 注入和路径遍历等攻击。
  • 工作目录支持: 允许指定命令执行的工作目录。
  • 命令超时控制: 支持设置命令执行的超时时间。
  • 详细输出: 提供命令执行的详细输出,包括标准输出、标准错误和退出代码。

安装步骤

  1. 克隆仓库: 首先,你需要克隆 'mcp-wsl-exec' 的 GitHub 仓库到本地:
    git clone https://github.com/spences10/mcp-wsl-exec.git
    cd mcp-wsl-exec
  2. 安装依赖: 使用 'pnpm' 包管理器安装项目依赖:
    pnpm install
  3. 构建项目: 构建项目以生成可执行文件:
    pnpm build

服务器配置

要将 'mcp-wsl-exec' 服务器配置到你的 MCP 客户端(例如 Cline 或 Claude Desktop),你需要提供服务器的启动命令和参数。以下是配置示例,你需要将这些 JSON 配置添加到你的 MCP 客户端设置中。

Cline 或 Claude Desktop 配置示例:

{
  "mcpServers": {
    "mcp-wsl-exec": {  // 服务器名称,可以自定义
      "command": "npx",  // 启动服务器的命令,这里使用 npx 运行 npm 包
      "args": ["-y", "mcp-wsl-exec"] // 传递给 npx 的参数,-y 参数用于跳过安装确认
    }
  }
}
  • 'mcpServers': 定义 MCP 服务器配置的顶级键。
  • 'mcp-wsl-exec': 你为这个服务器配置定义的名称,可以根据需要自定义。
  • 'command': 指定用于启动 MCP 服务器的命令。'npx' 是 Node.js 的包执行器,这里用于直接运行 'mcp-wsl-exec' npm 包。
  • 'args': 一个字符串数组,包含传递给 'command' 的参数。
    • '"-y"': 传递给 'npx',用于自动确认安装 'mcp-wsl-exec' 包(如果尚未安装)。
    • '"mcp-wsl-exec"': 指定要通过 'npx' 运行的 npm 包名称,即 'mcp-wsl-exec'。

基本使用方法

配置完成后,你的 MCP 客户端应该能够连接到 'mcp-wsl-exec' 服务器。你可以通过客户端调用以下工具来与 WSL 环境交互:

  1. execute_command: 执行 WSL 命令。

    • 参数:
      • 'command' (string, 必填): 要执行的命令。
      • 'working_dir' (string, 可选): 命令执行的工作目录。
      • 'timeout' (number, 可选): 命令执行超时时间,单位毫秒。
    • 功能:在 WSL 中执行指定的命令。如果命令被检测为危险命令,服务器会返回需要确认的消息。
  2. confirm_command: 确认执行危险命令。

    • 参数:
      • 'confirmation_id' (string, 必填): 从 'execute_command' 返回的确认 ID。
      • 'confirm' (boolean, 必填): 是否确认执行命令 (true 表示确认,false 表示取消)。
    • 功能:当 'execute_command' 返回需要确认的消息时,使用此工具并提供 'confirmation_id' 和 'confirm: true' 来继续执行危险命令。

使用示例:

假设你想使用 LLM 客户端执行 'ls -l' 命令,你可以调用 'execute_command' 工具,参数设置为 '{"command": "ls -l"}'。

如果执行 'rm -rf /重要目录' 这样的危险命令,服务器会返回需要确认的消息,其中包含 'confirmation_id'。然后你需要调用 'confirm_command' 工具,带上 'confirmation_id' 和 'confirm: true' 才能真正执行该危险命令。

信息

分类

开发者工具