项目简介

Remote Command MCP Server 是一个实现了 Model Context Protocol (MCP) 的服务器,它提供了一个名为 'execute_remote_command' 的工具,允许授权的 LLM 客户端在运行该服务器的主机上执行任何 shell 命令。该服务器旨在提供跨平台兼容性,能够自动处理 Windows 和 Unix-like 系统之间的命令差异,并支持指定工作目录和选择平台特定的 shell。

主要功能点

  • 远程命令执行: 通过 MCP 协议提供远程执行 shell 命令的能力。
  • 跨平台兼容: 自动处理 Windows 和 Linux/Unix 系统之间的命令差异,例如 'ls' 和 'dir' 的转换。
  • 命令规范化: 针对不同平台规范化命令,确保命令的正确执行。
  • 错误处理: 内置错误处理机制,提供详细的错误信息和命令执行输出,包括 stdout 和 stderr。
  • 工作目录指定: 支持为命令执行指定工作目录。
  • 平台 Shell 选择: 根据操作系统自动选择合适的 shell (Windows 使用 'cmd.exe',Unix/Linux 使用 '/bin/sh')。

安装步骤

  1. 克隆仓库:

    git clone https://github.com/deepsuthar496/Remote-Command-MCP
    cd Remote-Command-MCP
  2. 安装依赖:

    npm install
  3. 构建服务器:

    npm run build

服务器配置

要将此 MCP 服务器与 MCP 客户端(例如 VSCode Cline 扩展)配合使用,您需要在客户端的 MCP 服务器配置文件中添加以下配置。 以下是 VSCode Cline Extension ('cline_mcp_settings.json') 的配置示例:

{
  "mcpServers": {
    "remote-command": {
      "command": "node",
      "args": ["/path/to/Remote-Command-MCP/build/index.js"],
      "disabled": false,
      "autoApprove": []
    }
  }
}

配置参数说明:

  • '"remote-command"': 服务器名称,客户端使用此名称来引用该服务器。可以自定义。
  • '"command"': 启动 MCP 服务器的命令。 这里使用 'node',假设您的环境中已安装 Node.js。
  • '"args"': 启动命令的参数,指向 'Remote-Command-MCP' 服务器构建后的入口文件 'index.js' 的绝对路径。 请务必将 '/path/to/Remote-Command-MCP' 替换为您实际的仓库克隆路径。
  • '"disabled"': 设置为 'false' 表示启用该服务器。
  • '"autoApprove"': 自动批准列表,用于配置工具的自动批准规则(本例为空列表,表示不自动批准任何工具调用)。

基本使用方法

配置完成后,在支持 MCP 协议的 LLM 客户端中,您可以使用 '<use_mcp_tool>' 标签来调用 'remote-command' 服务器提供的 'execute_remote_command' 工具。

工具名称: 'execute_remote_command'

参数:

  • 'command' (必需): 要执行的 shell 命令,字符串类型。
  • 'cwd' (可选): 命令执行的工作目录,字符串类型。如果不提供,则使用服务器的当前工作目录。

使用示例:

以下示例展示了如何使用该工具执行 'systeminfo' 命令(Windows)或 'uname -a' 命令(Linux)来获取系统信息:

<use_mcp_tool>
<server_name>remote-command</server_name>
<tool_name>execute_remote_command</tool_name>
<arguments>
{
  "command": "systeminfo"  // Windows 系统
  // 或 "uname -a"        // Linux 系统
}
</arguments>
</use_mcp_tool>

更多使用示例请参考仓库的 README.md 文件。

安全提示: 由于该服务器允许执行任意 shell 命令,请务必谨慎使用,并仅授权给可信任的 LLM 客户端。 建议在应用层进行命令验证,并限制服务器的访问权限,以确保安全性。

信息

分类

开发者工具